GPIO Register description

The GPIO port registers and the GPIO pin interrupt registers are located on the ARM M0+ I/O port. The I/O port supports single-cycle access.

GPIO port addresses can be read and written as bytes, halfwords, or words.

“ext” indicates that the data read after reset depends on the state of the pin, which in turn may depend on an external source.

Note: You can program reserved bits in the GPIO registers to prevent the open-drain I2C pins from internally floating when not pinned out.
Table 1. GPIO Register overview: GPIO port (base address 0xA000 0000)
Name Access Address offset Description Reset value Width Reference
B0 to B17 R/W 0x0000 to 0x0012 Byte pin registers port 0; pins PIO0_0 to PIO0_17 ext byte (8 bit) GPIO registerName = B[0:17] addressOffset = 0x000
W0 to W17 R/W 0x1000 to 0x1048 Word pin registers port 0 ext word (32 bit) GPIO registerName = W[0:17] addressOffset = 0x000
DIR0 R/W 0x2000 Direction registers port 0 0 word (32 bit) GPIO registerName = DIR0 addressOffset = 0x2000
MASK0 R/W 0x2080 Mask register port 0 0 word (32 bit) GPIO registerName = MASK0 addressOffset = 0x2080
PIN0 R/W 0x2100 Port pin register port 0 ext word (32 bit) GPIO registerName = PIN0 addressOffset = 0x2100
MPIN0 R/W 0x2180 Masked port register port 0 ext word (32 bit) GPIO registerName = MPIN0 addressOffset = 0x2180
SET0 R/W 0x2200 Write: Set register for port 0 Read: output bits for port 0 0 word (32 bit) GPIO registerName = SET0 addressOffset = 0x2200
CLR0 WO 0x2280 Clear port 0 NA word (32 bit) GPIO registerName = CLR0 addressOffset = 0x2280
NOT0 WO 0x2300 Toggle port 0 NA word (32 bit) GPIO registerName = NOT0 addressOffset = 0x2300

-->