I2C Services: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
TimmSkiller (talk | contribs) Rework table to link to command pages |
||
| Line 59: | Line 59: | ||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
|- | |- | ||
! Command Header | ! Command Header !! Description !! Available since system-version | ||
! | |||
|- | |- | ||
| 0x00010100 | | 0x00010100 || [[I2C:SetRegisterBits8|SetRegisterBits8]] || All | ||
| | |||
| SetRegisterBits8 | |||
|- | |- | ||
| 0x000200C0 | | 0x000200C0 || [[I2C:EnableRegisterBits8|EnableRegisterBits8]] || All | ||
| | |||
| EnableRegisterBits8 | |||
|- | |- | ||
| 0x000300C0 | | 0x000300C0 || [[I2C:DisableRegisterBits8|DisableRegisterBits8]] || All | ||
| | |||
| DisableRegisterBits8 | |||
|- | |- | ||
| 0x00040102 | | 0x00040102 || [[I2C:MultiSetRegisterBits16|MultiSetRegisterBits16]] || All | ||
| | |||
| MultiSetRegisterBits16 | |||
|- | |- | ||
| 0x000500C0 | | 0x000500C0 || [[I2C:WriteRegister8|WriteRegister8]] || All | ||
| | |||
| WriteRegister8 | |||
|- | |- | ||
| 0x00060080 | | 0x00060080 || [[I2C:WriteCommand8|WriteCommand8]] || All | ||
| | |||
| WriteCommand8 | |||
|- | |- | ||
| 0x000700C0 | | 0x000700C0 || [[I2C:WriteRegister16|WriteRegister16]] || All | ||
| | |||
| WriteRegister16 | |||
|- | |- | ||
| 0x000800C2 | | 0x000800C2 || [[I2C:MultiWriteRegister16|MultiWriteRegister16]] || All | ||
| | |||
| MultiWriteRegister16 | |||
|- | |- | ||
| 0x00090080 | | 0x00090080 || [[I2C:ReadRegister8|ReadRegister8]] || All | ||
| | |||
| | |||
|- | |- | ||
| 0x000A0080 | | 0x000A0080 || [[I2C:ReadRegister16|ReadRegister16]] || All | ||
| | |||
| | |||
|- | |- | ||
| 0x000B00C2 | | 0x000B00C2 || [[I2C:WriteRegisters8|WriteRegisters8]] || All | ||
| | |||
| WriteRegisters8 | |||
|- | |- | ||
| 0x000C00C2 | | 0x000C00C2 || [[I2C:WriteRegisters16|WriteRegisters16]] || All | ||
| | |||
| WriteRegisters16 | |||
|- | |- | ||
| 0x000D00C0 | | 0x000D00C0 || [[I2C:ReadRegisters8|ReadRegisters8]] || All | ||
| | |||
| ReadRegisters8 | |||
|- | |- | ||
| 0x000E00C2 | | 0x000E00C2 || [[I2C:WriteRegisterBuffer|WriteRegisterBuffer]] || All | ||
| | |||
| WriteRegisterBuffer | |||
|- | |- | ||
| 0x000F00C0 | | 0x000F00C0 || [[I2C:ReadRegisterBuffer|ReadRegisterBuffer]] || All | ||
| | |||
| ReadRegisterBuffer | |||
|- | |- | ||
| 0x001000C0 | | 0x001000C0 || [[I2C:ReadEEPROM|ReadEEPROM]] || All | ||
| | |||
| ReadEEPROM | |||
|- | |- | ||
| 0x001100C2 | | 0x001100C2 || [[I2C:WriteRegisterBuffer|WriteRegisterBuffer]] || All | ||
| | |||
| WriteRegisterBuffer | |||
|- | |- | ||
| 0x001200C2 | | 0x001200C2 || [[I2C:ReadRegisterBuffer|ReadRegisterBuffer]] || All | ||
| | |||
| ReadRegisterBuffer | |||
|- | |- | ||
| 0x00130040 | | 0x00130040 || [[I2C:ReadDeviceRaw8|ReadDeviceRaw8]] || [[8.0.0-18]] | ||
| [[8.0.0-18]] | |||
|- | |- | ||
| 0x00140082 | | 0x00140082 || [[I2C:WriteDeviceRaw|WriteDeviceRaw]] || [[8.0.0-18]] | ||
| [[8.0.0-18]] | |||
|- | |- | ||
| 0x00150080 | | 0x00150080 || [[I2C:ReadDeviceRaw|ReadDeviceRaw]] || [[8.0.0-18]] | ||
| [[8.0.0-18]] | |||
|} | |} | ||
Commands 0x00130040..0x00150080 are only usable with the New3DS i2c module: on Old3DS the actual command-handler function for each of these commands just return an error. Commands 0x00140082 and 0x00150080 are used by [[NFC_Services|NFC]] module. Command 0x00150080 is also used for reading ZL, ZR, and C-stick data by [[IR Services]]. | Commands 0x00130040..0x00150080 are only usable with the New3DS i2c module: on Old3DS the actual command-handler function for each of these commands just return an error. Commands 0x00140082 and 0x00150080 are used by [[NFC_Services|NFC]] module. Command 0x00150080 is also used for reading ZL, ZR, and C-stick data by [[IR Services]]. | ||
Revision as of 13:43, 28 May 2026
I2C Service Names
| Service names | Notes | Accessible deviceIDs | Service used by sysmodule |
|---|---|---|---|
| "i2c::MCU" | 0, 3 | MCU | |
| "i2c::CAM" | 1, 2, 4 | Camera | |
| "i2c::LCD" | 5, 6 | GSP | |
| "i2c::DEB" | 7, 8 | Unknown | |
| "i2c::HID" | 9, 10, 11, 12 | HID | |
| "i2c::IR" | 13, and additionally for New3DS i2c module: 17 | IR | |
| "i2c::EEP" | 14 | Cfg | |
| "i2c::NFC" | Only available via the New3DS i2c sysmodule. | 15 | New3DS NFC |
| "i2c::QTM" | Only available via the New3DS i2c sysmodule. | 16 | New3DS QTM |
Each I2C service can only access certain I2C device(s). When the specified deviceid isn't accessible, error 0xE0A02FEA is returned.
I2C Service
| Command Header | Description | Available since system-version |
|---|---|---|
| 0x00010100 | SetRegisterBits8 | All |
| 0x000200C0 | EnableRegisterBits8 | All |
| 0x000300C0 | DisableRegisterBits8 | All |
| 0x00040102 | MultiSetRegisterBits16 | All |
| 0x000500C0 | WriteRegister8 | All |
| 0x00060080 | WriteCommand8 | All |
| 0x000700C0 | WriteRegister16 | All |
| 0x000800C2 | MultiWriteRegister16 | All |
| 0x00090080 | ReadRegister8 | All |
| 0x000A0080 | ReadRegister16 | All |
| 0x000B00C2 | WriteRegisters8 | All |
| 0x000C00C2 | WriteRegisters16 | All |
| 0x000D00C0 | ReadRegisters8 | All |
| 0x000E00C2 | WriteRegisterBuffer | All |
| 0x000F00C0 | ReadRegisterBuffer | All |
| 0x001000C0 | ReadEEPROM | All |
| 0x001100C2 | WriteRegisterBuffer | All |
| 0x001200C2 | ReadRegisterBuffer | All |
| 0x00130040 | ReadDeviceRaw8 | 8.0.0-18 |
| 0x00140082 | WriteDeviceRaw | 8.0.0-18 |
| 0x00150080 | ReadDeviceRaw | 8.0.0-18 |
Commands 0x00130040..0x00150080 are only usable with the New3DS i2c module: on Old3DS the actual command-handler function for each of these commands just return an error. Commands 0x00140082 and 0x00150080 are used by NFC module. Command 0x00150080 is also used for reading ZL, ZR, and C-stick data by IR Services.