diff options
-rw-r--r-- | include/kernel/lowio/i2c.h | 24 | ||||
-rw-r--r-- | nids/360/SceKernelThreadMgr.yml | 6 | ||||
-rw-r--r-- | nids/360/SceLowio.yml | 1 |
3 files changed, 20 insertions, 11 deletions
diff --git a/include/kernel/lowio/i2c.h b/include/kernel/lowio/i2c.h index 6d500f6..b4b92f1 100644 --- a/include/kernel/lowio/i2c.h +++ b/include/kernel/lowio/i2c.h @@ -10,24 +10,26 @@ extern "C" { typedef enum SceI2cErrorCode { SCE_I2C_ERROR_INVALID_BUS = 0x803F0300, SCE_I2C_ERROR_INVALID_SIZE = 0x803F0302, - SCE_I2C_ERROR_INVALID_DEVICE = 0x803F0303 + SCE_I2C_ERROR_INVALID_ADDR = 0x803F0303 } SceI2cErrorCode; typedef struct SceI2cDebugHandlers { unsigned int size; - void (*write_start)(int bus, int device, unsigned char *buffer, int size); - void (*write_error)(int bus, int error, int result); - void (*read_start)(int bus, int device, unsigned char *buffer, int size); - void (*read_error)(int bus, int error, int result); - void (*write_read_start)(int bus, int write_device, unsigned char *write_buffer, int write_size); - void (*write_read_error)(int bus, int error, int result); + void (*write_start)(int bus, int addr, unsigned char *buffer, int size); + void (*write_end)(int bus, int error, int result); + void (*read_start)(int bus, int addr, unsigned char *buffer, int size); + void (*read_end)(int bus, int error, int result); + void (*write_read_start)(int bus, int write_addr, unsigned char *write_buffer, int write_size, + unsigned int read_addr, unsigned char *read_buffer, int read_size); + void (*write_read_end)(int bus, int error, int result); } SceI2cDebugHandlers; -int sceI2cTransferRead(int bus, unsigned int address, unsigned char *buffer, int size); -int sceI2cTransferWrite(int bus, unsigned int device, const unsigned char *buffer, int size); +int sceI2cInit(int bus); +int sceI2cTransferRead(int bus, unsigned int addr, unsigned char *buffer, int size); +int sceI2cTransferWrite(int bus, unsigned int addr, const unsigned char *buffer, int size); int sceI2cTransferWriteRead(int bus, - unsigned int write_device, const unsigned char *write_buffer, int write_size, - unsigned int read_device, unsigned char *read_buffer, int read_size); + unsigned int write_addr, unsigned char *write_buffer, int write_size, + unsigned int read_addr, unsigned char *read_buffer, int read_size); int sceI2cSetDebugHandlers(int bus, SceI2cDebugHandlers *debug_handlers); diff --git a/nids/360/SceKernelThreadMgr.yml b/nids/360/SceKernelThreadMgr.yml index 9afb36d..5dc0498 100644 --- a/nids/360/SceKernelThreadMgr.yml +++ b/nids/360/SceKernelThreadMgr.yml @@ -15,6 +15,12 @@ modules: sceKernelCheckDipsw: 0x1C783FB2 sceKernelClearDipsw: 0x800EDCC1 sceKernelSetDipsw: 0x817053D4 + SceDipswForDriver: + nid: 0xC9E26388 + functions: + sceKernelCheckDipsw: 0xA98FC2FD + sceKernelClearDipsw: 0xF1F3E9FE + sceKernelSetDipsw: 0x82E45FBF SceThreadmgr: nid: 0x859A24B1 functions: diff --git a/nids/360/SceLowio.yml b/nids/360/SceLowio.yml index 9c37613..370ba4b 100644 --- a/nids/360/SceLowio.yml +++ b/nids/360/SceLowio.yml @@ -18,6 +18,7 @@ modules: SceI2cForDriver: nid: 0xE14BEF6E functions: + sceI2cInit: 0x9CF8F3D6 sceI2cSetDebugHandlers: 0xA2C7CE62 sceI2cTransferRead: 0xD1D0A9A4 sceI2cTransferWrite: 0xCA94A759 |