Trident IoT SDK
 
Loading...
Searching...
No Matches
T32CZ20_gpio.h
Go to the documentation of this file.
1
25
26#ifndef T32CZ20_GPIO_H_
27#define T32CZ20_GPIO_H_
28
29#include "tr_hal_platform.h"
30
31
37
38
42#define TR_HAL_MAX_PIN_NUMBER (32)
43
44
55#ifdef GPIO_SECURE_EN
56 #define CHIP_MEMORY_MAP_GPIO_BASE (0x50001000UL)
57#else
58 #define CHIP_MEMORY_MAP_GPIO_BASE (0x40001000UL)
59#endif // GPIO_SECURE_EN
60
61#ifdef SYSCTRL_SECURE_EN
62 #define CHIP_MEMORY_MAP_SYS_CTRL_BASE (0x50000000UL)
63#else
64 #define CHIP_MEMORY_MAP_SYS_CTRL_BASE (0x40000000UL)
65#endif // SYSCTRL_SECURE_EN
66
67
71typedef struct
72{
73 // a WRITE sets the output state to HIGH
74 // a READ gets the input pin state
75 __IO uint32_t state; // 0x00
76
77 // a WRITE sets the output state to LOW
78 // a READ gets the GPIO interrupt status
79 __IO uint32_t interrupt_status; // 0x04
80
81 // these two registers set a pin for output or input. Note that
82 // all pins start as inputs (0) on chip bootup.
83 // to set a pin for output: set a 1 in that bit in output_enable.
84 // to set a pin for input: set a 1 in that bit in input_enable.
85 //
86 // read output_enable (0x08) to see if the pin is set for input or output
87 // A value of 0 means that pin is set for input
88 // A value of 1 means that pin is set for output
89 //
90 // read input_enable (0x0C) to see if the output pin is set for HIGH or LOW output
91 // 0 = output low
92 // 1 = output high
93 __IO uint32_t output_enable; // 0x08
94 __IO uint32_t input_enable; // 0x0C
95
96 // settings for configuring interrupts on GPIO pins
97 // enable / disable registers are a pair
98 // read the enable register to get the current setting
99 __IO uint32_t enable_interrupt; // 0x10
100 __IO uint32_t disable_interrupt; // 0x14
101 // edge/level are a pair, default is level
102 __IO uint32_t enable_edge_trigger_interrupt; // 0x18
103 __IO uint32_t enable_level_trigger_interrupt; // 0x1C
104 // high/low are a pair, default is low
105 __IO uint32_t enable_active_high_trigger_interrupt; // 0x20
106 __IO uint32_t enable_active_low_trigger_interrupt; // 0x24
107 // enable_edge/disable_edge are a pait, default is disable
108 __IO uint32_t enable_any_edge_trigger_interrupt; // 0x28
109 __IO uint32_t disable_any_edge_trigger_interrupt; // 0x2C
110
111 // this register is how to clear edge triggered interrupts
112 // level sensitive interrupts stay until the pin state is cleared
113 __IO uint32_t clear_interrupt; // 0x30
114
115 // reserved
116 __IO uint32_t reserved1; // 0x34
117
118 // in addition to setting a pin to input or output with output_enable/input_enable
119 // registers, these must also be set, enable when INPUT and disable when OUTPUT
120 __IO uint32_t enable_input_mode; // 0x38
121 __IO uint32_t disable_input_mode; // 0x3C
122
123 // debounce settings
124 // set 1 in enable_debounce for that pin bit to enable debounce
125 // set 1 in disable_debounce for that pin bit to disable debounce
126 // note that reading enable_debounce and disable_debounce give the same value
127 // on read a 1 means enabled and 0 means disabled
128 __IO uint32_t enable_debounce; // 0x40
129 __IO uint32_t disable_debounce; // 0x44
130 __IO uint32_t debounce_time; // 0x48
131
132 __IO uint32_t reserved2; // 0x4C
133
134 // these fields are for setting a pin change to wake the chip from deep sleep
135 __IO uint32_t enable_wake_from_sleep; // 0x50
136 __IO uint32_t disable_wake_from_sleep; // 0x54
137 __IO uint32_t wake_on_high_state; // 0x58
138 __IO uint32_t wake_on_low_state; // 0x5C
139
141
142
143// *****************************************************************
144// *** some registers are multi-purpose:
145
146// at register address 0x00, a read means get pin state, a write is set_output_high
147#define set_output_high state
148
149// at register address 0x04, a read is get interrupt status, a write is set_output_low
150#define set_output_low interrupt_status
151
152
153// *****************************************************************
154// this orients the GPIO_REGISTERS struct with the correct addresses
155// so referencing a field will now read/write the correct GPIO register
156// chip address
157#define GPIO_CHIP_REGISTERS ((GPIO_REGISTERS_T *) CHIP_MEMORY_MAP_GPIO_BASE)
158
159
164#define TR_HAL_NUM_PULL_REGISTERS 4
165#define TR_HAL_PINS_PER_PULL_REG 8
166
167#define TR_HAL_NUM_DRIVE_REGISTERS 2
168#define TR_HAL_PINS_PER_DRIVE_REG 16
169
170
177typedef struct
178{
179 // bit 4 to bit 7 (0x000000F0) is the chip revision
180 // bit 8 to bit 15 (0x0000FF00) is the chip ID
181 __IO uint32_t chip_info; // 0x00
182
183 // select which real clock to use for virtual clocks: hclk, per_clk, slow_clk
184 // and configure baseband frequency
185 __IO uint32_t system_clock_control_0; // 0x04
186
187 // select clk for UARTs, external slow clk, PWM, timers 0,1,2
188 __IO uint32_t system_clock_control_1; // 0x08
189
190 __IO uint32_t system_power_state; // 0x0C
191
192 // default is 0 = GPIO
193 __IO uint32_t reserved_old_map[4]; // 0x10, 0x14, 0x18, 0x1C
194 //__IO uint32_t gpio_pin_map[4]; // 0x10, 0x14, 0x18, 0x1C
195
196 // default is 0b110 = 6 = 100K pull up
197 __IO uint32_t gpio_pull_ctrl[TR_HAL_NUM_PULL_REGISTERS]; // 0x20, 0x24, 0x28, 0x2C
198
199 // default is 0b11 = 3 = 20 mA (max)
200 __IO uint32_t gpio_drv_ctrl[TR_HAL_NUM_DRIVE_REGISTERS]; // 0x30, 0x34
201
202 // default is 0 = disabled
203 __IO uint32_t open_drain_enable; // 0x38
204
205 __IO uint32_t enable_schmitt; // 0x3C
206 __IO uint32_t enable_filter; // 0x40
207 __IO uint32_t aio_control; // 0x44
208 __IO uint32_t cache_control; // 0x48
209 __IO uint32_t pwm_select; // 0x4C
210
211 // these are for telling the system how to power the RAM when in a power down
212 // mode. The RAM can be retained or not retained
213 __IO uint32_t sram_lowpower_0; // 0x50
214 __IO uint32_t sram_lowpower_1; // 0x54
215 __IO uint32_t sram_lowpower_2; // 0x58
216 __IO uint32_t sram_lowpower_3; // 0x5C
217
218 __IO uint32_t system_clock_control_2; // 0x60
219 __IO uint32_t system_test; // 0x64
220 __IO uint32_t reserved[6]; // 0x68 - 0x7C
221
222 // for setting GPIO pins as output functions
223 __IO uint32_t gpio_output_mux[8]; // 0x80 - 0x9C
224
225 // for setting GPIO pins as input functions
226 // note that the reg at 0xAC == IMUX3 == 4th register == gpio_input_mux[3] is NOT CURRENTLY USED
227 __IO uint32_t gpio_input_mux[8]; // 0xA0 - 0xBC
228
230
231// *****************************************************************
232// this is for the SYSTEM CLOCK CONTROL 0 register (0x04)
233
234// bits 0,1 = HCLK select
235// hclk: host clock (host, AHB, memory, DMA, flash, I2S, crypto)
236#define SYS_CTRL_HCLK_SELECT_XTAL_CLK 0x00
237#define SYS_CTRL_HCLK_SELECT_PLL_CLK 0x01
238#define SYS_CTRL_HCLK_SELECT_XTAL_CLK_DIV2 0x02
239#define SYS_CTRL_HCLK_SELECT_RCO_1M 0x03
240#define SYS_CTRL_HCLK_SELECT_MASK 0x03
241
242// bits 2,3 = PER CLK select
243// per clk: wdog, I2C, SPI
244#define SYS_CTRL_PER_CLK_SELECT_XTAL_CLK 0x00
245#define SYS_CTRL_PER_CLK_SELECT_XTAL_CLK_DIV2 0x04
246#define SYS_CTRL_PER_CLK_SELECT_RCO_1M 0x08
247#define SYS_CTRL_PER_CLK_SELECT_MASK 0x0C
248
249// bits 4,5 reserved
250
251// bits 6,7 = SLOW CLK select
252// slow_clk: RTC, timers 3,4
253#define SYS_CTRL_SLOW_CLK_SELECT_RCO_32K 0x00
254#define SYS_CTRL_SLOW_CLK_SELECT_XO_32K 0x40
255#define SYS_CTRL_SLOW_CLK_SELECT_EXTERNAL 0xC0
256#define SYS_CTRL_SLOW_CLK_SELECT_MASK 0xC0
257
258// bits 8,9,10 = baseband frequency
259#define SYS_CTRL_BASEBAND_FREQ_48_MHZ 0x00
260#define SYS_CTRL_BASEBAND_FREQ_64_MHZ 0x100
261#define SYS_CTRL_BASEBAND_FREQ_36_MHZ 0x600
262#define SYS_CTRL_BASEBAND_FREQ_40_MHZ 0x700
263
264// bits 11-14 reserved
265
266// bit 15 - baseband PLL enable
267#define SYS_CTRL_BASEBAND_PLL_ENABLE 0x8000
268#define SYS_CTRL_BASEBAND_PLL_DISABLE 0x0000
269
270
271// *****************************************************************
272// this is for the SYSTEM CLOCK CONTROL 1 register (0x08)
273
274// bits 0,1 UART0 clock select
275// bits 2,3 UART1 clock select
276// bits 4,5 UART2 clock select
277
278// these are the values, and will need to be shifted based on the UART
279// this is for bits 0 thru 5
280#define SYS_CTRL_UART_CLOCK_SELECT_PER_CLOCK 0x00
281#define SYS_CTRL_UART_CLOCK_SELECT_RCO_1M 0x02
282#define SYS_CTRL_UART_CLOCK_SELECT_RCO_32K 0x03
283
284#define SYS_CTRL_UART0_CLOCK_SELECT_BIT_SHIFT 0
285#define SYS_CTRL_UART1_CLOCK_SELECT_BIT_SHIFT 2
286#define SYS_CTRL_UART2_CLOCK_SELECT_BIT_SHIFT 4
287
288// bits 6,7 reserved
289
290// bits 8 to 13 are for setting the slow clock to an external clock
291
292// bit 13 set = enable slow clock to use external source
293#define SYS_CTRL_SLOW_CLK_ENABLE_EXTERNAL 0x2000
294
295// the external clock source is a GPIO number, in bits 8 to 12
296// so shift the GPIO number by this amount of bits
297#define SYS_CTRL_SLOW_CLK_EXTERNAL_SRC_SHIFT 8
298
299// bits 16,17 = PWM0 clock select
300// bits 18,19 = PWM1 clock select
301// bits 20,21 = PWM2 clock select
302// bits 22,23 = PWM3 clock select
303// bits 24,25 = PWM4 clock select
304
305#define SYS_CTRL_PWM_CLOCK_SELECT_HCLK 0x00
306#define SYS_CTRL_PWM_CLOCK_SELECT_PER_CLK 0x01
307#define SYS_CTRL_PWM_CLOCK_SELECT_RCO_1M 0x02
308#define SYS_CTRL_PWM_CLOCK_SELECT_SLOW_CLK 0x03
309
310#define SYS_CTRL_PWM0_CLOCK_SELECT_BIT_SHIFT 16
311#define SYS_CTRL_PWM1_CLOCK_SELECT_BIT_SHIFT 18
312#define SYS_CTRL_PWM2_CLOCK_SELECT_BIT_SHIFT 20
313#define SYS_CTRL_PWM3_CLOCK_SELECT_BIT_SHIFT 22
314#define SYS_CTRL_PWM4_CLOCK_SELECT_BIT_SHIFT 24
315
316// bits 26,27 = Timer0 clock select
317// bits 28,29 = Timer1 clock select
318// bits 30,31 = Timer2 clock select
319
320#define SYS_CTRL_TIMER_CLOCK_SELECT_PER_CLK 0x00
321#define SYS_CTRL_TIMER_CLOCK_SELECT_RCO_1M 0x02
322#define SYS_CTRL_TIMER_CLOCK_SELECT_SLOW_CLK 0x03
323
324#define SYS_CTRL_TIMER0_CLOCK_SELECT_BIT_SHIFT 26
325#define SYS_CTRL_TIMER1_CLOCK_SELECT_BIT_SHIFT 28
326#define SYS_CTRL_TIMER2_CLOCK_SELECT_BIT_SHIFT 30
327
328
329// *****************************************************************
330// this is for the SYSTEM POWER STATE register (0x0C)
331#define TR_HAL_POWER_NORMAL 0x00
332#define TR_HAL_POWER_LITE_SLEEP 0x01
333#define TR_HAL_POWER_DEEP_SLEEP 0x02
334#define TR_HAL_POWER_POWERDOWN 0x04
335
336
337// *****************************************************************
338// this orients the SYSCTRL_REGISTERS struct with the correct addresses
339// so referencing a field will now read/write the correct SYSCTRL register
340// chip address
341#define SYS_CTRL_CHIP_REGISTERS ((SYS_CTRL_REGISTERS_T *) CHIP_MEMORY_MAP_SYS_CTRL_BASE)
342
343// these are for setting the system_clock_control register
344#define SCC_UART0_CLOCK_BIT 16
345#define SCC_UART1_CLOCK_BIT 17
346#define SCC_UART2_CLOCK_BIT 18
347
348
354typedef enum
355{
356 // ******************************************************
357 // values for pin output options
358 // these values are set by the chip - DO NOT CHANGE
359 // ******************************************************
360 // simple GPIO
362 // -------- UART 0 ---------------------
364 // -------- UART 1 ---------------------
367 // -------- UART 2 ---------------------
370 // -------- PWM ------------------------
376 // -------- infrared modulator ---------
378 // -------- I2C ------------------------
385 // -------- SPI 0 ----------------------
395 // -------- SPI 1 ----------------------
405 // -------- I2S ------------------------
410
411 // ---- special case -------------------
412 // ---- serial wire debug (pin 11) -----
414
415 // ----- radio debug -------------------
432
433 // max
435
436 // *****************************************************************
437 // values for pin input options
438 // these values are set by the chip - DO NOT CHANGE
439 // input values - these are NOT set by the chip
440 // *****************************************************************
442
443 // imux register 0xA0
448
449 // imux register 0xA4
450 //TR_HAL_GPIO_MODE_I2C_SLAVE_SDA // both output and input
451 //TR_HAL_GPIO_MODE_I2C_SLAVE_SCL // both output and input
454
455 // imux register 0xA8
456 //TR_HAL_GPIO_MODE_I2C_1_MASTER_SDA // both output and input
457 //TR_HAL_GPIO_MODE_I2C_1_MASTER_SCL // both output and input
458 //TR_HAL_GPIO_MODE_I2C_0_MASTER_SDA // both output and input
459 //TR_HAL_GPIO_MODE_I2C_0_MASTER_SCL // both output and input
460
461 // imux register 0xB0
466
467 // imux register 0xB4
470
471 // imux register 0xB8
476
477 // imux register 0xBC
481
483
484
493
494
503
504
517
518
536
537
556
557
558
572
573
583
584
588
589// there is only one event that can come back from a GPIO callback currently
590// reserve 0 for none in case we need it later
596
597// GPIO/button interrupt callback function type
598// to create a function in the app that can be used as a callback:
599// void app_gpio_button_callback(tr_hal_gpio_pin_t pin, tr_hal_gpio_event_t event)
600// where pin = the pin triggered
601// and event = what happened (TR_HAL_GPIO_EVENT_xxx)
602// this is set using the tr_hal_gpio_set_interrupt_callback API
604
605
636typedef struct
637{
638 // direction - INPUT or OUTPUT
639 tr_hal_direction_t direction;
640
641 // output level
642 tr_hal_level_t output_level;
643
644 // open drain
645 bool enable_open_drain;
646
647 // output drive strength
648 tr_hal_drive_strength_t drive_strength;
649
650 // interrupt trigger (edge high, edge low, etc)
651 // (note: int priority is not set here since it is set for ALL GPIOs)
652 tr_hal_trigger_t interrupt_trigger;
653
654 // event callback
655 tr_hal_gpio_event_callback_t event_handler_fx;
656
657 // pull up / pull down
658 tr_hal_pullopt_t pull_mode;
659
660 // debounce
661 // (note: debounce time is not set here since it is set for ALL GPIOs)
662 bool enable_debounce;
663
664 // set wake mode for this GPIO
665 tr_hal_wake_mode_t wake_mode;
666
668
669
675#define DEFAULT_GPIO_OUTPUT_CONFIG \
676 { \
677 .direction = TR_HAL_GPIO_DIRECTION_OUTPUT, \
678 .output_level = TR_HAL_GPIO_LEVEL_HIGH, \
679 .enable_open_drain = false, \
680 .drive_strength = TR_HAL_DRIVE_STRENGTH_DEFAULT, \
681 .interrupt_trigger = TR_HAL_GPIO_TRIGGER_NONE, \
682 .event_handler_fx = NULL, \
683 .pull_mode = TR_HAL_PULLOPT_PULL_NONE, \
684 .enable_debounce = false, \
685 .wake_mode = TR_HAL_WAKE_MODE_NONE, \
686 }
687
688#define DEFAULT_GPIO_INPUT_CONFIG \
689 { \
690 .direction = TR_HAL_GPIO_DIRECTION_INPUT, \
691 .interrupt_trigger = TR_HAL_GPIO_TRIGGER_EITHER_EDGE, \
692 .event_handler_fx = NULL, \
693 .pull_mode = TR_HAL_PULLOPT_PULL_NONE, \
694 .enable_debounce = true, \
695 .wake_mode = false, \
696 .output_level = TR_HAL_GPIO_LEVEL_HIGH, \
697 .enable_open_drain = false, \
698 .drive_strength = TR_HAL_DRIVE_STRENGTH_DEFAULT \
699 }
700
701
705
706
707#endif // T32CZ20_GPIO_H_
This file contains the CHIP SPECIFIC types and defines for the T32CZ20.
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
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_gpio_event_t
GPIO interrupt callback functions.
Definition T32CM11_gpio.h:355
tr_hal_trigger_t
values for setting the interrupt trigger in the Trident HAL GPIO APIs
Definition T32CM11_gpio.h:273
tr_hal_level_t
values for setting the level in the Trident HAL GPIO APIs
Definition T32CM11_gpio.h:263
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
#define TR_HAL_NUM_DRIVE_REGISTERS
Definition T32CZ20_gpio.h:167
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_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 T32CZ20_gpio.h:355
tr_hal_gpio_event_t
GPIO interrupt callback functions.
Definition T32CZ20_gpio.h:592
#define TR_HAL_NUM_PULL_REGISTERS
defines for dealing with the SYS_CTRL pull registers and drive registers
Definition T32CZ20_gpio.h:164
tr_hal_debounce_time_t
values for setting the debounce time register each individual GPIO can be set to enable or disable de...
Definition T32CZ20_gpio.h:545
tr_hal_trigger_t
values for setting the interrupt trigger in the Trident HAL GPIO APIs
Definition T32CZ20_gpio.h:509
void(* tr_hal_gpio_event_callback_t)(tr_hal_gpio_pin_t pin, tr_hal_gpio_event_t event)
Definition T32CZ20_gpio.h:603
tr_hal_level_t
values for setting the level in the Trident HAL GPIO APIs
Definition T32CZ20_gpio.h:499
@ TR_HAL_DRIVE_STRENGTH_20_MA
Definition T32CZ20_gpio.h:568
@ TR_HAL_DRIVE_STRENGTH_DEFAULT
Definition T32CZ20_gpio.h:570
@ TR_HAL_DRIVE_STRENGTH_4_MA
Definition T32CZ20_gpio.h:565
@ TR_HAL_DRIVE_STRENGTH_14_MA
Definition T32CZ20_gpio.h:567
@ TR_HAL_DRIVE_STRENGTH_MAX
Definition T32CZ20_gpio.h:569
@ TR_HAL_DRIVE_STRENGTH_10_MA
Definition T32CZ20_gpio.h:566
@ TR_HAL_WAKE_MODE_INPUT_LOW
Definition T32CZ20_gpio.h:580
@ TR_HAL_WAKE_MODE_INPUT_HIGH
Definition T32CZ20_gpio.h:581
@ TR_HAL_WAKE_MODE_NONE
Definition T32CZ20_gpio.h:579
@ TR_HAL_PULLOPT_PULL_DOWN_1M
Definition T32CZ20_gpio.h:529
@ TR_HAL_PULLOPT_PULL_UP_100K
Definition T32CZ20_gpio.h:532
@ TR_HAL_PULLOPT_PULL_NONE
Definition T32CZ20_gpio.h:526
@ TR_HAL_PULLOPT_PULL_UP_10K
Definition T32CZ20_gpio.h:531
@ TR_HAL_PULLOPT_MAX_VALUE
Definition T32CZ20_gpio.h:534
@ TR_HAL_PULLOPT_PULL_ALSO_NONE
Definition T32CZ20_gpio.h:530
@ TR_HAL_PULLOPT_PULL_DOWN_10K
Definition T32CZ20_gpio.h:527
@ TR_HAL_PULLOPT_PULL_UP_1M
Definition T32CZ20_gpio.h:533
@ TR_HAL_PULLOPT_PULL_DOWN_100K
Definition T32CZ20_gpio.h:528
@ TR_HAL_GPIO_DIRECTION_INPUT
Definition T32CZ20_gpio.h:491
@ TR_HAL_GPIO_DIRECTION_OUTPUT
Definition T32CZ20_gpio.h:490
@ TR_HAL_GPIO_MODE_PWM1
Definition T32CZ20_gpio.h:372
@ TR_HAL_GPIO_MODE_PWM0
Definition T32CZ20_gpio.h:371
@ TR_HAL_GPIO_MODE_DBGB
Definition T32CZ20_gpio.h:427
@ TR_HAL_GPIO_MODE_I2S_BCK
Definition T32CZ20_gpio.h:406
@ TR_HAL_GPIO_MODE_SPI_1_PERIPH_CS
Definition T32CZ20_gpio.h:475
@ TR_HAL_GPIO_MODE_SPI_0_PERIPH_SDATA_3
Definition T32CZ20_gpio.h:468
@ TR_HAL_GPIO_MODE_UART_2_RX
Definition T32CZ20_gpio.h:445
@ TR_HAL_GPIO_MODE_SPI_1_CS_2
Definition T32CZ20_gpio.h:403
@ TR_HAL_GPIO_MODE_SPI_0_CS_2
Definition T32CZ20_gpio.h:393
@ TR_HAL_GPIO_MODE_SPI_0_CLK
Definition T32CZ20_gpio.h:386
@ TR_HAL_GPIO_MODE_DBG5
Definition T32CZ20_gpio.h:421
@ TR_HAL_GPIO_MODE_SPI_1_SDATA_2
Definition T32CZ20_gpio.h:399
@ TR_HAL_GPIO_MODE_DBG1
Definition T32CZ20_gpio.h:417
@ TR_HAL_GPIO_MODE_PWM3
Definition T32CZ20_gpio.h:374
@ TR_HAL_GPIO_MODE_DBGF
Definition T32CZ20_gpio.h:431
@ TR_HAL_GPIO_MODE_I2C_SLAVE_SCL
Definition T32CZ20_gpio.h:383
@ TR_HAL_GPIO_MODE_SPI_1_SDATA_0
Definition T32CZ20_gpio.h:397
@ TR_HAL_GPIO_MODE_UART_2_RTSN
Definition T32CZ20_gpio.h:369
@ TR_HAL_GPIO_MODE_I2C_1_MASTER_SDA
Definition T32CZ20_gpio.h:382
@ TR_HAL_GPIO_MODE_IRM
Definition T32CZ20_gpio.h:377
@ TR_HAL_GPIO_MODE_I2C_1_MASTER_SCL
Definition T32CZ20_gpio.h:381
@ TR_HAL_GPIO_MODE_SPI_0_SDATA_0
Definition T32CZ20_gpio.h:387
@ TR_HAL_GPIO_MODE_SPI_1_PERIPH_SDATA_3
Definition T32CZ20_gpio.h:478
@ TR_HAL_GPIO_MODE_DBG9
Definition T32CZ20_gpio.h:425
@ TR_HAL_GPIO_MODE_UART_1_TX
Definition T32CZ20_gpio.h:365
@ TR_HAL_GPIO_MODE_SPI_0_SDATA_1
Definition T32CZ20_gpio.h:388
@ TR_HAL_GPIO_INPUT_MODE_MAX
Definition T32CZ20_gpio.h:480
@ TR_HAL_GPIO_MODE_SPI_0_CS_3
Definition T32CZ20_gpio.h:394
@ TR_HAL_GPIO_MODE_DBG7
Definition T32CZ20_gpio.h:423
@ TR_HAL_GPIO_MODE_UART_2_CTS
Definition T32CZ20_gpio.h:444
@ TR_HAL_GPIO_MODE_I2S_SDI
Definition T32CZ20_gpio.h:452
@ TR_HAL_GPIO_MODE_I2S_SDO
Definition T32CZ20_gpio.h:408
@ TR_HAL_GPIO_MODE_SPI_0_PERIPH_CS
Definition T32CZ20_gpio.h:465
@ TR_HAL_GPIO_MODE_UART_2_TX
Definition T32CZ20_gpio.h:368
@ TR_HAL_GPIO_MODE_SPI_1_CS_3
Definition T32CZ20_gpio.h:404
@ TR_HAL_GPIO_MODE_SPI_0_SDATA_3
Definition T32CZ20_gpio.h:390
@ TR_HAL_GPIO_MODE_SPI_0_CS_1
Definition T32CZ20_gpio.h:392
@ TR_HAL_GPIO_MODE_I2C_SLAVE_SDA
Definition T32CZ20_gpio.h:384
@ TR_HAL_GPIO_MODE_UART_1_RX
Definition T32CZ20_gpio.h:447
@ TR_HAL_GPIO_MODE_I2S_MCLK
Definition T32CZ20_gpio.h:409
@ TR_HAL_GPIO_MODE_SPI_0_PERIPH_SDATA_0
Definition T32CZ20_gpio.h:463
@ TR_HAL_GPIO_MODE_DBG0
Definition T32CZ20_gpio.h:416
@ TR_HAL_GPIO_MODE_SPI_0_CS_0
Definition T32CZ20_gpio.h:391
@ TR_HAL_GPIO_MODE_SPI_1_CLK
Definition T32CZ20_gpio.h:396
@ TR_HAL_GPIO_MODE_DBG4
Definition T32CZ20_gpio.h:420
@ TR_HAL_GPIO_MODE_DBGA
Definition T32CZ20_gpio.h:426
@ TR_HAL_GPIO_MODE_SPI_1_PERIPH_SDATA_1
Definition T32CZ20_gpio.h:472
@ TR_HAL_GPIO_MODE_PWM2
Definition T32CZ20_gpio.h:373
@ TR_HAL_GPIO_MODE_SPI_1_PERIPH_CLK
Definition T32CZ20_gpio.h:474
@ TR_HAL_GPIO_MODE_DBGC
Definition T32CZ20_gpio.h:428
@ TR_HAL_GPIO_MODE_SPI_1_CS_0
Definition T32CZ20_gpio.h:401
@ TR_HAL_GPIO_MODE_DBG2
Definition T32CZ20_gpio.h:418
@ TR_HAL_GPIO_MODE_SPI_0_PERIPH_SDATA_1
Definition T32CZ20_gpio.h:462
@ TR_HAL_GPIO_MODE_UART_0_TX
Definition T32CZ20_gpio.h:363
@ TR_HAL_GPIO_MODE_SWDIO
Definition T32CZ20_gpio.h:413
@ TR_HAL_GPIO_MODE_DBGE
Definition T32CZ20_gpio.h:430
@ TR_HAL_GPIO_MODE_DBG8
Definition T32CZ20_gpio.h:424
@ TR_HAL_GPIO_MODE_SPI_0_PERIPH_CLK
Definition T32CZ20_gpio.h:464
@ TR_HAL_GPIO_MODE_UART_0_RX
Definition T32CZ20_gpio.h:453
@ TR_HAL_GPIO_OUTPUT_MODE_MAX
Definition T32CZ20_gpio.h:434
@ TR_HAL_GPIO_MODE_I2C_0_MASTER_SDA
Definition T32CZ20_gpio.h:380
@ TR_HAL_GPIO_INPUT_MODE_MIN
Definition T32CZ20_gpio.h:441
@ TR_HAL_GPIO_MODE_SPI_1_SDATA_3
Definition T32CZ20_gpio.h:400
@ TR_HAL_GPIO_MODE_UART_1_CTS
Definition T32CZ20_gpio.h:446
@ TR_HAL_GPIO_MODE_SPI_1_CS_1
Definition T32CZ20_gpio.h:402
@ TR_HAL_GPIO_MODE_DBG6
Definition T32CZ20_gpio.h:422
@ TR_HAL_GPIO_MODE_PWM4
Definition T32CZ20_gpio.h:375
@ TR_HAL_GPIO_MODE_I2S_WCK
Definition T32CZ20_gpio.h:407
@ TR_HAL_GPIO_MODE_I2C_0_MASTER_SCL
Definition T32CZ20_gpio.h:379
@ TR_HAL_GPIO_MODE_SPI_0_SDATA_2
Definition T32CZ20_gpio.h:389
@ TR_HAL_GPIO_MODE_SPI_1_PERIPH_SDATA_0
Definition T32CZ20_gpio.h:473
@ TR_HAL_GPIO_MODE_SPI_1_SDATA_1
Definition T32CZ20_gpio.h:398
@ TR_HAL_GPIO_MODE_SPI_0_PERIPH_SDATA_2
Definition T32CZ20_gpio.h:469
@ TR_HAL_GPIO_MODE_UART_1_RTSN
Definition T32CZ20_gpio.h:366
@ TR_HAL_GPIO_MODE_DBG3
Definition T32CZ20_gpio.h:419
@ TR_HAL_GPIO_MODE_GPIO
Definition T32CZ20_gpio.h:361
@ TR_HAL_GPIO_MODE_SPI_1_PERIPH_SDATA_2
Definition T32CZ20_gpio.h:479
@ TR_HAL_GPIO_MODE_DBGD
Definition T32CZ20_gpio.h:429
@ TR_HAL_GPIO_EVENT_INPUT_TRIGGERED
Definition T32CZ20_gpio.h:594
@ TR_HAL_GPIO_EVENT_NONE
Definition T32CZ20_gpio.h:593
@ TR_HAL_DEBOUNCE_TIME_512_CLOCKS
Definition T32CZ20_gpio.h:550
@ TR_HAL_DEBOUNCE_TIME_MAX_VALUE
Definition T32CZ20_gpio.h:554
@ TR_HAL_DEBOUNCE_TIME_2048_CLOCKS
Definition T32CZ20_gpio.h:552
@ TR_HAL_DEBOUNCE_TIME_32_CLOCKS
Definition T32CZ20_gpio.h:546
@ TR_HAL_DEBOUNCE_TIME_128_CLOCKS
Definition T32CZ20_gpio.h:548
@ TR_HAL_DEBOUNCE_TIME_1024_CLOCKS
Definition T32CZ20_gpio.h:551
@ TR_HAL_DEBOUNCE_TIME_4096_CLOCKS
Definition T32CZ20_gpio.h:553
@ TR_HAL_DEBOUNCE_TIME_64_CLOCKS
Definition T32CZ20_gpio.h:547
@ TR_HAL_DEBOUNCE_TIME_256_CLOCKS
Definition T32CZ20_gpio.h:549
@ TR_HAL_GPIO_TRIGGER_LEVEL_LOW
Definition T32CZ20_gpio.h:514
@ TR_HAL_GPIO_TRIGGER_EITHER_EDGE
Definition T32CZ20_gpio.h:513
@ TR_HAL_GPIO_TRIGGER_LEVEL_HIGH
Definition T32CZ20_gpio.h:515
@ TR_HAL_GPIO_TRIGGER_NONE
Definition T32CZ20_gpio.h:510
@ TR_HAL_GPIO_TRIGGER_RISING_EDGE
Definition T32CZ20_gpio.h:511
@ TR_HAL_GPIO_TRIGGER_FALLING_EDGE
Definition T32CZ20_gpio.h:512
@ TR_HAL_GPIO_LEVEL_HIGH
Definition T32CZ20_gpio.h:501
@ TR_HAL_GPIO_LEVEL_LOW
Definition T32CZ20_gpio.h:500
Definition T32CM11_gpio.h:62
__IO uint32_t wake_on_high_state
Definition T32CZ20_gpio.h:137
__IO uint32_t reserved2
Definition T32CZ20_gpio.h:132
__IO uint32_t enable_input_mode
Definition T32CZ20_gpio.h:120
__IO uint32_t wake_on_low_state
Definition T32CZ20_gpio.h:138
__IO uint32_t reserved1
Definition T32CZ20_gpio.h:116
__IO uint32_t enable_wake_from_sleep
Definition T32CZ20_gpio.h:135
__IO uint32_t disable_wake_from_sleep
Definition T32CZ20_gpio.h:136
__IO uint32_t disable_input_mode
Definition T32CZ20_gpio.h:121
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 aio_control
Definition T32CZ20_gpio.h:207
__IO uint32_t cache_control
Definition T32CZ20_gpio.h:208
__IO uint32_t sram_lowpower_2
Definition T32CZ20_gpio.h:215
__IO uint32_t sram_lowpower_3
Definition T32CZ20_gpio.h:216
__IO uint32_t system_power_state
Definition T32CZ20_gpio.h:190
__IO uint32_t system_clock_control_0
Definition T32CZ20_gpio.h:185
__IO uint32_t enable_schmitt
Definition T32CZ20_gpio.h:205
__IO uint32_t enable_filter
Definition T32CZ20_gpio.h:206
__IO uint32_t pwm_select
Definition T32CZ20_gpio.h:209
__IO uint32_t sram_lowpower_1
Definition T32CZ20_gpio.h:214
__IO uint32_t sram_lowpower_0
Definition T32CZ20_gpio.h:213
__IO uint32_t system_clock_control_2
Definition T32CZ20_gpio.h:218
__IO uint32_t system_clock_control_1
Definition T32CZ20_gpio.h:188
__IO uint32_t system_test
Definition T32CZ20_gpio.h:219
pin type
Definition tr_hal_platform.h:23
Definition T32CM11_gpio.h:400