Difference between revisions of "GPIO Services"

From 3dbrew
Jump to navigation Jump to search
Line 67: Line 67:
 
| 0x10147000, 0x10147010, 0x10147014, 0x10147020, 0x10147028
 
| 0x10147000, 0x10147010, 0x10147014, 0x10147020, 0x10147028
 
|-
 
|-
| 0x0008....
+
| 0x00080080
 
| SetIRGPIO(u32 unk1,u32 unk2)
 
| SetIRGPIO(u32 unk1,u32 unk2)
 
| 0x10147010, 0x10147014, 0x10147020, 0x10147028
 
| 0x10147010, 0x10147014, 0x10147020, 0x10147028

Revision as of 13:01, 19 July 2016

GPIO Service Names

Service name Permitted interrupts 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 interrupts bitmasks and IRQs see: GPIO:BindInterrupt#Supported_values.

The commands for these services are identical.

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 unk1,u32* ret) 0x10147000, 0x10147010, 0x10147014, 0x10147020, 0x10147028
0x00080080 SetIRGPIO(u32 unk1,u32 unk2) 0x10147010, 0x10147014, 0x10147020, 0x10147028
0x00090082 BindInterrupt None
0x000A0042 UnbindInterrupt None