Hardware Abstraction Layer (HAL)
HAL Driver Availability

General Description

This section documents the macros that can be used to check if a specific driver is available for the current device.

This includes macros for all HAL drivers that exist for any device, even those that are not applicable (included) with this library. This is intended to help write code that can port between device categories that might not have the same drivers available.

#define CYHAL_DRIVER_AVAILABLE_ADC   (_CYHAL_DRIVER_AVAILABLE_ADC_SAR)
 Macro specifying whether the ADC driver is available for the current device.
 
#define CYHAL_DRIVER_AVAILABLE_CLOCK   (1)
 Macro specifying whether the Clock driver is available for the current device.
 
#define CYHAL_DRIVER_AVAILABLE_COMP   ((_CYHAL_DRIVER_AVAILABLE_COMP_LP) || (_CYHAL_DRIVER_AVAILABLE_COMP_CTB))
 Macro specifying whether the COMP driver is available for the current device.
 
#define CYHAL_DRIVER_AVAILABLE_CRC   (_CYHAL_DRIVER_AVAILABLE_CRYPTO && (CRYPTO_CRC))
 Macro specifying whether the CRC driver is available for the current device.
 
#define CYHAL_DRIVER_AVAILABLE_DAC   (0)
 Macro specifying whether the DAC driver is available for the current device.
 
#define CYHAL_DRIVER_AVAILABLE_DMA   (_CYHAL_DRIVER_AVAILABLE_DMA_DMAC)
 Macro specifying whether the DMA driver is available for the current device.
 
#define CYHAL_DRIVER_AVAILABLE_EZI2C   (_CYHAL_DRIVER_AVAILABLE_SCB)
 Macro specifying whether the EzI2C driver is available for the current device.
 
#define CYHAL_DRIVER_AVAILABLE_FLASH   (1)
 Macro specifying whether the Flash driver is available for the current device.
 
#define CYHAL_DRIVER_AVAILABLE_GPIO   (1)
 Macro specifying whether the GPIO driver is available for the current device.
 
#define CYHAL_DRIVER_AVAILABLE_HWMGR   (1)
 Macro specifying whether the HwMgr driver is available for the current device.
 
#define CYHAL_DRIVER_AVAILABLE_I2C   (_CYHAL_DRIVER_AVAILABLE_SCB)
 Macro specifying whether the I2C driver is available for the current device.
 
#define CYHAL_DRIVER_AVAILABLE_I2S   (((CY_IP_MXAUDIOSS_INSTANCES) > 0) && AUDIOSS_I2S_I2S)
 Macro specifying whether the I2S driver is available for the current device.
 
#define CYHAL_DRIVER_AVAILABLE_I2S_TX   (CYHAL_DRIVER_AVAILABLE_I2S)
 Macro specifying whether the TX functionality is available on the I2S driver for the current device.
 
#define CYHAL_DRIVER_AVAILABLE_I2S_RX   (CYHAL_DRIVER_AVAILABLE_I2S && _CYHAL_DRIVER_AVAILABLE_AUDIOSS_RX)
 Macro specifying whether the RX functionality is available on the I2S driver for the current device.
 
#define CYHAL_DRIVER_AVAILABLE_INTERCONNECT   ((CY_IP_M0S8PERI_TR_INSTANCES) > 0)
 Macro specifying whether the Interconnect driver is available for the current device.
 
#define CYHAL_DRIVER_AVAILABLE_KEYSCAN   (0)
 Macro specifying whether the KeyScan driver is available for the current device.
 
#define CYHAL_DRIVER_AVAILABLE_LPTIMER   (((CY_IP_M0S8WCO_INSTANCES) > 0) && (WCO_WDT_EN))
 Macro specifying whether the LPTimer driver is available for the current device.
 
#define CYHAL_DRIVER_AVAILABLE_OPAMP   ((CY_IP_M0S8PASS4A_CTB_INSTANCES) > 0)
 Macro specifying whether the OpAmp driver is available for the current device.
 
#define CYHAL_DRIVER_AVAILABLE_PDMPCM   (0) /* Not yet supported ((CY_IP_MXAUDIOSS_INSTANCES) > 0) //AUDIOSS[x]_PDM */
 Macro specifying whether the PDM/PCM driver is available for the current device.
 
#define CYHAL_DRIVER_AVAILABLE_PWM   (_CYHAL_DRIVER_AVAILABLE_TCPWM)
 Macro specifying whether the PWM driver is available for the current device.
 
#define CYHAL_DRIVER_AVAILABLE_QSPI   (0)
 Macro specifying whether the QSPI driver is available for the current device.
 
#define CYHAL_DRIVER_AVAILABLE_QUADDEC   (_CYHAL_DRIVER_AVAILABLE_TCPWM)
 Macro specifying whether the QuadDec driver is available for the current device.
 
#define CYHAL_DRIVER_AVAILABLE_RTC   (0)
 Macro specifying whether the RTC driver is available for the current device.
 
#define CYHAL_DRIVER_AVAILABLE_SDHC   (0)
 Macro specifying whether the SDHC driver is available for the current device.
 
#define CYHAL_DRIVER_AVAILABLE_SDIO   (0)
 Macro specifying whether the SDIO driver is available for the current device.
 
#define CYHAL_DRIVER_AVAILABLE_SPI   (_CYHAL_DRIVER_AVAILABLE_SCB)
 Macro specifying whether the SPI driver is available for the current device.
 
#define CYHAL_DRIVER_AVAILABLE_SYSPM   (1)
 Macro specifying whether the SysPM driver is available for the current device.
 
#define CYHAL_DRIVER_AVAILABLE_SYSTEM   (1)
 Macro specifying whether the System driver is available for the current device.
 
#define CYHAL_DRIVER_AVAILABLE_TDM   (CYHAL_DRIVER_AVAILABLE_I2S)
 Macro specifying whether the TDM driver is available for the current device.
 
#define CYHAL_DRIVER_AVAILABLE_TDM_TX   (CYHAL_DRIVER_AVAILABLE_TDM)
 Macro specifying whether the TX functionality is available on the TDM driver for the current device.
 
#define CYHAL_DRIVER_AVAILABLE_TDM_RX   (CYHAL_DRIVER_AVAILABLE_TDM && _CYHAL_DRIVER_AVAILABLE_AUDIOSS_RX)
 Macro specifying whether the RX functionality is available on the TDM driver for the current device.
 
#define CYHAL_DRIVER_AVAILABLE_TIMER   (_CYHAL_DRIVER_AVAILABLE_TCPWM)
 Macro specifying whether the Timer driver is available for the current device.
 
#define CYHAL_DRIVER_AVAILABLE_TRNG   ((_CYHAL_DRIVER_AVAILABLE_CRYPTO && (CRYPTO_TR)) /*|| (CRYPTOLITE_TRNG_PRESENT)) */)
 Macro specifying whether the TRNG driver is available for the current device.
 
#define CYHAL_DRIVER_AVAILABLE_UART   (_CYHAL_DRIVER_AVAILABLE_SCB)
 Macro specifying whether the UART driver is available for the current device.
 
#define CYHAL_DRIVER_AVAILABLE_USB_DEV   (0)
 Macro specifying whether the USB Dev driver is available for the current device.
 
#define CYHAL_DRIVER_AVAILABLE_WDT   (1)
 Macro specifying whether the WDT driver is available for the current device.