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.
CDC Service
Command Header
|
Description
|
0x00020080
|
void unknown_0x2(u32 unk, u32 unk)
|
0x00040080
|
void unknown_0x4(u32 unk, u32 unk)
|
0x00060080
|
void unknown_0x6(u32 unk, u32 unk)
|
0x00090082
|
BindInterrupt
|
HID Service
Command Header
|
Description
|
0x00020080
|
void unknown_0x2(u32 unk, u32 unk)
|
0x00040080
|
void unknown_0x4(u32 unk, u32 unk)
|
0x00060080
|
void unknown_0x6(u32 unk, u32 unk)
|
0x00070040
|
u32 unknown_0x7(u32 unk). Parameter and return value might be some mask of the same kind?
|
I2C Service
Command Header
|
Description
|
0x0001....
|
?(u32 unk1,u32* ret) //reads from 0x1ec47020
|
0x0002....
|
?(u32 unk1,u32 unk2)
|
0x0003....
|
?(u32 unk1,u32* ret)
|
0x0004....
|
?(u32 unk1,u32 unk2)
|
0x0005....
|
?(u32 unk1,u32* ret)
|
0x0006....
|
?(u32 unk1,u32 unk2)
|
0x0007....
|
GetIRGPIO(u32 unk1,u32* ret)
|
0x0008....
|
SetIRGPIO(u32 unk1,u32 unk2)
|
0x00090082
|
BindInterrupt
|
0x000A0042
|
UnbindInterrupt
|