GPIO Services: Difference between revisions
Jump to navigation
Jump to search
Line 110: | Line 110: | ||
| 0x10147028 | | 0x10147028 | ||
| 0 | | 0 | ||
|} | |||
==GPIO Bits== | |||
{| class="wikitable" border="1" | |||
|- | |||
! Bit | |||
! Bitmask | |||
! Accessible via GPIO service | |||
! Used by | |||
! Description | |||
|- | |||
| 0 | |||
| 0x1 | |||
| gpio:HID | |||
| ? | |||
| ? | |||
|- | |||
| 1 | |||
| 0x2 | |||
| None | |||
| | |||
| | |||
|- | |||
| 2 | |||
| 0x4 | |||
| None | |||
| | |||
| | |||
|- | |||
| 3 | |||
| 0x8 | |||
| gpio:CDC | |||
| ? | |||
| ? | |||
|- | |||
| 4 | |||
| 0x10 | |||
| None | |||
| | |||
| | |||
|- | |||
| 5 | |||
| 0x20 | |||
| gpio:MCU, gpio:NWM | |||
| ? | |||
| ? | |||
|- | |||
| 6 | |||
| 0x40 | |||
| gpio:CDC, gpio:IR | |||
| ? | |||
| ? | |||
|- | |||
| 7 | |||
| 0x80 | |||
| gpio:IR | |||
| ? | |||
| ? | |||
|- | |||
| 8 | |||
| 0x100 | |||
| gpio:HID | |||
| ? | |||
| ? | |||
|- | |||
| 9 | |||
| 0x200 | |||
| gpio:HID, gpio:IR | |||
| ? | |||
| ? | |||
|- | |||
| 10 | |||
| 0x400 | |||
| gpio:IR | |||
| ? | |||
| ? | |||
|- | |||
| 11 | |||
| 0x800 | |||
| gpio:IR | |||
| ? | |||
| ? | |||
|- | |||
| 12 | |||
| 0x1000 | |||
| gpio:NFC | |||
| ? | |||
| ? | |||
|- | |||
| 13 | |||
| 0x2000 | |||
| gpio:NFC | |||
| ? | |||
| ? | |||
|- | |||
| 14 | |||
| 0x4000 | |||
| gpio:HID | |||
| ? | |||
| ? | |||
|- | |||
| 15 | |||
| 0x8000 | |||
| gpio:MCU | |||
| ? | |||
| ? | |||
|- | |||
| 16 | |||
| 0x10000 | |||
| gpio:NFC | |||
| ? | |||
| ? | |||
|- | |||
| 17 | |||
| 0x20000 | |||
| gpio:QTM | |||
| ? | |||
| ? | |||
|- | |||
| 18 | |||
| 0x40000 | |||
| gpio:MCU, gpio:NWM | |||
| ? | |||
| ? | |||
|} | |} |
Revision as of 06:19, 20 January 2017
GPIO Service Names
Service name | Permitted GPIO bitmasks |
---|---|
gpio:CDC | 0x48 |
gpio:MCU | 0x48020 |
gpio:HID | 0x4301 |
gpio:NWM | 0x40020 |
gpio:IR | 0xEC0 |
gpio:NFC | 0x13000 |
gpio:QTM | 0x20000 |
For the mapping between GPIO bitmasks and IRQs see: GPIO:BindInterrupt#Supported_values.
The commands for these services are identical.
The input bitmask for each command is masked with the above permission bitmask, if the result is non-zero an error is occurred.
GPIO Services
Command Header | Description | Uses GPIO Regs |
---|---|---|
0x0001.... | ?(u32 unk1,u32* ret) | 0x10147010, 0x10147020 |
0x00020080 | ?(u32 unk1,u32 unk2) | 0x10147010, 0x10147020 |
0x0003.... | ?(u32 unk1,u32* ret) | 0x10147010, 0x10147024 |
0x00040080 | ?(u32 unk1,u32 unk2) | 0x10147010, 0x10147024 |
0x0005.... | ?(u32 unk1,u32* ret) | 0x10147010, 0x10147024 |
0x00060080 | ?(u32 unk1,u32 unk2) | 0x10147010, 0x10147024 |
0x00070040 | GetIRGPIO(u32 bitmask) Output u32 is written to cmdreply[2]. | 0x10147000, 0x10147010, 0x10147014, 0x10147020, 0x10147028 |
0x00080080 | SetIRGPIO(u32 unk1,u32 unk2) | 0x10147010, 0x10147014, 0x10147020, 0x10147028 |
0x00090082 | BindInterrupt | None |
0x000A0042 | UnbindInterrupt | None |
GPIO Bitmask
The bitmask used by GetIRGPIO(and likely others) determines which bits in the GPIO registers to access. The output value from GetIRGPIO uses the same format as the bitmask: the values of bits in the output field are set to the value of GPIO data when those bits are set in the input bitmask.
Bits in the bitmask | Register | Bits from register |
---|---|---|
0-2 (0x7) | 0x10147000 | 0-2 |
3-4 (0x18) | 0x10147010 | 0-1 |
5 (0x20) | 0x10147014 | 0 |
6-17 (0x3FFC0) | 0x10147020 | 0-11 |
18 (0x40000) | 0x10147028 | 0 |
GPIO Bits
Bit | Bitmask | Accessible via GPIO service | Used by | Description |
---|---|---|---|---|
0 | 0x1 | gpio:HID | ? | ? |
1 | 0x2 | None | ||
2 | 0x4 | None | ||
3 | 0x8 | gpio:CDC | ? | ? |
4 | 0x10 | None | ||
5 | 0x20 | gpio:MCU, gpio:NWM | ? | ? |
6 | 0x40 | gpio:CDC, gpio:IR | ? | ? |
7 | 0x80 | gpio:IR | ? | ? |
8 | 0x100 | gpio:HID | ? | ? |
9 | 0x200 | gpio:HID, gpio:IR | ? | ? |
10 | 0x400 | gpio:IR | ? | ? |
11 | 0x800 | gpio:IR | ? | ? |
12 | 0x1000 | gpio:NFC | ? | ? |
13 | 0x2000 | gpio:NFC | ? | ? |
14 | 0x4000 | gpio:HID | ? | ? |
15 | 0x8000 | gpio:MCU | ? | ? |
16 | 0x10000 | gpio:NFC | ? | ? |
17 | 0x20000 | gpio:QTM | ? | ? |
18 | 0x40000 | gpio:MCU, gpio:NWM | ? | ? |