GPIO Registers

From 3dbrew
Jump to: navigation, search

Registers[edit]

GPIO[edit]

Name Address Width GPIO bitmasks associated with this register
GPIO_DATA0 0x10147000 2 0x1, 0x2, 0x4
GPIO_DATA1 0x10147010 4 0x8, 0x10
GPIO_DATA2 0x10147014 2 0x20
GPIO_DATA3 0x10147020 2 0x40, 0x80, 0x100, 0x200, 0x400, 0x800, 0x1000, 0x2000, 0x4000, 0x8000, 0x10000, 0x20000
GPIO_DATA3_INTERRUPT_CLEAR 0x10147022 2 0x40, 0x80, 0x100, 0x200, 0x400, 0x800, 0x1000, 0x2000, 0x4000, 0x8000, 0x10000, 0x20000
?? 0x10147024 2 0x40, 0x80, 0x100, 0x200, 0x400, 0x800, 0x1000, 0x2000, 0x4000, 0x8000, 0x10000, 0x20000
? 0x10147026 2 ?
GPIO_DATA4 0x10147028 2 0x40000

Legacy RTC[edit]

Name Address Width Description
RTC_CNT 0x10147100 2 Control register
RTC_REG_STAT1 0x10147110 1 Rtc status register 1 (command 0). Bitswapped
RTC_REG_STAT2 0x10147111 1 Rtc status register 2 (command 1). Bitswapped
RTC_REG_CLKADJ 0x10147112 1 Rtc clock adjustment register (command 6). Bitswapped
RTC_REG_FREE 0x10147113 1 The free general purpose rtc register (command 7). Bitswapped
RTC_REG_TIME1 0x10147120 4 Byte-wise bit-swapped (bit7 is bit0, etc.) BCD RTC (byte0 = seconds, byte1 = minutes, byte2 = hours, byte3 = day of week)
RTC_REG_TIME2 0x10147124 4 (3?) Day, month and year all byte-wise bit-swapped
RTC_REG_ALRMTIM1 0x10147130 4 (3?) Rtc alarm time register 1 (command 4). Byte-wise bit-swapped
RTC_REG_ALRMTIM2 0x10147134 4 (3?) Rtc alarm time register 2 (command 5). Byte-wise bit-swapped
RTC_REG_COUNT 0x10147140 4 (3?) Rtc dsi counter register (ex command 0). Byte-wise bit-swapped
RTC_REG_FOUT1 0x10147150 1 Rtc dsi fout register 1 (ex command 1). Bitswapped
RTC_REG_FOUT2 0x10147151 1 Rtc dsi fout register 2 (ex command 2). Bitswapped
RTC_REG_ALRMDAT1 0x10147160 4 (3?) Rtc dsi alarm date register 1 (ex command 4). Byte-wise bit-swapped
RTC_REG_ALRMDAT2 0x10147164 4 (3?) Rtc dsi alarm date register 2 (ex command 5). Byte-wise bit-swapped

Descriptions[edit]

0x10147010[edit]

Bit Description
24 Enable/disable? GPIO interrupt 0x64 (bitmask 0x8)
25 Enable/disable? GPIO interrupt 0x66 (bitmask 0x10)

0x10147026[edit]

Bit Description
0-8 ?
9 Enable/disable interrupt 0x71.
10-15 ?

GPIO_DATA[edit]

GPIO_DATA0[edit]

Bit Description
0-2 Used for GPIO bitmask 0x7.
1 DS EXTKEYIN Pen down (0 = touching, 1 = not touching)
3 Unused by GPIO-sysmodule and TwlBg.
4 Only used by Boot11.
5-15 Unused by GPIO-sysmodule and TwlBg.

GPIO_DATA1[edit]

Bit Description
0-1 Used for GPIO bitmask 0x18.
2-31 Unused by GPIO-sysmodule and TwlBg.

GPIO_DATA2[edit]

Bit Description
0 Used for GPIO bitmask 0x20.
1-15 Unused by GPIO-sysmodule and TwlBg.

GPIO_DATA3[edit]

Bit Description
0-11 Used for GPIO bitmask 0x3FFC0.
12-31 Unused by GPIO-sysmodule and TwlBg.

GPIO_DATA4[edit]

Bit Description
0 Used for GPIO bitmask 0x40000.
1-15 Unused by GPIO-sysmodule and TwlBg.

Legacy RTC[edit]

RTC_CNT (0x10147100)[edit]

Bit Description
0 Latch STAT1
1 Latch STAT2
2 Latch CLKADJ
3 Latch FREE
4 Latch TIME
5 Latch ALRMTIM1
6 Latch ALRMTIM2
7 Latch COUNT
8 Latch FOUT1
9 Latch FOUT2
10 Latch ALRMDAT1
11 Latch ALRMDAT2
12 ARM7 Busy? This may be chipselect
13 ARM7 write command received? (writing 1 clears it seems)
14 ARM7 read command recieved? (writing 1 clears it seems)
15 DS SIO SI pin (rtc irq pin)

Default values[edit]

After bootrom initialization, these are the values of the registers:

Address Value
0x10147000 0x0003
0x10147010 0x00000002
0x10147014 0x0000
0x10147020 0x00000DFB
0x10147024 0x00000000
0x10147028 0x0000