I2C Services: Difference between revisions
No edit summary |
TimmSkiller (talk | contribs) |
||
| (46 intermediate revisions by 13 users not shown) | |||
| Line 1: | Line 1: | ||
[[Category:Services]] | [[Category:Services]] | ||
= I2C Service Names = | __FORCETOC__ | ||
== I2C Service Names == | |||
{| class="wikitable" border="1" | |||
|- | |||
! Service names | |||
! Accessible [[I2C_Registers#I2C_Devices|deviceIDs]] | |||
! Service used by sysmodule | |||
|- | |||
| "i2c::MCU" | |||
| 0, 3 | |||
| [[MCU_Services|MCU]] | |||
|- | |||
| "i2c::CAM" | |||
| 1, 2, 4 | |||
| [[Camera_Services|Camera]] | |||
|- | |||
| "i2c::LCD" | |||
| 5, 6 | |||
| [[GSP_Services|GSP]] | |||
|- | |||
| "i2c::DEB" | |||
| 7, 8 | |||
| dmnt | |||
|- | |||
| "i2c::HID" | |||
| 9, 10, 11, 12 | |||
| [[HID_Services|HID]] | |||
|- | |||
| "i2c::IR" | |||
| 13, and additionally for New3DS i2c module: 17 | |||
| [[IR_Services|IR]] | |||
|- | |||
| "i2c::EEP" | |||
| 14 | |||
| [[Config_Services|Cfg]] | |||
|- | |||
| colspan="3" | | |||
New3DS-sysmodule specific services: | |||
|- | |||
| "i2c::NFC" | |||
| 15 | |||
| New3DS [[NFC_Services|NFC]] | |||
|- | |||
| "i2c::QTM" | |||
| 16 | |||
| New3DS [[QTM_Services|QTM]] | |||
|} | |||
Each I2C service can only access certain I2C [[I2C_Registers|device(s)]]. | |||
= | == Commands == | ||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
|- | |- | ||
! Command Header | ! Command Header !! Description !! Available since system-version | ||
! | |- | ||
| 0x00010100 || [[I2C:ReplaceRegisterBits8|ReplaceRegisterBits8]] || All | |||
|- | |||
| 0x000200C0 || [[I2C:SetRegisterBits8|SetRegisterBits8]] || All | |||
|- | |- | ||
| | | 0x000300C0 || [[I2C:ClearRegisterBits8|ClearRegisterBits8]] || All | ||
| | |||
|- | |- | ||
| | | 0x00040102 || [[I2C:MultiReplaceRegisterBits16|MultiReplaceRegisterBits16]] || All | ||
| | |||
|- | |- | ||
| | | 0x000500C0 || [[I2C:WriteRegister8|WriteRegister8]] || All | ||
| | |||
|- | |- | ||
| | | 0x00060080 || [[I2C:WriteDeviceRaw8|WriteDeviceRaw8]] || All | ||
| | |||
|- | |- | ||
| | | 0x000700C0 || [[I2C:WriteRegister16|WriteRegister16]] || All | ||
| | |||
|- | |- | ||
| | | 0x000800C2 || [[I2C:MultiWriteRegister16|MultiWriteRegister16]] || All | ||
| | |||
|- | |- | ||
| | | 0x00090080 || [[I2C:ReadRegister8|ReadRegister8]] || All | ||
| | |||
|- | |- | ||
| | | 0x000A0080 || [[I2C:ReadRegister16|ReadRegister16]] || All | ||
| | |||
|- | |- | ||
| | | 0x000B00C2 || [[I2C:WriteRegisters8|WriteRegisters8]] || All | ||
| | |||
|- | |- | ||
| | | 0x000C00C2 || [[I2C:WriteRegisters16|WriteRegisters16]] || All | ||
| | |||
|- | |- | ||
| | | 0x000D00C0 || [[I2C:ReadRegisters8|ReadRegisters8]] || All | ||
| | |||
|- | |- | ||
| | | 0x000E00C2 || [[I2C:WriteRegisters8_2|WriteRegisters8_2]] || All | ||
| | |||
|- | |- | ||
| | | 0x000F00C0 || [[I2C:LegacyReadRegisters8|LegacyReadRegisters8]] || All | ||
| | |||
|- | |- | ||
| | | 0x001000C0 || [[I2C:ReadRegisters16|ReadRegisters16]] || All | ||
| | |||
|- | |- | ||
| | | 0x001100C2 || [[I2C:WriteRegistersBuffer8|WriteRegistersBuffer8]] || All | ||
| | |- | ||
| 0x001200C2 || [[I2C:ReadRegistersBuffer8|ReadRegistersBuffer8]] || All | |||
|- | |||
| colspan="3" | | |||
and, for the New3DS-specific version of the sysmodule (though technically the Old3DS supports these commands as well): | |||
|- | |||
| 0x00130040 || [[I2C:ReadDeviceRaw8|ReadDeviceRaw8]] || [[8.0.0-18]] | |||
|- | |||
| 0x00140082 || [[I2C:WriteDeviceRaw|WriteDeviceRaw]] || [[8.0.0-18]] | |||
|- | |||
| 0x00150080 || [[I2C:ReadDeviceRaw|ReadDeviceRaw]] || [[8.0.0-18]] | |||
|} | |||
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]]. | |||
== Common Result Values == | |||
{| class="wikitable" border="1" | |||
|- | |- | ||
! Result code !! Description | |||
|- | |- | ||
| | | 0xE0A02FEA || The current session is not permitted to access the specified device ID. | ||
|- | |- | ||
| | | 0xF9602FEF || Communication error. Device may not be connected. | ||
|} | |} | ||