I2C:ReadRegisters8: Difference between revisions
Jump to navigation
Jump to search
TimmSkiller (talk | contribs) Created page with "=Request= {{IPC/Request}} {{IPC/RequestHeader|0x000D|3|0}} {{IPC/RequestEntry|u8, device ID}} {{IPC/RequestEntry|u8, starting register}} {{IPC/RequestEntry|u32, size}} {{IPC/RequestEnd}} =Request Static Buffers= {{IPC/RequestStaticBuffers}} {{#vardefine:ipc_offset|0}} {{IPC/TranslateStaticBuffer|Output buffer pointer|0}} {{IPC/RequestEnd}} =Response= {{IPC/Request}} {{#vardefine:ipc_offset|0}} {{IPC/RequestHeader|0x000D|1|2}} {{IPC/RequestEntry|Result code}} {{IPC/..." |
TimmSkiller (talk | contribs) No edit summary |
||
| (One intermediate revision by the same user not shown) | |||
| Line 14: | Line 14: | ||
{{IPC/TranslateStaticBuffer|Output buffer pointer|0}} | {{IPC/TranslateStaticBuffer|Output buffer pointer|0}} | ||
{{IPC/RequestEnd}} | {{IPC/RequestEnd}} | ||
=Response= | =Response= | ||
| Line 27: | Line 26: | ||
=Description= | =Description= | ||
Reads a range of 8-bit I2C registers of the specified device sequentially to the given buffer. | Reads a range of 8-bit I2C registers of the specified device sequentially to the given buffer. | ||
The maximum output buffer size is 0x200 for the New3DS i2c-sysmodule, and 0x20 for the Old3DS version. | |||
For example, assuming: | For example, assuming: | ||
Latest revision as of 16:41, 28 May 2026
Request
| Index Word | Description | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| 0 |
| ||||||||
| 1 | u8, device ID | ||||||||
| 2 | u8, starting register | ||||||||
| 3 | u32, size |
Request Static Buffers
The handler for this IPC command expects the following 0x100-bytes after the beginning of the above command buffer:
| Index Word | Description |
|---|---|
| 0 | Descriptor for static buffer (id 0) |
| 1 | Output buffer pointer |
Response
| Index Word | Description | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| 0 |
| ||||||||
| 1 | Result code | ||||||||
| 2 | Descriptor for static buffer (id 0) | ||||||||
| 3 | Output buffer pointer |
Description
Reads a range of 8-bit I2C registers of the specified device sequentially to the given buffer.
The maximum output buffer size is 0x200 for the New3DS i2c-sysmodule, and 0x20 for the Old3DS version.
For example, assuming:
reg[5] = 0xAA, reg[6] = 0xBB, reg[7] = 0xCC, reg[8] = 0xDD
Then reading 4 bytes with starting register 5 would result in:
outbuf[0] = 0xAA
outbuf[1] = 0xBB
outbuf[2] = 0xCC
outbuf[3] = 0xDD