CAT1 Specific Hardware Types

group Group_hal_impl_hw_types

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

Unnamed Group

CYHAL_DRIVER_AVAILABLE_CLOCK

Macro specifying whether the Clock driver is available for the current device.

CYHAL_DRIVER_AVAILABLE_COMP

Macro specifying whether the COMP driver is available for the current device.

CYHAL_DRIVER_AVAILABLE_CRC

Macro specifying whether the CRC driver is available for the current device.

CYHAL_DRIVER_AVAILABLE_DAC

Macro specifying whether the DAC driver is available for the current device.

CYHAL_DRIVER_AVAILABLE_DMA

Macro specifying whether the DMA driver is available for the current device.

CYHAL_DRIVER_AVAILABLE_EZI2C

Macro specifying whether the EzI2C driver is available for the current device.

CYHAL_DRIVER_AVAILABLE_FLASH

Macro specifying whether the Flash driver is available for the current device.

CYHAL_DRIVER_AVAILABLE_GPIO

Macro specifying whether the GPIO driver is available for the current device.

CYHAL_DRIVER_AVAILABLE_HWMGR

Macro specifying whether the HwMgr driver is available for the current device.

CYHAL_DRIVER_AVAILABLE_I2C

Macro specifying whether the I2C driver is available for the current device.

CYHAL_DRIVER_AVAILABLE_I2S

Macro specifying whether the I2S driver is available for the current device.

CYHAL_DRIVER_AVAILABLE_INTERCONNECT

Macro specifying whether the Interconnect driver is available for the current device.

CYHAL_DRIVER_AVAILABLE_KEYSCAN

Macro specifying whether the KeyScan driver is available for the current device.

CYHAL_DRIVER_AVAILABLE_LPTIMER

Macro specifying whether the LPTimer driver is available for the current device.

CYHAL_DRIVER_AVAILABLE_OPAMP

Macro specifying whether the OpAmp driver is available for the current device.

CYHAL_DRIVER_AVAILABLE_PDMPCM

Macro specifying whether the PDM/PCM driver is available for the current device.

CYHAL_DRIVER_AVAILABLE_PWM

Macro specifying whether the PWM driver is available for the current device.

CYHAL_DRIVER_AVAILABLE_QSPI

Macro specifying whether the QSPI driver is available for the current device.

CYHAL_DRIVER_AVAILABLE_QUADDEC

Macro specifying whether the QuadDec driver is available for the current device.

CYHAL_DRIVER_AVAILABLE_RTC

Macro specifying whether the RTC driver is available for the current device.

CYHAL_DRIVER_AVAILABLE_SDHC

Macro specifying whether the SDHC driver is available for the current device.

CYHAL_DRIVER_AVAILABLE_SDIO

Macro specifying whether the SDIO driver is available for the current device.

CYHAL_DRIVER_AVAILABLE_SPI

Macro specifying whether the SPI driver is available for the current device.

CYHAL_DRIVER_AVAILABLE_SYSPM

Macro specifying whether the SysPM driver is available for the current device.

CYHAL_DRIVER_AVAILABLE_SYSTEM

Macro specifying whether the System driver is available for the current device.

CYHAL_DRIVER_AVAILABLE_TDM

Macro specifying whether the TDM driver is available for the current device.

CYHAL_DRIVER_AVAILABLE_TIMER

Macro specifying whether the Timer driver is available for the current device.

CYHAL_DRIVER_AVAILABLE_TRNG

Macro specifying whether the TRNG driver is available for the current device.

CYHAL_DRIVER_AVAILABLE_UART

Macro specifying whether the UART driver is available for the current device.

CYHAL_DRIVER_AVAILABLE_USB_DEV

Macro specifying whether the USB Dev driver is available for the current device.

CYHAL_DRIVER_AVAILABLE_WDT

Macro specifying whether the WDT driver is available for the current device.

Defines

CYHAL_ISR_PRIORITY_DEFAULT

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

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

cyhal_system_callback_t

Callbacks for Sleep and Deepsleep APIs.

Typedefs

typedef _cyhal_audioss_t 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.

typedef _cyhal_audioss_t 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.

Enums

enum cyhal_resource_t

cyhal_resource_t: Resource types that the hardware manager supports.

Values:

enumerator CYHAL_RSC_ADC

Analog to digital converter

enumerator CYHAL_RSC_ADCMIC

Analog to digital converter with Analog Mic support

enumerator CYHAL_RSC_BLESS

Bluetooth communications block

enumerator CYHAL_RSC_CAN

CAN communication block

enumerator CYHAL_RSC_CLKPATH

Clock Path. DEPRECATED.

enumerator CYHAL_RSC_CLOCK

Clock

enumerator CYHAL_RSC_CRYPTO

Crypto hardware accelerator

enumerator CYHAL_RSC_DAC

Digital to analog converter

enumerator CYHAL_RSC_DMA

DMA controller

enumerator CYHAL_RSC_DW

Datawire DMA controller

enumerator CYHAL_RSC_ETH

Ethernet communications block

enumerator CYHAL_RSC_GPIO

General purpose I/O pin

enumerator CYHAL_RSC_I2S

I2S communications block

enumerator CYHAL_RSC_I3C

I3C communications block

enumerator CYHAL_RSC_KEYSCAN

KeyScan block

enumerator CYHAL_RSC_LCD

Segment LCD controller

enumerator CYHAL_RSC_LIN

LIN communications block

enumerator CYHAL_RSC_LPCOMP

Low power comparator

enumerator CYHAL_RSC_LPTIMER

Low power timer

enumerator CYHAL_RSC_OPAMP

Opamp

enumerator CYHAL_RSC_PDM

PCM/PDM communications block

enumerator CYHAL_RSC_SMIF

Quad-SPI communications block

enumerator CYHAL_RSC_RTC

Real time clock

enumerator CYHAL_RSC_SCB

Serial Communications Block

enumerator CYHAL_RSC_SDIODEV

SDIO Device Block

enumerator CYHAL_RSC_SDHC

SD Host Controller

enumerator CYHAL_RSC_TCPWM

Timer/Counter/PWM block

enumerator CYHAL_RSC_TDM

TDM block

enumerator CYHAL_RSC_UDB

UDB Array

enumerator CYHAL_RSC_USB

USB communication block

enumerator CYHAL_RSC_INVALID

Placeholder for invalid type

enum cyhal_clock_block_t

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

Values:

struct cyhal_clock_t
#include <cyhal_hw_resources.h>

Clock 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.

Public Members

cy_en_divider_types_t div_type

Deprecated

uint8_t div_num

Deprecated

cyhal_clock_block_t block
uint8_t channel
bool reserved
struct cyhal_resource_inst_t
#include <cyhal_hw_resources.h>

Represents a particular instance of a resource on the chip.

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.

Public Members

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

struct cyhal_event_callback_data_t
#include <cyhal_hw_types.h>

Event callback data object.

Public Members

cy_israddress callback
void *callback_arg
struct cyhal_tcpwm_t
#include <cyhal_hw_types.h>

Shared data between timer/counter and PWM.

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

Public Members

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
struct cyhal_dma_t
#include <cyhal_hw_types.h>

DMA 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.

Public Members

cyhal_resource_inst_t resource
union cyhal_dma_t::[anonymous] channel_config
union cyhal_dma_t::[anonymous] descriptor_config
union cyhal_dma_t::[anonymous] descriptor
uint32_t direction
uint32_t irq_cause
cyhal_event_callback_data_t callback_data
cyhal_source_t source
cyhal_dma_t.channel_config
cyhal_dma_t.descriptor_config
cyhal_dma_t.descriptor
struct _cyhal_audioss_interface_t
#include <cyhal_hw_types.h>

Interface to abstract away the driver-specific differences between TDM and I2S.

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.

Public Members

void (*invoke_user_callback)(struct _cyhal_audioss_s *obj, uint32_t hal_event)

Invoke the user callback with the specified HAL event.

Only called after the user callback has been verified to not be null.

uint32_t event_mask_empty

HAL event mask that represents the empty state.

uint32_t event_mask_half_empty

HAL event mask that represents the half empty state.

uint32_t event_mask_full

HAL event mask that represents the full state.

uint32_t event_mask_half_full

HAL event mask that represents the half full state.

uint32_t event_rx_complete

HAL event mask that represents async rx complete.

uint32_t event_tx_complete

HAL event mask that represents async tx complete.

cy_rslt_t err_invalid_pin

Error code for invalid pin.

cy_rslt_t err_invalid_arg

Error code for invalid argument.

cy_rslt_t err_clock

Error code for invalid clock frequency.

struct _cyhal_audioss_t
#include <cyhal_hw_types.h>

Shared data between i2s and tdm.

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.

Public Members

void *empty
struct cyhal_adc_t
#include <cyhal_hw_types.h>

ADC 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.

Public Members

SAR_Type *base
struct _cyhal_adc_channel_s *channel_config[CY_SAR_MAX_NUM_CHANNELS]
cyhal_resource_inst_t resource
cyhal_clock_t clock
bool dedicated_clock
bool conversion_complete
uint8_t user_enabled_events
cyhal_event_callback_data_t callback_data
int32_t *async_buff_next
bool async_transfer_in_uv
size_t async_scans_remaining
bool continuous_scanning
cyhal_async_mode_t async_mode
cyhal_dma_t dma
cyhal_source_t source
int32_t *async_buff_orig
struct cyhal_adc_channel_t
#include <cyhal_hw_types.h>

ADC channel 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.

Public Members

cyhal_adc_t *adc
cyhal_gpio_t vplus
uint8_t channel_idx
cyhal_gpio_t vminus
uint32_t minimum_acquisition_ns
struct cyhal_comp_t
#include <cyhal_hw_types.h>

Comparator object.

Public Members

cyhal_resource_inst_t resource
union cyhal_comp_t::[anonymous] [anonymous]
cyhal_gpio_t pin_vin_p
cyhal_gpio_t pin_vin_m
cyhal_gpio_t pin_out
cyhal_event_callback_data_t callback_data
uint32_t irq_cause
cyhal_comp_t.__unnamed__

Public Members

LPCOMP_Type *base_lpcomp
struct cyhal_crc_t
#include <cyhal_hw_types.h>

CRC 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.

Public Members

CRYPTO_Type *base
cyhal_resource_inst_t resource
uint32_t crc_width
struct cyhal_dac_t
#include <cyhal_hw_types.h>

DAC 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.

Public Members

CTDAC_Type *base_dac
CTBM_Type *base_opamp
cyhal_resource_inst_t resource_dac
cyhal_resource_inst_t resource_opamp
cyhal_resource_inst_t resource_aref_opamp
cyhal_gpio_t pin
struct cyhal_opamp_t
#include <cyhal_hw_types.h>

OPAMP 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.

Public Members

void *empty
struct cyhal_flash_t
#include <cyhal_hw_types.h>

Flash 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.

Public Members

void *empty
struct cyhal_i2c_t
#include <cyhal_hw_types.h>

I2C 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.

Public Members

CySCB_Type *base
cyhal_resource_inst_t resource
cyhal_gpio_t pin_sda
cyhal_gpio_t pin_scl
cyhal_clock_t clock
bool is_shared_clock
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
bool is_slave
uint32_t address
uint32_t irq_cause
uint16_t pending
uint16_t events
cyhal_event_callback_data_t callback_data
struct cyhal_ezi2c_t
#include <cyhal_hw_types.h>

EZI2C 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.

Public Members

CySCB_Type *base
cyhal_resource_inst_t resource
cyhal_gpio_t pin_sda
cyhal_gpio_t pin_scl
cyhal_clock_t clock
bool is_shared_clock
cy_stc_scb_ezi2c_context_t context
uint32_t irq_cause
cyhal_event_callback_data_t callback_data
struct cyhal_keyscan_t
#include <cyhal_hw_types.h>

KeyScan 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.

Public Members

void *empty
struct cyhal_lptimer_t
#include <cyhal_hw_types.h>

LPTIMER 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.

Public Members

MCWDT_STRUCT_Type *base
cyhal_resource_inst_t resource
cyhal_event_callback_data_t callback_data
bool clear_int_mask
struct cyhal_pdm_pcm_t
#include <cyhal_hw_types.h>

PDM-PCM 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.

Public Members

PDM_Type *base
cyhal_resource_inst_t resource
cyhal_gpio_t pin_data
cyhal_gpio_t pin_clk
uint32_t irq_cause

User requested irq, see cyhal_pdm_pcm_event_t.

cyhal_event_callback_data_t callback_data
uint8_t word_size
cyhal_dma_t dma
bool stabilized
bool pm_transition_ready
cyhal_syspm_callback_data_t pm_callback
void *async_buffer
size_t async_read_remaining
struct cyhal_pwm_t
#include <cyhal_hw_types.h>

PWM 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.

Public Members

cyhal_tcpwm_t tcpwm
cyhal_gpio_t pin
cyhal_gpio_t pin_compl
struct cyhal_qspi_t
#include <cyhal_hw_types.h>

QSPI 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.

Public Members

SMIF_Type *base
cyhal_resource_inst_t resource
cyhal_gpio_t pin_ios[8]
en_hsiom_sel_t saved_io_hsiom[8]
cyhal_gpio_t pin_sclk
en_hsiom_sel_t saved_sclk_hsiom
cyhal_gpio_t pin_ssel[SMIF_CHIP_TOP_SPI_SEL_NR]
en_hsiom_sel_t saved_ssel_hsiom[SMIF_CHIP_TOP_SPI_SEL_NR]
cy_en_smif_slave_select_t slave_select
cyhal_clock_t clock
bool is_clock_owned
uint8_t mode
cy_stc_smif_context_t context
cy_en_smif_data_select_t data_select
uint32_t irq_cause
cyhal_event_callback_data_t callback_data
cyhal_syspm_callback_data_t pm_callback
bool pm_transition_pending
struct cyhal_quaddec_t
#include <cyhal_hw_types.h>

Quadrature Decoder 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.

Public Members

cyhal_tcpwm_t tcpwm
cyhal_gpio_t phi_a
cyhal_gpio_t phi_b
cyhal_gpio_t index
uint32_t last_counter_value
struct cyhal_trng_t
#include <cyhal_hw_types.h>

RNG 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.

Public Members

CRYPTO_Type *base
cyhal_resource_inst_t resource
struct cyhal_rtc_t
#include <cyhal_hw_types.h>

RTC 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.

Public Members

void *empty
struct cyhal_sdhc_t
#include <cyhal_hw_types.h>

SDHC 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.

Public Members

SDHC_Type *base
cyhal_resource_inst_t resource
cyhal_clock_t clock
bool emmc
cy_en_sd_host_dma_type_t dma_type
uint8_t bus_width
bool enable_led_control
uint8_t data_timeout_tout
bool data_timeout_auto_reconfig
uint32_t data_timeout_card_clocks_user
cy_stc_sd_host_context_t context
cyhal_gpio_t pin_clk
cyhal_gpio_t pin_cmd
cyhal_gpio_t pin_data[8]
cyhal_gpio_t pin_card_detect
cyhal_gpio_t pin_io_vol_sel
cyhal_gpio_t pin_card_pwr_en
cyhal_gpio_t pin_card_mech_write_prot
cyhal_gpio_t pin_led_ctrl
cyhal_gpio_t pin_emmc_reset
uint32_t irq_cause
cyhal_event_callback_data_t callback_data
bool pm_transition_pending
cyhal_syspm_callback_data_t pm_callback_data
bool low_voltage_io_desired
bool low_voltage_io_set
uint32_t bus_frequency_hz
uint32_t block_source_freq_hz
bool cd_gpio_cb_enabled
uint32_t adma_descriptor_tbl[2]
struct cyhal_sdio_t
#include <cyhal_hw_types.h>

SDIO 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.

Public Members

SDHC_Type *base
bool emmc
cy_en_sd_host_dma_type_t dma_type
cy_stc_sd_host_context_t context
uint32_t adma_descriptor_tbl[2]
cyhal_clock_t clock
cyhal_resource_inst_t resource
cyhal_gpio_t pin_clk
cyhal_gpio_t pin_cmd
cyhal_gpio_t pin_data0
cyhal_gpio_t pin_data1
cyhal_gpio_t pin_data2
cyhal_gpio_t pin_data3
uint32_t frequencyhal_hz
uint16_t block_size
uint32_t irq_cause
uint32_t events
cyhal_event_callback_data_t callback_data
bool pm_transition_pending
cyhal_syspm_callback_data_t pm_callback_data
struct cyhal_spi_t
#include <cyhal_hw_types.h>

SPI 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.

Public Members

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
struct cyhal_timer_t
#include <cyhal_hw_types.h>

Timer 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.

Public Members

cyhal_tcpwm_t tcpwm
uint32_t default_value
struct cyhal_uart_t
#include <cyhal_hw_types.h>

UART 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.

Public Members

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 is_user_clock
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
struct cyhal_usb_dev_t
#include <cyhal_hw_types.h>

USB Device 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.

Public Members

USBFS_Type *base
cy_stc_usbfs_dev_drv_context_t context
cyhal_resource_inst_t resource
cyhal_resource_inst_t pll_resource
cyhal_clock_t clock
bool shared_clock
cyhal_gpio_t pin_dp
cyhal_gpio_t pin_dm
cyhal_syspm_callback_data_t pm_callback
uint8_t *rd_data[CY_USBFS_DEV_DRV_NUM_EPS_MAX]
uint32_t rd_size[CY_USBFS_DEV_DRV_NUM_EPS_MAX]
struct cyhal_wdt_t
#include <cyhal_hw_types.h>

WDT 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.

Public Members

uint8_t placeholder