25#ifndef T32CM11_GPIO_H_
26#define T32CM11_GPIO_H_
41#define TR_HAL_MAX_PIN_NUMBER (32)
54#define CHIP_MEMORY_MAP_GPIO_BASE (0x40000000UL)
55#define CHIP_MEMORY_MAP_SYS_CTRL_BASE (0x40800000UL)
119#define set_output_high state
122#define set_output_low interrupt_status
129#define GPIO_CHIP_REGISTERS ((GPIO_REGISTERS_T *) CHIP_MEMORY_MAP_GPIO_BASE)
136#define TR_HAL_NUM_PULL_REGISTERS 4
137#define TR_HAL_PINS_PER_PULL_REG 8
139#define TR_HAL_NUM_MODE_REGISTERS 4
140#define TR_HAL_PINS_PER_MODE_REG 8
142#define TR_HAL_NUM_DRIVE_REGISTERS 2
143#define TR_HAL_PINS_PER_DRIVE_REG 16
156 __IO uint32_t reserved[2];
182 __IO uint32_t reserved2[4];
183 __IO uint32_t scratchpad[8];
192 __IO uint32_t reserved3[2];
206#define SYS_CTRL_CHIP_REGISTERS ((SYS_CTRL_REGISTERS_T *) CHIP_MEMORY_MAP_SYS_CTRL_BASE)
209#define SCC_UART0_CLOCK_BIT 16
210#define SCC_UART1_CLOCK_BIT 17
211#define SCC_UART2_CLOCK_BIT 18
213#define TR_HAL_ENABLE_LITE_SLEEP 1
214#define TR_HAL_ENABLE_DEEP_SLEEP 2
438#define DEFAULT_GPIO_OUTPUT_CONFIG \
440 .direction = TR_HAL_GPIO_DIRECTION_OUTPUT, \
441 .output_level = TR_HAL_GPIO_LEVEL_HIGH, \
442 .enable_open_drain = false, \
443 .drive_strength = TR_HAL_DRIVE_STRENGTH_DEFAULT, \
444 .interrupt_trigger = TR_HAL_GPIO_TRIGGER_NONE, \
445 .event_handler_fx = NULL, \
446 .pull_mode = TR_HAL_PULLOPT_PULL_NONE, \
447 .enable_debounce = false, \
448 .wake_mode = TR_HAL_WAKE_MODE_NONE, \
451#define DEFAULT_GPIO_INPUT_CONFIG \
453 .direction = TR_HAL_GPIO_DIRECTION_INPUT, \
454 .interrupt_trigger = TR_HAL_GPIO_TRIGGER_EITHER_EDGE, \
455 .event_handler_fx = NULL, \
456 .pull_mode = TR_HAL_PULLOPT_PULL_NONE, \
457 .enable_debounce = true, \
458 .wake_mode = TR_HAL_WAKE_MODE_NONE, \
459 .output_level = TR_HAL_GPIO_LEVEL_HIGH, \
460 .enable_open_drain = false, \
461 .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:327
tr_hal_wake_mode_t
values for setting the GPIO wake mode
Definition T32CM11_gpio.h:341
#define TR_HAL_NUM_DRIVE_REGISTERS
Definition T32CM11_gpio.h:142
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:289
tr_hal_direction_t
values for setting the direction in the Trident HAL GPIO APIs
Definition T32CM11_gpio.h:253
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:222
tr_hal_gpio_event_t
GPIO interrupt callback functions.
Definition T32CM11_gpio.h:355
#define TR_HAL_NUM_PULL_REGISTERS
defines for dealing with the SYS_CTRL pull registers, mode registers, and drive registers
Definition T32CM11_gpio.h:136
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:309
tr_hal_trigger_t
values for setting the interrupt trigger in the Trident HAL GPIO APIs
Definition T32CM11_gpio.h:273
void(* tr_hal_gpio_event_callback_t)(tr_hal_gpio_pin_t pin, tr_hal_gpio_event_t event)
Definition T32CM11_gpio.h:366
#define TR_HAL_NUM_MODE_REGISTERS
Definition T32CM11_gpio.h:139
tr_hal_level_t
values for setting the level in the Trident HAL GPIO APIs
Definition T32CM11_gpio.h:263
@ TR_HAL_DRIVE_STRENGTH_20_MA
Definition T32CM11_gpio.h:331
@ TR_HAL_DRIVE_STRENGTH_DEFAULT
Definition T32CM11_gpio.h:333
@ TR_HAL_DRIVE_STRENGTH_4_MA
Definition T32CM11_gpio.h:328
@ TR_HAL_DRIVE_STRENGTH_14_MA
Definition T32CM11_gpio.h:330
@ TR_HAL_DRIVE_STRENGTH_MAX
Definition T32CM11_gpio.h:332
@ TR_HAL_DRIVE_STRENGTH_10_MA
Definition T32CM11_gpio.h:329
@ TR_HAL_WAKE_MODE_INPUT_LOW
Definition T32CM11_gpio.h:343
@ TR_HAL_WAKE_MODE_INPUT_HIGH
Definition T32CM11_gpio.h:344
@ TR_HAL_WAKE_MODE_NONE
Definition T32CM11_gpio.h:342
@ TR_HAL_PULLOPT_PULL_DOWN_1M
Definition T32CM11_gpio.h:293
@ TR_HAL_PULLOPT_PULL_UP_100K
Definition T32CM11_gpio.h:296
@ TR_HAL_PULLOPT_PULL_NONE
Definition T32CM11_gpio.h:290
@ TR_HAL_PULLOPT_PULL_UP_10K
Definition T32CM11_gpio.h:295
@ TR_HAL_PULLOPT_MAX_VALUE
Definition T32CM11_gpio.h:298
@ TR_HAL_PULLOPT_PULL_ALSO_NONE
Definition T32CM11_gpio.h:294
@ TR_HAL_PULLOPT_PULL_DOWN_10K
Definition T32CM11_gpio.h:291
@ TR_HAL_PULLOPT_PULL_UP_1M
Definition T32CM11_gpio.h:297
@ TR_HAL_PULLOPT_PULL_DOWN_100K
Definition T32CM11_gpio.h:292
@ TR_HAL_GPIO_DIRECTION_INPUT
Definition T32CM11_gpio.h:255
@ TR_HAL_GPIO_DIRECTION_OUTPUT
Definition T32CM11_gpio.h:254
@ TR_HAL_GPIO_MODE_PWM1
Definition T32CM11_gpio.h:231
@ TR_HAL_GPIO_MODE_QSPI0
Definition T32CM11_gpio.h:224
@ TR_HAL_GPIO_MODE_PWM0
Definition T32CM11_gpio.h:230
@ TR_HAL_GPIO_MODE_I2C
Definition T32CM11_gpio.h:225
@ TR_HAL_GPIO_MODE_PWM3
Definition T32CM11_gpio.h:233
@ TR_HAL_GPIO_MODE_I2S
Definition T32CM11_gpio.h:228
@ TR_HAL_GPIO_MODE_SPI0_CS2
Definition T32CM11_gpio.h:242
@ TR_HAL_GPIO_MODE_SPI0_CS1
Definition T32CM11_gpio.h:241
@ TR_HAL_GPIO_MODE_MAX
Definition T32CM11_gpio.h:245
@ TR_HAL_GPIO_MODE_SPI0
Definition T32CM11_gpio.h:237
@ TR_HAL_GPIO_MODE_UART
Definition T32CM11_gpio.h:226
@ TR_HAL_GPIO_MODE_PWM2
Definition T32CM11_gpio.h:232
@ TR_HAL_GPIO_MODE_SPI0_CS3
Definition T32CM11_gpio.h:243
@ TR_HAL_GPIO_MODE_PWM
Definition T32CM11_gpio.h:229
@ TR_HAL_GPIO_MODE_PWM4
Definition T32CM11_gpio.h:234
@ TR_HAL_GPIO_MODE_GPIO
Definition T32CM11_gpio.h:223
@ TR_HAL_GPIO_MODE_SPI1
Definition T32CM11_gpio.h:238
@ TR_HAL_GPIO_EVENT_INPUT_TRIGGERED
Definition T32CM11_gpio.h:357
@ TR_HAL_GPIO_EVENT_NONE
Definition T32CM11_gpio.h:356
@ TR_HAL_DEBOUNCE_TIME_512_CLOCKS
Definition T32CM11_gpio.h:314
@ TR_HAL_DEBOUNCE_TIME_MAX_VALUE
Definition T32CM11_gpio.h:318
@ TR_HAL_DEBOUNCE_TIME_2048_CLOCKS
Definition T32CM11_gpio.h:316
@ TR_HAL_DEBOUNCE_TIME_32_CLOCKS
Definition T32CM11_gpio.h:310
@ TR_HAL_DEBOUNCE_TIME_128_CLOCKS
Definition T32CM11_gpio.h:312
@ TR_HAL_DEBOUNCE_TIME_1024_CLOCKS
Definition T32CM11_gpio.h:315
@ TR_HAL_DEBOUNCE_TIME_4096_CLOCKS
Definition T32CM11_gpio.h:317
@ TR_HAL_DEBOUNCE_TIME_64_CLOCKS
Definition T32CM11_gpio.h:311
@ TR_HAL_DEBOUNCE_TIME_256_CLOCKS
Definition T32CM11_gpio.h:313
@ TR_HAL_GPIO_TRIGGER_LEVEL_LOW
Definition T32CM11_gpio.h:278
@ TR_HAL_GPIO_TRIGGER_EITHER_EDGE
Definition T32CM11_gpio.h:277
@ TR_HAL_GPIO_TRIGGER_LEVEL_HIGH
Definition T32CM11_gpio.h:279
@ TR_HAL_GPIO_TRIGGER_NONE
Definition T32CM11_gpio.h:274
@ TR_HAL_GPIO_TRIGGER_RISING_EDGE
Definition T32CM11_gpio.h:275
@ TR_HAL_GPIO_TRIGGER_FALLING_EDGE
Definition T32CM11_gpio.h:276
@ TR_HAL_GPIO_LEVEL_HIGH
Definition T32CM11_gpio.h:265
@ TR_HAL_GPIO_LEVEL_LOW
Definition T32CM11_gpio.h:264
tr_hal_drive_strength_t
values for setting the GPIO drive strength in the Trident HAL APIs NOTE: these CANNOT be changed....
Definition T32CZ20_gpio.h:564
tr_hal_wake_mode_t
values for setting the GPIO wake mode
Definition T32CZ20_gpio.h:578
tr_hal_pullopt_t
values for setting the pull option in the Trident HAL GPIO APIs NOTE: these CANNOT be changed....
Definition T32CZ20_gpio.h:525
tr_hal_direction_t
values for setting the direction in the Trident HAL GPIO APIs
Definition T32CZ20_gpio.h:489
tr_hal_trigger_t
values for setting the interrupt trigger in the Trident HAL GPIO APIs
Definition T32CZ20_gpio.h:509
tr_hal_level_t
values for setting the level in the Trident HAL GPIO APIs
Definition T32CZ20_gpio.h:499
Definition T32CM11_gpio.h:62
__IO uint32_t enable_level_trigger_interrupt
Definition T32CM11_gpio.h:86
__IO uint32_t enable_loopback_mode
Definition T32CM11_gpio.h:99
__IO uint32_t state
Definition T32CM11_gpio.h:66
__IO uint32_t enable_edge_trigger_interrupt
Definition T32CM11_gpio.h:85
__IO uint32_t disable_inhibit_input_mode
Definition T32CM11_gpio.h:101
__IO uint32_t input_enable
Definition T32CM11_gpio.h:77
__IO uint32_t clear_interrupt
Definition T32CM11_gpio.h:96
__IO uint32_t output_enable
Definition T32CM11_gpio.h:76
__IO uint32_t enable_interrupt
Definition T32CM11_gpio.h:82
__IO uint32_t enable_any_edge_trigger_interrupt
Definition T32CM11_gpio.h:91
__IO uint32_t disable_interrupt
Definition T32CM11_gpio.h:83
__IO uint32_t enable_debounce
Definition T32CM11_gpio.h:108
__IO uint32_t disable_debounce
Definition T32CM11_gpio.h:109
__IO uint32_t enable_inhibit_input_mode
Definition T32CM11_gpio.h:100
__IO uint32_t enable_active_high_trigger_interrupt
Definition T32CM11_gpio.h:88
__IO uint32_t debounce_time
Definition T32CM11_gpio.h:110
__IO uint32_t disable_any_edge_trigger_interrupt
Definition T32CM11_gpio.h:92
__IO uint32_t interrupt_status
Definition T32CM11_gpio.h:67
__IO uint32_t enable_active_low_trigger_interrupt
Definition T32CM11_gpio.h:89
offsets for where to find chip registers needed for System Control register which is used to configur...
Definition T32CM11_gpio.h:153
__IO uint32_t system_clock_control
Definition T32CM11_gpio.h:155
__IO uint32_t random_number_value
Definition T32CM11_gpio.h:179
__IO uint32_t chip_info
Definition T32CM11_gpio.h:197
__IO uint32_t enable_wake_on_high
Definition T32CM11_gpio.h:186
__IO uint32_t open_drain_enable
Definition T32CM11_gpio.h:168
__IO uint32_t random_number_select
Definition T32CM11_gpio.h:177
__IO uint32_t analog_IO_enable
Definition T32CM11_gpio.h:173
__IO uint32_t random_number_status
Definition T32CM11_gpio.h:178
__IO uint32_t sleep_enable
Definition T32CM11_gpio.h:154
__IO uint32_t enable_wake_on_low
Definition T32CM11_gpio.h:189
__IO uint32_t random_number_trigger
Definition T32CM11_gpio.h:176
pin type
Definition tr_hal_platform.h:23
Definition T32CM11_gpio.h:400
tr_hal_gpio_event_callback_t event_handler_fx
Definition T32CM11_gpio.h:418
tr_hal_wake_mode_t wake_mode
Definition T32CM11_gpio.h:428
tr_hal_level_t output_level
Definition T32CM11_gpio.h:405
tr_hal_trigger_t interrupt_trigger
Definition T32CM11_gpio.h:415
tr_hal_drive_strength_t drive_strength
Definition T32CM11_gpio.h:411
tr_hal_direction_t direction
Definition T32CM11_gpio.h:402
bool enable_open_drain
Definition T32CM11_gpio.h:408
bool enable_debounce
Definition T32CM11_gpio.h:425
tr_hal_pullopt_t pull_mode
Definition T32CM11_gpio.h:421