Hardware Abstraction Layer (HAL)
All Data Structures Functions Variables Typedefs Enumerations Enumerator Modules Pages
PMG/PSoC™ 4 Specific Hardware Types

General Description

Aliases for types which are part of the public HAL interface but whose representations need to vary per HAL implementation.

Data Structures

struct  cyhal_clock_t
 Clock object Application code should not rely on the specific contents of this struct. More...
 
struct  cyhal_resource_inst_t
 Represents a particular instance of a resource on the chip. More...
 
struct  cyhal_event_callback_data_t
 Event callback data object. More...
 
struct  cyhal_tcpwm_t
 Shared data between timer/counter and PWM. More...
 
struct  cyhal_dma_t
 DMA object. More...
 
struct  cyhal_dma_configurator_t
 DMA configurator struct. More...
 
struct  cyhal_adc_t
 ADC object. More...
 
struct  cyhal_adc_configurator_t
 ADC configurator struct. More...
 
struct  cyhal_adc_channel_t
 ADC channel object. More...
 
struct  cyhal_comp_t
 Comparator object. More...
 
struct  cyhal_comp_configurator_t
 Comp configurator struct. More...
 
struct  cyhal_flash_t
 Flash object. More...
 
struct  cyhal_i2c_t
 I2C object. More...
 
struct  cyhal_i2c_configurator_t
 I2C configurator struct. More...
 
struct  cyhal_ezi2c_t
 EZI2C object. More...
 
struct  cyhal_ezi2c_configurator_t
 EZI2C configurator struct. More...
 
struct  cyhal_lptimer_t
 LPTIMER object. More...
 
struct  cyhal_opamp_t
 OPAMP object. More...
 
struct  cyhal_opamp_configurator_t
 Opamp configurator struct. More...
 
struct  cyhal_pwm_t
 PWM object. More...
 
struct  cyhal_pwm_configurator_t
 PWM configurator struct. More...
 
struct  cyhal_quaddec_t
 Quadrature Decoder object. More...
 
struct  cyhal_quaddec_configurator_t
 Quadrature Decoder configurator struct. More...
 
struct  cyhal_rtc_t
 RTC object. More...
 
struct  cyhal_spi_t
 SPI object. More...
 
struct  cyhal_spi_configurator_t
 SPI configurator struct. More...
 
struct  cyhal_spi_configurator_t.gpios
 
struct  cyhal_timer_t
 Timer object. More...
 
struct  cyhal_timer_configurator_t
 Timer configurator struct. More...
 
struct  cyhal_uart_t
 UART object. More...
 
struct  cyhal_uart_configurator_t
 UART configurator struct. More...
 
struct  cyhal_uart_configurator_t.gpios
 
struct  cyhal_wdt_t
 WDT object. More...
 
struct  cyhal_crc_t
 CRC object. More...
 
struct  cyhal_trng_t
 RNG object. More...
 
struct  _cyhal_audioss_interface_t
 Interface to abstract away the driver-specific differences between TDM and I2S. More...
 
struct  _cyhal_audioss_t
 Shared data between i2s and tdm. More...
 
struct  _cyhal_audioss_configurator_t
 Shared I2S/TDM configurator struct. More...
 

Macros

#define CYHAL_API_VERSION   (2)
 Macro specifying the major version number of the HAL API. More...
 
#define CYHAL_ISR_PRIORITY_DEFAULT   (3)
 Priority that is applied by default to all drivers when initialized. More...
 
#define cyhal_system_callback_t   cy_stc_syspm_callback_t
 Callbacks for Sleep and Deepsleep APIs.
 

Typedefs

typedef void cyhal_rtc_configurator_t
 RTC configurator struct. More...
 
typedef _cyhal_audioss_t cyhal_i2s_t
 I2S object. More...
 
typedef _cyhal_audioss_configurator_t cyhal_i2s_configurator_t
 I2S configurator struct. More...
 
typedef _cyhal_audioss_t cyhal_tdm_t
 TDM object. More...
 
typedef _cyhal_audioss_configurator_t cyhal_tdm_configurator_t
 TDM configurator struct. More...
 

Enumerations

enum  cyhal_resource_t {
  CYHAL_RSC_ADC,
  CYHAL_RSC_CAN,
  CYHAL_RSC_CLOCK,
  CYHAL_RSC_CRYPTO,
  CYHAL_RSC_DMA,
  CYHAL_RSC_GPIO,
  CYHAL_RSC_I2S,
  CYHAL_RSC_LCD,
  CYHAL_RSC_LPCOMP,
  CYHAL_RSC_LPTIMER,
  CYHAL_RSC_OPAMP,
  CYHAL_RSC_SCB,
  CYHAL_RSC_TCPWM,
  CYHAL_RSC_USB,
  CYHAL_RSC_USBPD,
  CYHAL_RSC_INVALID
}
 Resource types that the hardware manager supports. More...
 
enum  cyhal_clock_block_t {
  CYHAL_CLOCK_BLOCK_PERIPHERAL_8BIT = CY_SYSCLK_DIV_8_BIT,
  CYHAL_CLOCK_BLOCK_PERIPHERAL_16BIT = CY_SYSCLK_DIV_16_BIT,
  CYHAL_CLOCK_BLOCK_PERIPHERAL_16_5BIT = CY_SYSCLK_DIV_16_5_BIT,
  CYHAL_CLOCK_BLOCK_PERIPHERAL_24_5BIT = CY_SYSCLK_DIV_24_5_BIT,
  CYHAL_CLOCK_BLOCK_IMO,
  CYHAL_CLOCK_BLOCK_ECO,
  CYHAL_CLOCK_BLOCK_EXT,
  CYHAL_CLOCK_BLOCK_ILO,
  CYHAL_CLOCK_BLOCK_WCO,
  CYHAL_CLOCK_BLOCK_WDCSEL,
  CYHAL_CLOCK_BLOCK_PLLSEL,
  CYHAL_CLOCK_BLOCK_PLL,
  CYHAL_CLOCK_BLOCK_LF,
  CYHAL_CLOCK_BLOCK_HF,
  CYHAL_CLOCK_BLOCK_PUMP,
  CYHAL_CLOCK_BLOCK_SYS
}
 Enum for the different types of clocks that exist on the device. More...
 
#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.
 

Data Structure Documentation

◆ cyhal_clock_t

struct cyhal_clock_t
Data Fields
cyhal_clock_block_t block The resource block type.
uint8_t channel The resource instance number.
bool reserved Whether the clock is 'owned'.
const void * funcs

◆ cyhal_resource_inst_t

struct cyhal_resource_inst_t
Data Fields
cyhal_resource_t type The resource block type.
uint8_t block_num The resource block index.
uint8_t channel_num The channel number, if the resource type defines multiple channels per block instance.

Otherwise, 0

◆ cyhal_event_callback_data_t

struct cyhal_event_callback_data_t
Data Fields
cy_israddress callback
void * callback_arg

◆ cyhal_tcpwm_t

struct cyhal_tcpwm_t
Data Fields
bool owned_by_configurator
TCPWM_Type * base
cyhal_resource_inst_t resource
cyhal_clock_t clock
bool dedicated_clock
uint32_t clock_hz
cyhal_event_callback_data_t callback_data

◆ cyhal_dma_t

struct cyhal_dma_t
Data Fields
cyhal_resource_inst_t resource
cy_stc_dmac_channel_config_t channel_config
cy_stc_dmac_descriptor_config_t descriptor_config
cy_en_dmac_descriptor_t descriptor
uint16_t expected_bursts
uint32_t direction
uint32_t irq_cause
cyhal_event_callback_data_t callback_data
cyhal_source_t source
bool owned_by_configurator

◆ cyhal_dma_configurator_t

struct cyhal_dma_configurator_t
Data Fields
const cyhal_resource_inst_t * resource
cy_stc_dmac_channel_config_t const * channel_config
cy_stc_dmac_descriptor_config_t const * descriptor_config

◆ cyhal_adc_t

struct cyhal_adc_t
Data Fields
void * empty

◆ cyhal_adc_configurator_t

struct cyhal_adc_configurator_t
Data Fields
void * empty

◆ cyhal_adc_channel_t

struct cyhal_adc_channel_t
Data Fields
void * empty

◆ cyhal_comp_t

struct cyhal_comp_t
Data Fields
void * empty

◆ cyhal_comp_configurator_t

struct cyhal_comp_configurator_t
Data Fields
void * empty

◆ cyhal_flash_t

struct cyhal_flash_t
Data Fields
void * empty

◆ cyhal_i2c_t

struct cyhal_i2c_t
Data Fields
CySCB_Type * base
cyhal_resource_inst_t resource
cyhal_gpio_t pin_sda
cyhal_gpio_t pin_scl
cyhal_clock_t clock
bool is_clock_owned
cy_stc_scb_i2c_context_t context
cy_stc_scb_i2c_master_xfer_config_t rx_config
cy_stc_scb_i2c_master_xfer_config_t tx_config
uint32_t irq_cause
uint16_t pending
cyhal_event_callback_data_t callback_data
bool dc_configured

◆ cyhal_i2c_configurator_t

struct cyhal_i2c_configurator_t
Data Fields
const cyhal_resource_inst_t * resource
const cy_stc_scb_i2c_config_t * config
const cyhal_clock_t * clock

◆ cyhal_ezi2c_t

struct cyhal_ezi2c_t
Data Fields
CySCB_Type * base
cyhal_resource_inst_t resource
cyhal_gpio_t pin_sda
cyhal_gpio_t pin_scl
cyhal_clock_t clock
bool is_clock_owned
cy_stc_scb_ezi2c_context_t context
uint32_t irq_cause
cyhal_event_callback_data_t callback_data
bool two_addresses
bool dc_configured

◆ cyhal_ezi2c_configurator_t

struct cyhal_ezi2c_configurator_t
Data Fields
const cyhal_resource_inst_t * resource
const cy_stc_scb_ezi2c_config_t * config
const cyhal_clock_t * clock

◆ cyhal_lptimer_t

struct cyhal_lptimer_t
Data Fields
WCO_Type * base
cyhal_resource_inst_t resource
cyhal_event_callback_data_t callback_data
bool clear_int_mask
bool isr_call_user_cb

◆ cyhal_opamp_t

struct cyhal_opamp_t
Data Fields
void * empty

◆ cyhal_opamp_configurator_t

struct cyhal_opamp_configurator_t
Data Fields
void * empty

◆ cyhal_pwm_t

struct cyhal_pwm_t
Data Fields
cyhal_tcpwm_t tcpwm
cyhal_gpio_t pin
cyhal_gpio_t pin_compl

◆ cyhal_pwm_configurator_t

struct cyhal_pwm_configurator_t
Data Fields
void * empty

◆ cyhal_quaddec_t

struct cyhal_quaddec_t
Data Fields
cyhal_tcpwm_t tcpwm
cyhal_gpio_t phi_a
cyhal_gpio_t phi_b
cyhal_gpio_t index
uint32_t last_counter_value

◆ cyhal_quaddec_configurator_t

struct cyhal_quaddec_configurator_t
Data Fields
void * empty

◆ cyhal_rtc_t

struct cyhal_rtc_t
Data Fields
void * empty

◆ cyhal_spi_t

struct cyhal_spi_t
Data Fields
CySCB_Type * base
cyhal_resource_inst_t resource
cyhal_gpio_t pin_miso
cyhal_gpio_t pin_mosi
cyhal_gpio_t pin_sclk
cyhal_gpio_t pin_ssel[4]
cy_en_scb_spi_polarity_t ssel_pol[4]
uint8_t active_ssel
cyhal_clock_t clock
cy_en_scb_spi_sclk_mode_t clk_mode
uint8_t mode
uint8_t data_bits
bool is_slave
bool alloc_clock
uint8_t oversample_value
bool msb_first
cy_stc_scb_spi_context_t context
uint32_t irq_cause
uint16_t volatile pending
uint8_t write_fill
void * rx_buffer
uint32_t rx_buffer_size
const void * tx_buffer
uint32_t tx_buffer_size
bool is_async
cyhal_event_callback_data_t callback_data
bool dc_configured

◆ cyhal_spi_configurator_t

struct cyhal_spi_configurator_t
Data Fields
const cyhal_resource_inst_t * resource
const cy_stc_scb_spi_config_t * config
const cyhal_clock_t * clock
struct cyhal_spi_configurator_t gpios

◆ cyhal_spi_configurator_t.gpios

struct cyhal_spi_configurator_t.gpios
Data Fields
cyhal_gpio_t sclk
cyhal_gpio_t ssel[4]
cyhal_gpio_t mosi
cyhal_gpio_t miso

◆ cyhal_timer_t

struct cyhal_timer_t
Data Fields
cyhal_tcpwm_t tcpwm
uint32_t default_value

◆ cyhal_timer_configurator_t

struct cyhal_timer_configurator_t
Data Fields
void * empty

◆ cyhal_uart_t

struct cyhal_uart_t
Data Fields
CySCB_Type * base
cyhal_resource_inst_t resource
cyhal_gpio_t pin_rx
cyhal_gpio_t pin_tx
cyhal_gpio_t pin_cts
cyhal_gpio_t pin_rts
bool cts_enabled
bool rts_enabled
bool is_clock_owned
cyhal_clock_t clock
cy_stc_scb_uart_context_t context
cy_stc_scb_uart_config_t config
uint32_t irq_cause
en_hsiom_sel_t saved_tx_hsiom
en_hsiom_sel_t saved_rts_hsiom
cyhal_event_callback_data_t callback_data
bool dc_configured

◆ cyhal_uart_configurator_t

struct cyhal_uart_configurator_t
Data Fields
const cyhal_resource_inst_t * resource
const cy_stc_scb_uart_config_t * config
const cyhal_clock_t * clock
struct cyhal_uart_configurator_t gpios

◆ cyhal_uart_configurator_t.gpios

struct cyhal_uart_configurator_t.gpios
Data Fields
cyhal_gpio_t pin_tx
cyhal_gpio_t pin_rts
cyhal_gpio_t pin_cts

◆ cyhal_wdt_t

struct cyhal_wdt_t
Data Fields
uint8_t placeholder

◆ cyhal_crc_t

struct cyhal_crc_t
Data Fields
void * empty

◆ cyhal_trng_t

struct cyhal_trng_t
Data Fields
void * empty

◆ _cyhal_audioss_interface_t

struct _cyhal_audioss_interface_t
Data Fields
void * empty

◆ _cyhal_audioss_t

struct _cyhal_audioss_t
Data Fields
void * empty

◆ _cyhal_audioss_configurator_t

struct _cyhal_audioss_configurator_t
Data Fields
void * empty

Macro Definition Documentation

◆ CYHAL_API_VERSION

#define CYHAL_API_VERSION   (2)

Macro specifying the major version number of the HAL API.

Since there are multiple HAL library implementations, this is not necessarily the same as the major version number of the library. It is instead intended as a single version number that can be used across implementation libraries to know what signatures to use in the case an API is updated in the future. Once an API is available, its API will remain consistant across libraries sharing the same version here.

Note
Support for new drivers/functionality may be added without changing the version number, to check for whether a specific driver is available, the CYHAL_DRIVER_AVAILABLE_X macros defined in HAL Driver Availability should be used.

◆ CYHAL_ISR_PRIORITY_DEFAULT

#define CYHAL_ISR_PRIORITY_DEFAULT   (3)

Priority that is applied by default to all drivers when initialized.

Priorities can be overridden on each driver as part of enabling events.

Typedef Documentation

◆ cyhal_rtc_configurator_t

RTC configurator struct.

CAT 2 does not support the RTC, so no config structure.

◆ cyhal_i2s_t

I2S object.

Application code should not rely on the specific contents of this struct. They are considered an implementation detail which is subject to change between platforms and/or HAL releases.

◆ cyhal_i2s_configurator_t

I2S configurator struct.

This struct allows a configurator to provide block configuration information to the HAL. Because configurator-generated configurations are platform specific, the contents of this struct is subject to change between platforms and/or HAL releases.

◆ cyhal_tdm_t

TDM object.

Application code should not rely on the specific contents of this struct. They are considered an implementation detail which is subject to change between platforms and/or HAL releases.

◆ cyhal_tdm_configurator_t

TDM configurator struct.

This struct allows a configurator to provide block configuration information to the HAL. Because configurator-generated configurations are platform specific, the contents of this struct is subject to change between platforms and/or HAL releases.

Enumeration Type Documentation

◆ cyhal_resource_t

Resource types that the hardware manager supports.

Enumerator
CYHAL_RSC_ADC 

Analog to digital converter

CYHAL_RSC_CAN 

CAN communication block

CYHAL_RSC_CLOCK 

Clock

CYHAL_RSC_CRYPTO 

Crypto hardware accelerator

CYHAL_RSC_DMA 

DMA controller

CYHAL_RSC_GPIO 

General purpose I/O pin

CYHAL_RSC_I2S 

I2S communications block

CYHAL_RSC_LCD 

Segment LCD controller

CYHAL_RSC_LPCOMP 

Low power comparator

CYHAL_RSC_LPTIMER 

Low power timer

CYHAL_RSC_OPAMP 

Opamp

CYHAL_RSC_SCB 

Serial Communications Block

CYHAL_RSC_TCPWM 

Timer/Counter/PWM block

CYHAL_RSC_USB 

USB Full Speed Device block

CYHAL_RSC_USBPD 

USB-C Power Delivery

CYHAL_RSC_INVALID 

Placeholder for invalid type

◆ cyhal_clock_block_t

Enum for the different types of clocks that exist on the device.

Enumerator
CYHAL_CLOCK_BLOCK_PERIPHERAL_8BIT 

8bit Peripheral Divider

CYHAL_CLOCK_BLOCK_PERIPHERAL_16BIT 

16bit Peripheral Divider

CYHAL_CLOCK_BLOCK_PERIPHERAL_16_5BIT 

16.5bit Peripheral Divider

CYHAL_CLOCK_BLOCK_PERIPHERAL_24_5BIT 

24.5bit Peripheral Divider

CYHAL_CLOCK_BLOCK_IMO 

Internal Main Oscillator Input Clock

CYHAL_CLOCK_BLOCK_ECO 

External Crystal Oscillator Input Clock

CYHAL_CLOCK_BLOCK_EXT 

External Input Clock

CYHAL_CLOCK_BLOCK_ILO 

Internal Low Speed Oscillator Input Clock

CYHAL_CLOCK_BLOCK_WCO 

Watch Crystal Oscillator Input Clock

CYHAL_CLOCK_BLOCK_WDCSEL 

Watch Dog Counter Select Mux

CYHAL_CLOCK_BLOCK_PLLSEL 

Phase-Locked Loop Select Mux

CYHAL_CLOCK_BLOCK_PLL 

Phase-Locked Loop Clock

CYHAL_CLOCK_BLOCK_LF 

Low Frequency Clock

CYHAL_CLOCK_BLOCK_HF 

High Frequency Clock

CYHAL_CLOCK_BLOCK_PUMP 

Analog Pump Clock

CYHAL_CLOCK_BLOCK_SYS 

System Clock