# GPIO Interface and Digital Pad control

Address | Register Name | Register Write | Register Read | Default | Description
--- | --- | --- | --- | --- | ---
0x40000900 - 0x4000093C | GPIO_CFG_* | (13:12) DRIVE | (13:12) DRIVE | 0x3 | Drive strength configuration
|  | (10) LPF | (10) LPF | 0x0 | Low Pass Filter enable
|  | (9:8) PULL_CTRL | (9:8) PULL_CTRL | 0x1 | Pull selection
|  | (7) NS_ACCESS_GPIO | (7) NS_ACCESS_GPIO | 0x0 | Non-Secure code can use GPIO (can only be written by a secure code)
|  | (6:0) IO_MODE | (6:0) IO_MODE | 0x0 | IO mode selection
0x40000940 | GPIO_INPUT_DATA | - | (15:0) DATA | 0x0 | GPIO[15:0] read data
0x40000944 | GPIO_OUTPUT_DATA | (15:0) DATA | (15:0) DATA | 0x0 | GPIO[15:0] output data
0x40000948 | GPIO_OUTPUT_DATA_SET | (15:0) GPIO | - | N/A | GPIO[15:0] output data set
0x4000094C | GPIO_OUTPUT_DATA_CLR | (15:0) GPIO | - | N/A | GPIO[15:0] output data clear
0x40000950 | GPIO_DIR | - | (15:0) GPIO | 0x0 | Get GPIO[15:0] direction
|  | (15:0) GPIO | - | N/A | Set GPIO[15:0] GPIO direction (only in GPIO_MODE_GPIO_x)
0x40000954 | GPIO_MODE | - | (15:0) GPIO | 0x0 | GPIO[15:0] mode
0x40000958 - 0x40000964 | GPIO_INT_CFG_* | (12) NS_ACCESS | (12) NS_ACCESS | 0x0 | Non-Secure code can access this GPIO_INT (can only be written by a secure code)
|  | (11) DEBOUNCE_ENABLE | (11) DEBOUNCE_ENABLE | 0x0 | Interrupt button debounce filter enable/disable
|  | (10:8) EVENT | (10:8) EVENT | 0x0 | Interrupt event configuration
|  | (4:0) SRC | (4:0) SRC | 0x0 | Interrupt input selection
0x40000968 | GPIO_INT_STATUS_S | - | (7) GPIO_INT3_STATUS | 0x0 | GPIO interrupt 3 status
|  | - | (6) GPIO_INT2_STATUS | 0x0 | GPIO interrupt 2 status
|  | - | (5) GPIO_INT1_STATUS | 0x0 | GPIO interrupt 1 status
|  | - | (4) GPIO_INT0_STATUS | 0x0 | GPIO interrupt 0 status
|  | (3) GPIO_INT3_CLEAR | - | N/A | GPIO interrupt 3 clear
|  | (2) GPIO_INT2_CLEAR | - | N/A | GPIO interrupt 2 clear
|  | (1) GPIO_INT1_CLEAR | - | N/A | GPIO interrupt 1 clear
|  | (0) GPIO_INT0_CLEAR | - | N/A | GPIO interrupt 0 clear
0x4000096C - 0x40000978 | GPIO_INT_STATUS_* | - | (4) GPIO_INT_STATUS | 0x0 | GPIO interrupt status
|  | (0) GPIO_INT_CLEAR | - | N/A | GPIO interrupt clear
0x4000097C | GPIO_INT_DEBOUNCE | (8) DEBOUNCE_CLK | (8) DEBOUNCE_CLK | 0x0 | Interrupt button debounce filter clock
|  | (7:0) DEBOUNCE_COUNT | (7:0) DEBOUNCE_COUNT | 0x0 | Interrupt button debounce filter count
0x40000980 | GPIO_JTAG_SW_PAD_CFG | (9) SWCLK_LPF | (9) SWCLK_LPF | 0x0 | SWCLK Low-Pass-Filter enable / disable
|  | (8) SWDIO_LPF | (8) SWDIO_LPF | 0x0 | SWDIO Low-Pass-Filter enable / disable
|  | (7) CM33_JTAG_DATA_EN | (7) CM33_JTAG_DATA_EN | 0x1 | CM33 JTAG data (TDI and TDO) on GPIO[3:2]
|  | (6) CM33_JTAG_TRST_EN | (6) CM33_JTAG_TRST_EN | 0x1 | CM33 JTAG TRST on GPIO4
|  | (5:4) SWCLK_PULL | (5:4) SWCLK_PULL | 0x1 | SWCLK pull-up enable / disable
|  | (3:2) SWDIO_DRIVE | (3:2) SWDIO_DRIVE | 0x3 | SWDIO drive strength
|  | (1:0) SWDIO_PULL | (1:0) SWDIO_PULL | 0x1 | SWDIO pull-up enable / disable
0x40000A00 - 0x40000A04 | GPIO_SRC_SPI_* | (12:8) CS | (12:8) CS | 0x11 | SPI_CS input selection
|  | (4:0) CLK | (4:0) CLK | 0x11 | SPI_CLK input selection
0x40000A08 - 0x40000A0C | GPIO_SRC_SPI_IO_* | (28:24) IO3 | (28:24) IO3 | 0x11 | SPI_IO3 input selection
|  | (20:16) IO2 | (20:16) IO2 | 0x11 | SPI_IO2 input selection
|  | (12:8) IO1 | (12:8) IO1 | 0x11 | SPI_IO1 input selection (master SERI)
|  | (4:0) IO0 | (4:0) IO0 | 0x11 | SPI_IO0 input selection (slave SERI)
0x40000A10 | GPIO_SRC_UART | (4:0) RX | (4:0) RX | 0x11 | UART_RX input selection
0x40000A14 - 0x40000A18 | GPIO_SRC_I2C_* | (12:8) SDA | (12:8) SDA | 0x11 | SDA input selection
|  | (4:0) SCL | (4:0) SCL | 0x11 | SCL input selection
0x40000A1C | GPIO_SRC_PCM | (20:16) SERI | (20:16) SERI | 0x11 | PCM_SERI input selection
|  | (12:8) FRAME | (12:8) FRAME | 0x11 | PCM_FRAME input selection
|  | (4:0) CLK | (4:0) CLK | 0x11 | PCM_CLK input selection
0x40000A20 | GPIO_SRC_LIN | (5) LIN_POLARITY | (5) LIN_POLARITY | 0x1 | LIN polarity
|  | (4:0) LIN | (4:0) LIN | 0x10 | LIN input selection
0x40000A24 | GPIO_SRC_NMI | (5) NMI_POLARITY | (5) NMI_POLARITY | 0x1 | NMI polarity
|  | (4:0) NMI | (4:0) NMI | 0x10 | NMI input selection
0x40000A28 | GPIO_SRC_BB_RX | (20:16) SYNC_P | (20:16) SYNC_P | 0x12 | Baseband controller interface SYNC_P input selection
|  | (12:8) CLK | (12:8) CLK | 0x12 | Baseband controller RX clock input selection
|  | (4:0) DATA | (4:0) DATA | 0x12 | Baseband controller RX data input selection
0x40000A2C | GPIO_SRC_BB_SPI | (4:0) MISO | (4:0) MISO | 0x12 | Baseband controller SPI_MISO input selection
0x40000A30 | GPIO_SRC_BB_COEX | (12:8) WLAN_RX | (12:8) WLAN_RX | 0x10 | Baseband controller WLAN_RX input selection
|  | (4:0) WLAN_TX | (4:0) WLAN_TX | 0x10 | Baseband controller WLAN_TX input selection
0x40000A34 | GPIO_SRC_BB_IQ_DATA | (28:24) IQ_DATA_3 | (28:24) IQ_DATA_3 | 0x12 | Baseband controller IQ_DATA_3 input selection
|  | (20:16) IQ_DATA_2 | (20:16) IQ_DATA_2 | 0x12 | Baseband controller IQ_DATA_2 input selection
|  | (12:8) IQ_DATA_1 | (12:8) IQ_DATA_1 | 0x12 | Baseband controller IQ_DATA_1 input selection
|  | (4:0) IQ_DATA_0 | (4:0) IQ_DATA_0 | 0x12 | Baseband controller IQ_DATA_0 input selection
0x40000A38 | GPIO_SRC_BB_IQ_DATA_P | (4:0) IQ_DATA_P | (4:0) IQ_DATA_P | 0x12 | Baseband controller IQ_DATA_P input selection
0x40000A3C | GPIO_SRC_RF_SPI | (20:16) MOSI | (20:16) MOSI | 0x12 | RF front-end SPI_MOSI input selection
|  | (12:8) CSN | (12:8) CSN | 0x12 | RF front-end SPI_CSN input selection
|  | (4:0) CLK | (4:0) CLK | 0x12 | RF front-end SPI_CLK input selection
0x40000A40 | GPIO_SRC_RF_GPIO03 | (28:24) GPIO3 | (28:24) GPIO3 | 0x12 | RF front-end GPIO3 input selection
|  | (20:16) GPIO2 | (20:16) GPIO2 | 0x10 | RF front-end GPIO2 input selection
|  | (12:8) GPIO1 | (12:8) GPIO1 | 0x10 | RF front-end GPIO1 input selection
|  | (4:0) GPIO0 | (4:0) GPIO0 | 0x10 | RF front-end GPIO0 input selection
0x40000A44 | GPIO_SRC_RF_GPIO47 | (28:24) GPIO7 | (28:24) GPIO7 | 0x10 | RF front-end GPIO7 input selection
|  | (20:16) GPIO6 | (20:16) GPIO6 | 0x10 | RF front-end GPIO6 input selection
|  | (12:8) GPIO5 | (12:8) GPIO5 | 0x10 | RF front-end GPIO5 input selection
|  | (4:0) GPIO4 | (4:0) GPIO4 | 0x12 | RE front-end GPIO4 input selection
0x40000A48 | GPIO_SRC_RF_GPIO89 | (12:8) GPIO9 | (12:8) GPIO9 | 0x10 | RF front-end GPIO9 input selection
|  | (4:0) GPIO8 | (4:0) GPIO8 | 0x10 | RF front-end GPIO8 input selection
0x40000A4C | GPIO_SRC_RF_CTE | (12:8) CTE_MODE | (12:8) CTE_MODE | 0x12 | RF front-end CTE_MODE input selection
|  | (4:0) CTE_SAMPLE_P | (4:0) CTE_SAMPLE_P | 0x12 | RF front-end CTE_SAMPLE_P input selection
0x40000A50 | GPIO_SRC_ASCC | (12:8) ASYNC_CLOCK | (12:8) ASYNC_CLOCK | 0x10 | ASCC asynchronous clock source input selection
|  | (4:0) SYNC_PULSE | (4:0) SYNC_PULSE | 0x10 | ASCC synchronization pulse input selection
0x40000A54 | GPIO_SRC_EXTCLK | (4:0) EXTCLK | (4:0) EXTCLK | 0x10 | EXTCLK input selection