I2C Services: Difference between revisions

From 3dbrew
Jump to navigation Jump to search
TimmSkiller (talk | contribs)
No edit summary
TimmSkiller (talk | contribs)
 
Line 22: Line 22:
| "i2c::DEB"
| "i2c::DEB"
| 7, 8
| 7, 8
| Unknown
| dmnt
|-
|-
| "i2c::HID"
| "i2c::HID"

Latest revision as of 16:49, 28 May 2026


I2C Service Names

Service names 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 dmnt
"i2c::HID" 9, 10, 11, 12 HID
"i2c::IR" 13, and additionally for New3DS i2c module: 17 IR
"i2c::EEP" 14 Cfg

New3DS-sysmodule specific services:

"i2c::NFC" 15 New3DS NFC
"i2c::QTM" 16 New3DS QTM

Each I2C service can only access certain I2C device(s).

Commands

Command Header Description Available since system-version
0x00010100 ReplaceRegisterBits8 All
0x000200C0 SetRegisterBits8 All
0x000300C0 ClearRegisterBits8 All
0x00040102 MultiReplaceRegisterBits16 All
0x000500C0 WriteRegister8 All
0x00060080 WriteDeviceRaw8 All
0x000700C0 WriteRegister16 All
0x000800C2 MultiWriteRegister16 All
0x00090080 ReadRegister8 All
0x000A0080 ReadRegister16 All
0x000B00C2 WriteRegisters8 All
0x000C00C2 WriteRegisters16 All
0x000D00C0 ReadRegisters8 All
0x000E00C2 WriteRegisters8_2 All
0x000F00C0 LegacyReadRegisters8 All
0x001000C0 ReadRegisters16 All
0x001100C2 WriteRegistersBuffer8 All
0x001200C2 ReadRegistersBuffer8 All

and, for the New3DS-specific version of the sysmodule (though technically the Old3DS supports these commands as well):

0x00130040 ReadDeviceRaw8 8.0.0-18
0x00140082 WriteDeviceRaw 8.0.0-18
0x00150080 ReadDeviceRaw 8.0.0-18

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.

Common Result Values

Result code Description
0xE0A02FEA The current session is not permitted to access the specified device ID.
0xF9602FEF Communication error. Device may not be connected.