Difference between revisions of "GPIO Services"

From 3dbrew
Jump to navigation Jump to search
(Add permitted interrupts bitmask)
Line 1: Line 1:
 
[[Category:Services]]
 
[[Category:Services]]
 
= GPIO Service Names =
 
= GPIO Service Names =
* "gpio:CDC"
+
{| class="wikitable" border="1"
* "gpio:MCU"
+
|-
* "gpio:HID"
+
!  Service name
* "gpio:NWM"
+
!  Permitted interrupts bitmasks
* "gpio:IR"
+
|-
* "gpio:NFC"
+
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.
 
The commands for these services are identical.

Revision as of 12:25, 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.

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