26#ifndef T32CZ20_GPIO_H_
27#define T32CZ20_GPIO_H_
42#define TR_HAL_MAX_PIN_NUMBER (32)
56 #define CHIP_MEMORY_MAP_GPIO_BASE (0x50001000UL)
58 #define CHIP_MEMORY_MAP_GPIO_BASE (0x40001000UL)
61#ifdef SYSCTRL_SECURE_EN
62 #define CHIP_MEMORY_MAP_SYS_CTRL_BASE (0x50000000UL)
64 #define CHIP_MEMORY_MAP_SYS_CTRL_BASE (0x40000000UL)
68 #define CHIP_MEMORY_MAP_XDMA_BASE (0x50028000UL)
70 #define CHIP_MEMORY_MAP_XDMA_BASE (0x40028000UL)
85 __IO uint32_t interrupt_status;
99 __IO uint32_t output_enable;
100 __IO uint32_t input_enable;
105 __IO uint32_t enable_interrupt;
106 __IO uint32_t disable_interrupt;
108 __IO uint32_t enable_edge_trigger_interrupt;
109 __IO uint32_t enable_level_trigger_interrupt;
111 __IO uint32_t enable_active_high_trigger_interrupt;
112 __IO uint32_t enable_active_low_trigger_interrupt;
114 __IO uint32_t enable_any_edge_trigger_interrupt;
115 __IO uint32_t disable_any_edge_trigger_interrupt;
119 __IO uint32_t clear_interrupt;
153#define set_output_high state
156#define set_output_low interrupt_status
163#define GPIO_CHIP_REGISTERS ((GPIO_REGISTERS_T *) CHIP_MEMORY_MAP_GPIO_BASE)
181#define XDMA_CHIP_REGISTERS ((XDMA_REGISTERS_T *) CHIP_MEMORY_MAP_XDMA_BASE)
480 bool enable_open_drain;
497 bool enable_debounce;
510#define DEFAULT_GPIO_OUTPUT_CONFIG \
512 .direction = TR_HAL_GPIO_DIRECTION_OUTPUT, \
513 .output_level = TR_HAL_GPIO_LEVEL_HIGH, \
514 .enable_open_drain = false, \
515 .drive_strength = TR_HAL_DRIVE_STRENGTH_DEFAULT, \
516 .interrupt_trigger = TR_HAL_GPIO_TRIGGER_NONE, \
517 .event_handler_fx = NULL, \
518 .pull_mode = TR_HAL_PULLOPT_PULL_NONE, \
519 .enable_debounce = false, \
520 .wake_mode = TR_HAL_WAKE_MODE_NONE, \
523#define DEFAULT_GPIO_INPUT_CONFIG \
525 .direction = TR_HAL_GPIO_DIRECTION_INPUT, \
526 .interrupt_trigger = TR_HAL_GPIO_TRIGGER_EITHER_EDGE, \
527 .event_handler_fx = NULL, \
528 .pull_mode = TR_HAL_PULLOPT_PULL_NONE, \
529 .enable_debounce = true, \
530 .wake_mode = false, \
531 .output_level = TR_HAL_GPIO_LEVEL_HIGH, \
532 .enable_open_drain = false, \
533 .drive_strength = TR_HAL_DRIVE_STRENGTH_DEFAULT \
tr_hal_drive_strength_t
values for setting the GPIO drive strength in the Trident HAL APIs NOTE: these CANNOT be changed....
Definition T32CM11_gpio.h:246
tr_hal_wake_mode_t
values for setting the GPIO wake mode
Definition T32CM11_gpio.h:260
tr_hal_pullopt_t
values for setting the pull option in the Trident HAL GPIO APIs NOTE: these CANNOT be changed....
Definition T32CM11_gpio.h:208
tr_hal_direction_t
values for setting the direction in the Trident HAL GPIO APIs
Definition T32CM11_gpio.h:172
tr_hal_pin_mode_t
these are the pin MODEs to be passed to tr_hal_gpio_set_mode note that these are defined by the chip ...
Definition T32CM11_gpio.h:137
tr_hal_gpio_event_t
GPIO interrupt callback functions.
Definition T32CM11_gpio.h:274
tr_hal_debounce_time_t
values for setting the debounce time register each individual GPIO can be set to enable or disable de...
Definition T32CM11_gpio.h:228
tr_hal_trigger_t
values for setting the interrupt trigger in the Trident HAL GPIO APIs
Definition T32CM11_gpio.h:192
void(* tr_hal_gpio_event_callback_t)(tr_hal_gpio_pin_t pin, tr_hal_gpio_event_t event)
Definition T32CM11_gpio.h:285
tr_hal_level_t
values for setting the level in the Trident HAL GPIO APIs
Definition T32CM11_gpio.h:182
@ TR_HAL_DRIVE_STRENGTH_20_MA
Definition T32CM11_gpio.h:250
@ TR_HAL_DRIVE_STRENGTH_DEFAULT
Definition T32CM11_gpio.h:252
@ TR_HAL_DRIVE_STRENGTH_4_MA
Definition T32CM11_gpio.h:247
@ TR_HAL_DRIVE_STRENGTH_14_MA
Definition T32CM11_gpio.h:249
@ TR_HAL_DRIVE_STRENGTH_MAX
Definition T32CM11_gpio.h:251
@ TR_HAL_DRIVE_STRENGTH_10_MA
Definition T32CM11_gpio.h:248
@ TR_HAL_WAKE_MODE_INPUT_LOW
Definition T32CM11_gpio.h:262
@ TR_HAL_WAKE_MODE_INPUT_HIGH
Definition T32CM11_gpio.h:263
@ TR_HAL_WAKE_MODE_NONE
Definition T32CM11_gpio.h:261
@ TR_HAL_PULLOPT_PULL_DOWN_1M
Definition T32CM11_gpio.h:212
@ TR_HAL_PULLOPT_PULL_UP_100K
Definition T32CM11_gpio.h:215
@ TR_HAL_PULLOPT_PULL_NONE
Definition T32CM11_gpio.h:209
@ TR_HAL_PULLOPT_PULL_UP_10K
Definition T32CM11_gpio.h:214
@ TR_HAL_PULLOPT_MAX_VALUE
Definition T32CM11_gpio.h:217
@ TR_HAL_PULLOPT_PULL_ALSO_NONE
Definition T32CM11_gpio.h:213
@ TR_HAL_PULLOPT_PULL_DOWN_10K
Definition T32CM11_gpio.h:210
@ TR_HAL_PULLOPT_PULL_UP_1M
Definition T32CM11_gpio.h:216
@ TR_HAL_PULLOPT_PULL_DOWN_100K
Definition T32CM11_gpio.h:211
@ TR_HAL_GPIO_DIRECTION_INPUT
Definition T32CM11_gpio.h:174
@ TR_HAL_GPIO_DIRECTION_OUTPUT
Definition T32CM11_gpio.h:173
@ TR_HAL_GPIO_MODE_PWM1
Definition T32CM11_gpio.h:146
@ TR_HAL_GPIO_MODE_PWM0
Definition T32CM11_gpio.h:145
@ TR_HAL_GPIO_MODE_PWM3
Definition T32CM11_gpio.h:148
@ TR_HAL_GPIO_MODE_PWM2
Definition T32CM11_gpio.h:147
@ TR_HAL_GPIO_MODE_PWM4
Definition T32CM11_gpio.h:149
@ TR_HAL_GPIO_MODE_GPIO
Definition T32CM11_gpio.h:138
@ TR_HAL_GPIO_EVENT_INPUT_TRIGGERED
Definition T32CM11_gpio.h:276
@ TR_HAL_GPIO_EVENT_NONE
Definition T32CM11_gpio.h:275
@ TR_HAL_DEBOUNCE_TIME_512_CLOCKS
Definition T32CM11_gpio.h:233
@ TR_HAL_DEBOUNCE_TIME_MAX_VALUE
Definition T32CM11_gpio.h:237
@ TR_HAL_DEBOUNCE_TIME_2048_CLOCKS
Definition T32CM11_gpio.h:235
@ TR_HAL_DEBOUNCE_TIME_32_CLOCKS
Definition T32CM11_gpio.h:229
@ TR_HAL_DEBOUNCE_TIME_128_CLOCKS
Definition T32CM11_gpio.h:231
@ TR_HAL_DEBOUNCE_TIME_1024_CLOCKS
Definition T32CM11_gpio.h:234
@ TR_HAL_DEBOUNCE_TIME_4096_CLOCKS
Definition T32CM11_gpio.h:236
@ TR_HAL_DEBOUNCE_TIME_64_CLOCKS
Definition T32CM11_gpio.h:230
@ TR_HAL_DEBOUNCE_TIME_256_CLOCKS
Definition T32CM11_gpio.h:232
@ TR_HAL_GPIO_TRIGGER_LEVEL_LOW
Definition T32CM11_gpio.h:197
@ TR_HAL_GPIO_TRIGGER_EITHER_EDGE
Definition T32CM11_gpio.h:196
@ TR_HAL_GPIO_TRIGGER_LEVEL_HIGH
Definition T32CM11_gpio.h:198
@ TR_HAL_GPIO_TRIGGER_NONE
Definition T32CM11_gpio.h:193
@ TR_HAL_GPIO_TRIGGER_RISING_EDGE
Definition T32CM11_gpio.h:194
@ TR_HAL_GPIO_TRIGGER_FALLING_EDGE
Definition T32CM11_gpio.h:195
@ TR_HAL_GPIO_LEVEL_HIGH
Definition T32CM11_gpio.h:184
@ TR_HAL_GPIO_LEVEL_LOW
Definition T32CM11_gpio.h:183
@ TR_HAL_GPIO_MODE_DBGB
Definition T32CZ20_gpio.h:262
@ TR_HAL_GPIO_MODE_I2S_BCK
Definition T32CZ20_gpio.h:241
@ TR_HAL_GPIO_MODE_SPI_1_PERIPH_CS
Definition T32CZ20_gpio.h:310
@ TR_HAL_GPIO_MODE_SPI_0_PERIPH_SDATA_3
Definition T32CZ20_gpio.h:303
@ TR_HAL_GPIO_MODE_UART_2_RX
Definition T32CZ20_gpio.h:280
@ TR_HAL_GPIO_MODE_SPI_1_CS_2
Definition T32CZ20_gpio.h:238
@ TR_HAL_GPIO_MODE_SPI_0_CS_2
Definition T32CZ20_gpio.h:228
@ TR_HAL_GPIO_MODE_SPI_0_CLK
Definition T32CZ20_gpio.h:221
@ TR_HAL_GPIO_MODE_DBG5
Definition T32CZ20_gpio.h:256
@ TR_HAL_GPIO_MODE_SPI_1_SDATA_2
Definition T32CZ20_gpio.h:234
@ TR_HAL_GPIO_MODE_DBG1
Definition T32CZ20_gpio.h:252
@ TR_HAL_GPIO_MODE_DBGF
Definition T32CZ20_gpio.h:266
@ TR_HAL_GPIO_MODE_I2C_SLAVE_SCL
Definition T32CZ20_gpio.h:218
@ TR_HAL_GPIO_MODE_SPI_1_SDATA_0
Definition T32CZ20_gpio.h:232
@ TR_HAL_GPIO_MODE_UART_2_RTSN
Definition T32CZ20_gpio.h:204
@ TR_HAL_GPIO_MODE_I2C_1_MASTER_SDA
Definition T32CZ20_gpio.h:217
@ TR_HAL_GPIO_MODE_IRM
Definition T32CZ20_gpio.h:212
@ TR_HAL_GPIO_MODE_I2C_1_MASTER_SCL
Definition T32CZ20_gpio.h:216
@ TR_HAL_GPIO_MODE_SPI_0_SDATA_0
Definition T32CZ20_gpio.h:222
@ TR_HAL_GPIO_MODE_SPI_1_PERIPH_SDATA_3
Definition T32CZ20_gpio.h:313
@ TR_HAL_GPIO_MODE_DBG9
Definition T32CZ20_gpio.h:260
@ TR_HAL_GPIO_MODE_UART_1_TX
Definition T32CZ20_gpio.h:200
@ TR_HAL_GPIO_MODE_SPI_0_SDATA_1
Definition T32CZ20_gpio.h:223
@ TR_HAL_GPIO_INPUT_MODE_MAX
Definition T32CZ20_gpio.h:315
@ TR_HAL_GPIO_MODE_SPI_0_CS_3
Definition T32CZ20_gpio.h:229
@ TR_HAL_GPIO_MODE_DBG7
Definition T32CZ20_gpio.h:258
@ TR_HAL_GPIO_MODE_UART_2_CTS
Definition T32CZ20_gpio.h:279
@ TR_HAL_GPIO_MODE_I2S_SDI
Definition T32CZ20_gpio.h:287
@ TR_HAL_GPIO_MODE_I2S_SDO
Definition T32CZ20_gpio.h:243
@ TR_HAL_GPIO_MODE_SPI_0_PERIPH_CS
Definition T32CZ20_gpio.h:300
@ TR_HAL_GPIO_MODE_UART_2_TX
Definition T32CZ20_gpio.h:203
@ TR_HAL_GPIO_MODE_SPI_1_CS_3
Definition T32CZ20_gpio.h:239
@ TR_HAL_GPIO_MODE_SPI_0_SDATA_3
Definition T32CZ20_gpio.h:225
@ TR_HAL_GPIO_MODE_SPI_0_CS_1
Definition T32CZ20_gpio.h:227
@ TR_HAL_GPIO_MODE_I2C_SLAVE_SDA
Definition T32CZ20_gpio.h:219
@ TR_HAL_GPIO_MODE_UART_1_RX
Definition T32CZ20_gpio.h:282
@ TR_HAL_GPIO_MODE_I2S_MCLK
Definition T32CZ20_gpio.h:244
@ TR_HAL_GPIO_MODE_SPI_0_PERIPH_SDATA_0
Definition T32CZ20_gpio.h:298
@ TR_HAL_GPIO_MODE_DBG0
Definition T32CZ20_gpio.h:251
@ TR_HAL_GPIO_MODE_SPI_0_CS_0
Definition T32CZ20_gpio.h:226
@ TR_HAL_GPIO_MODE_SPI_1_CLK
Definition T32CZ20_gpio.h:231
@ TR_HAL_GPIO_MODE_DBG4
Definition T32CZ20_gpio.h:255
@ TR_HAL_GPIO_MODE_DBGA
Definition T32CZ20_gpio.h:261
@ TR_HAL_GPIO_MODE_SPI_1_PERIPH_SDATA_1
Definition T32CZ20_gpio.h:307
@ TR_HAL_GPIO_MODE_SPI_1_PERIPH_CLK
Definition T32CZ20_gpio.h:309
@ TR_HAL_GPIO_MODE_DBGC
Definition T32CZ20_gpio.h:263
@ TR_HAL_GPIO_MODE_SPI_1_CS_0
Definition T32CZ20_gpio.h:236
@ TR_HAL_GPIO_MODE_DBG2
Definition T32CZ20_gpio.h:253
@ TR_HAL_GPIO_MODE_SPI_0_PERIPH_SDATA_1
Definition T32CZ20_gpio.h:297
@ TR_HAL_GPIO_MODE_UART_0_TX
Definition T32CZ20_gpio.h:198
@ TR_HAL_GPIO_MODE_SWDIO
Definition T32CZ20_gpio.h:248
@ TR_HAL_GPIO_MODE_DBGE
Definition T32CZ20_gpio.h:265
@ TR_HAL_GPIO_MODE_DBG8
Definition T32CZ20_gpio.h:259
@ TR_HAL_GPIO_MODE_SPI_0_PERIPH_CLK
Definition T32CZ20_gpio.h:299
@ TR_HAL_GPIO_MODE_UART_0_RX
Definition T32CZ20_gpio.h:288
@ TR_HAL_GPIO_OUTPUT_MODE_MAX
Definition T32CZ20_gpio.h:269
@ TR_HAL_GPIO_MODE_I2C_0_MASTER_SDA
Definition T32CZ20_gpio.h:215
@ TR_HAL_GPIO_INPUT_MODE_MIN
Definition T32CZ20_gpio.h:276
@ TR_HAL_GPIO_MODE_SPI_1_SDATA_3
Definition T32CZ20_gpio.h:235
@ TR_HAL_GPIO_MODE_UART_1_CTS
Definition T32CZ20_gpio.h:281
@ TR_HAL_GPIO_MODE_SPI_1_CS_1
Definition T32CZ20_gpio.h:237
@ TR_HAL_GPIO_MODE_DBG6
Definition T32CZ20_gpio.h:257
@ TR_HAL_GPIO_MODE_I2S_WCK
Definition T32CZ20_gpio.h:242
@ TR_HAL_GPIO_MODE_I2C_0_MASTER_SCL
Definition T32CZ20_gpio.h:214
@ TR_HAL_GPIO_MODE_SPI_0_SDATA_2
Definition T32CZ20_gpio.h:224
@ TR_HAL_GPIO_MODE_SPI_1_PERIPH_SDATA_0
Definition T32CZ20_gpio.h:308
@ TR_HAL_GPIO_MODE_SPI_1_SDATA_1
Definition T32CZ20_gpio.h:233
@ TR_HAL_GPIO_MODE_SPI_0_PERIPH_SDATA_2
Definition T32CZ20_gpio.h:304
@ TR_HAL_GPIO_MODE_UART_1_RTSN
Definition T32CZ20_gpio.h:201
@ TR_HAL_GPIO_MODE_DBG3
Definition T32CZ20_gpio.h:254
@ TR_HAL_GPIO_MODE_SPI_1_PERIPH_SDATA_2
Definition T32CZ20_gpio.h:314
@ TR_HAL_GPIO_MODE_DBGD
Definition T32CZ20_gpio.h:264
Definition T32CM11_gpio.h:62
__IO uint32_t wake_on_high_state
Definition T32CZ20_gpio.h:143
__IO uint32_t reserved2
Definition T32CZ20_gpio.h:138
__IO uint32_t enable_input_mode
Definition T32CZ20_gpio.h:126
__IO uint32_t wake_on_low_state
Definition T32CZ20_gpio.h:144
__IO uint32_t reserved1
Definition T32CZ20_gpio.h:122
__IO uint32_t enable_wake_from_sleep
Definition T32CZ20_gpio.h:141
__IO uint32_t enable_debounce
Definition T32CM11_gpio.h:108
__IO uint32_t disable_debounce
Definition T32CM11_gpio.h:109
__IO uint32_t disable_wake_from_sleep
Definition T32CZ20_gpio.h:142
__IO uint32_t debounce_time
Definition T32CM11_gpio.h:110
__IO uint32_t disable_input_mode
Definition T32CZ20_gpio.h:127
offsets for where to find chip registers needed for xDMA register . see section 10....
Definition T32CZ20_gpio.h:172
__IO uint32_t enable
Definition T32CZ20_gpio.h:173
pin type
Definition tr_hal_platform.h:23
Definition T32CM11_gpio.h:319