summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/kernel/lowio/i2c.h24
-rw-r--r--nids/360/SceKernelThreadMgr.yml6
-rw-r--r--nids/360/SceLowio.yml1
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