Changes

Jump to navigation Jump to search
443 bytes added ,  00:51, 21 January 2021
Rewrite page
Line 4: Line 4:     
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 +
!  Old3DS
 
!  Name
 
!  Name
 
!  Address
 
!  Address
 
!  Width
 
!  Width
!  GPIO [[GPIO_Services|bitmasks]] associated with this register
   
|-
 
|-
| GPIO_DATA0
+
| style="background: green" | Yes
 +
| [[#GPIOn_DATA|GPIO1_DATA]]
 
| 0x10147000
 
| 0x10147000
| 2
+
| 1
| 0x1, 0x2, 0x4
+
|-
 +
| style="background: green" | Yes
 +
| [[#GPIOn_DATA|GPIO2_DATA]]
 +
| 0x10147010
 +
| 1
 +
|-
 +
| style="background: green" | Yes
 +
| [[#GPIOn_DIR|GPIO2_DIR]]
 +
| 0x10147011
 +
| 1
 +
|-
 +
| style="background: green" | Yes
 +
| [[#GPIOn_INTCFG|GPIO2_INTCFG]]
 +
| 0x10147012
 +
| 1
 
|-
 
|-
| GPIO_DATA1
+
| style="background: green" | Yes
| [[#0x10147010|0x10147010]]
+
| [[#GPIOn_INTEN|GPIO2_INTEN]]
| 4
+
| 0x10147013
| 0x8, 0x10
+
| 1
 
|-
 
|-
| GPIO_DATA2
+
| style="background: green" | Yes
 +
| [[#GPIOn_DATA2|GPIO2_DATA2]]
 
| 0x10147014
 
| 0x10147014
 
| 2
 
| 2
| 0x20
   
|-
 
|-
| GPIO_DATA3
+
| style="background: green" | Yes
 +
| [[#GPIOn_DATA|GPIO3_DATA]]
 
| 0x10147020
 
| 0x10147020
 
| 2
 
| 2
| 0x40, 0x80, 0x100, 0x200, 0x400, 0x800, 0x1000, 0x2000, 0x4000, 0x8000, 0x10000, 0x20000
   
|-
 
|-
| GPIO_DATA3_INTERRUPT_CLEAR
+
| style="background: green" | Yes
 +
| [[#GPIOn_DIR|GPIO3_DIR]]
 
| 0x10147022
 
| 0x10147022
 
| 2
 
| 2
| 0x40, 0x80, 0x100, 0x200, 0x400, 0x800, 0x1000, 0x2000, 0x4000, 0x8000, 0x10000, 0x20000
   
|-
 
|-
| ??
+
| style="background: green" | Yes
 +
| [[#GPIOn_INTCFG|GPIO3_INTCFG]]
 
| 0x10147024
 
| 0x10147024
 
| 2
 
| 2
| 0x40, 0x80, 0x100, 0x200, 0x400, 0x800, 0x1000, 0x2000, 0x4000, 0x8000, 0x10000, 0x20000
   
|-
 
|-
| ?
+
| style="background: green" | Yes
| [[#0x10147026|0x10147026]]
+
| [[#GPIOn_INTEN|GPIO3_INTEN]]
 +
| 0x10147026
 
| 2
 
| 2
| ?
   
|-
 
|-
| GPIO_DATA4
+
| style="background: green" | Yes
 +
| [[#GPIOn_DATA2|GPIO2_DATA2]]
 
| 0x10147028
 
| 0x10147028
 
| 2
 
| 2
| 0x40000
+
|-
 
|}
 
|}
   Line 131: Line 147:  
= Descriptions =
 
= Descriptions =
   −
== 0x10147010 ==
+
== GPIO ==
 +
=== GPIO pins ===
   −
{| class="wikitable" border="1"
+
[[GPIO services]] bitmasks use this table, in that order:
!  Bit
  −
!  Description
  −
|-
  −
| 24
  −
| Enable/disable? GPIO interrupt 0x64 (bitmask 0x8)
  −
|-
  −
| 25
  −
| Enable/disable? GPIO interrupt 0x66 (bitmask 0x10)
  −
|}
  −
 
  −
== 0x10147026 ==
      
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
!  Bit
 
!  Bit
 +
!  IRQ ID
 
!  Description
 
!  Description
 
|-
 
|-
| 0-8
+
| 0
 
| ?
 
| ?
 +
| GPIO1_0 (?)
 
|-
 
|-
| 9
+
| 1
| Enable/disable interrupt 0x71.
+
| 0x63
 +
| Touch Pen down
 
|-
 
|-
| 10-15
+
| 2
| ?
+
| 0x60
|}
+
| Shell closed
 
+
|-style="border-top: double"
== GPIO_DATA ==
+
| 0
 
+
| 0x64
=== GPIO_DATA0 ===
+
| Headphones inserted
{| class="wikitable" border="1"
  −
!  Bit
  −
!  Description
   
|-
 
|-
| 0-2
+
| 1
| Used for GPIO [[GPIO_Services|bitmask]] 0x7.
+
| 0x66
 +
| GPIO2_1 (?)
 +
|-style="border-top: double"
 +
| DATA2.0
 +
| -
 +
| GPIO2_DATA2_0 (wifi related?)
 +
|-style="border-top: double"
 +
| 0
 +
| 0x68
 +
| C-stick
 
|-
 
|-
 
| 1
 
| 1
| DS EXTKEYIN Pen down (0 = touching, 1 = not touching)
+
| 0x69
 +
| IrDA
 +
|-
 +
| 2
 +
| 0x6A
 +
| Gyro
 
|-
 
|-
 
| 3
 
| 3
| Unused by GPIO-sysmodule and TwlBg.
+
| 0x6B
 +
| GPIO3_3 (?)
 
|-
 
|-
 
| 4
 
| 4
| Only used by [[Bootloader|Boot11]].
+
| 0x6C
 +
| GPIO3_4 (?)
 
|-
 
|-
| 5-15
+
| 5
| Unused by GPIO-sysmodule and TwlBg.
+
| 0x6D
 +
| GPIO3_5 (?)
 +
|-
 +
| 6
 +
| 0x6E
 +
| GPIO3_6 (?)
 +
|-
 +
| 7
 +
| 0x6F
 +
| GPIO3_7 (?)
 +
|-
 +
| 8
 +
| 0x70
 +
| GPIO3_8 (?)
 +
|-
 +
| 9
 +
| 0x71
 +
| MCU
 +
|-
 +
| 10
 +
| 0x72
 +
| NFC
 +
|-
 +
| 11
 +
| 0x73
 +
| GPIO3_11 (?)
 +
|-
 +
|-style="border-top: double"
 +
| DATA2.0
 +
| -
 +
| GPIO3_DATA2_0 (wifi related?)
 
|}
 
|}
   −
=== GPIO_DATA1 ===
+
=== GPIOn_DATA ===
 +
Pin values, one bit per pin.
 +
 
 +
=== GPIOn_DIR ===
 +
Pin directions for GPIO2 and GPIO3, one bit per pin.
 +
 
 
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
Bit
+
Value
 
!  Description
 
!  Description
 
|-
 
|-
| 0-1
+
| 0
| Used for GPIO [[GPIO_Services|bitmask]] 0x18.
+
| Input
 
|-
 
|-
| 2-31
+
| 1
| Unused by GPIO-sysmodule and TwlBg.
+
| Output
 
|}
 
|}
   −
=== GPIO_DATA2 ===
+
=== GPIOn_INTCFG ===
 +
Interrupt configuration for GPIO2 and GPIO3 pins (not the extra ones), one bit per pin.
 +
 
 
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
Bit
+
Value
 
!  Description
 
!  Description
 
|-
 
|-
 
| 0
 
| 0
| Used for GPIO [[GPIO_Services|bitmask]] 0x20.
+
| Falling edge
 
|-
 
|-
| 1-15
+
| 1
| Unused by GPIO-sysmodule and TwlBg.
+
| Rising edge
 
|}
 
|}
   −
=== GPIO_DATA3 ===
+
=== GPIOn_INTEN ===
 +
Interrupt enable bits for GPIO2 and GPIO3 pins (not the extra ones), one bit per pin.
 +
 
 
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
Bit
+
Value
 
!  Description
 
!  Description
 
|-
 
|-
| 0-11
+
| 0
| Used for GPIO [[GPIO_Services|bitmask]] 0x3FFC0.
+
| Interrupt disabled
 
|-
 
|-
| 12-31
+
| 1
| Unused by GPIO-sysmodule and TwlBg.
+
| Interrupt enabled
 
|}
 
|}
   −
=== GPIO_DATA4 ===
+
=== GPIOn_DATA2 ===
 +
Extra pins for GPIO2 and GPIO3 (one bit each). These two pins, in total, are not bound to any IRQ and are not configurable.
 +
 
 +
=== Default values ===
 +
After bootrom initialization, these are the values of the registers:
 +
 
 
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
Bit
+
Address
Description
+
Value
 +
|-
 +
| 0x10147000
 +
| 0x0003
 +
|-
 +
| 0x10147010
 +
| 0x00000002
 +
|-
 +
| 0x10147014
 +
| 0x0000
 +
|-
 +
| 0x10147020
 +
| 0x00000DFB
 
|-
 
|-
| 0
+
| 0x10147024
| Used for GPIO [[GPIO_Services|bitmask]] 0x40000.
+
| 0x00000000
 
|-
 
|-
| 1-15
+
| 0x10147028
| Unused by GPIO-sysmodule and TwlBg.
+
| 0x0000
 
|}
 
|}
   Line 284: Line 362:  
| 15
 
| 15
 
| DS SIO SI pin (rtc irq pin)
 
| DS SIO SI pin (rtc irq pin)
|}
  −
  −
= Default values =
  −
  −
After bootrom initialization, these are the values of the registers:
  −
  −
{| class="wikitable" border="1"
  −
!  Address
  −
!  Value
  −
|-
  −
| 0x10147000
  −
| 0x0003
  −
|-
  −
| 0x10147010
  −
| 0x00000002
  −
|-
  −
| 0x10147014
  −
| 0x0000
  −
|-
  −
| 0x10147020
  −
| 0x00000DFB
  −
|-
  −
| 0x10147024
  −
| 0x00000000
  −
|-
  −
| 0x10147028
  −
| 0x0000
   
|}
 
|}

Navigation menu