From 26201ea1c3a9b69828b1743c9d968079172b4a8e Mon Sep 17 00:00:00 2001 From: Sergi Granell Date: Thu, 15 Jun 2017 13:39:18 +0200 Subject: Add UART, syscon, I2C nids. Add I2C header. --- include/kernel/lowio/i2c.h | 39 +++++++++++++++++++++++++++++++++++++++ nids/360/SceLowio.yml | 7 +++++++ nids/360/SceSyscon.yml | 7 +++++++ nids/360/SceSysmem.yml | 7 +++++++ 4 files changed, 60 insertions(+) create mode 100644 include/kernel/lowio/i2c.h diff --git a/include/kernel/lowio/i2c.h b/include/kernel/lowio/i2c.h new file mode 100644 index 0000000..6d500f6 --- /dev/null +++ b/include/kernel/lowio/i2c.h @@ -0,0 +1,39 @@ +#ifndef _PSP2_LOWIO_I2C_H_ +#define _PSP2_LOWIO_I2C_H_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +typedef enum SceI2cErrorCode { + SCE_I2C_ERROR_INVALID_BUS = 0x803F0300, + SCE_I2C_ERROR_INVALID_SIZE = 0x803F0302, + SCE_I2C_ERROR_INVALID_DEVICE = 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); +} 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 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); + +int sceI2cSetDebugHandlers(int bus, SceI2cDebugHandlers *debug_handlers); + +#ifdef __cplusplus +} +#endif + +#endif /* _PSP2_LOWIO_I2C_H_ */ + diff --git a/nids/360/SceLowio.yml b/nids/360/SceLowio.yml index 27e4321..9c37613 100644 --- a/nids/360/SceLowio.yml +++ b/nids/360/SceLowio.yml @@ -15,3 +15,10 @@ modules: sceGpioQueryIntr: 0x010DC295 sceGpioSetIntrMode: 0xBBEA1DDC sceGpioSetPortMode: 0x372022A4 + SceI2cForDriver: + nid: 0xE14BEF6E + functions: + sceI2cSetDebugHandlers: 0xA2C7CE62 + sceI2cTransferRead: 0xD1D0A9A4 + sceI2cTransferWrite: 0xCA94A759 + sceI2cTransferWriteRead: 0x0A40B7BF diff --git a/nids/360/SceSyscon.yml b/nids/360/SceSyscon.yml index 698b346..cd8e991 100644 --- a/nids/360/SceSyscon.yml +++ b/nids/360/SceSyscon.yml @@ -7,6 +7,8 @@ modules: functions: sceSysconBeginConfigstorageTransaction: 0xA4968B8C sceSysconClearTemperatureLog: 0x3843D657 + sceSysconCmdExec: 0x9ADDCA4A + sceSysconCmdExecAsync: 0xC2224E82 sceSysconCmdSync: 0x6E517D22 sceSysconCommitConfigstorageTransaction: 0x7B9B3617 sceSysconCtrlLED: 0x04EC7579 @@ -19,6 +21,7 @@ modules: sceSysconGetManualChargeMode: 0x4FEC564C sceSysconGetManufacturesStatus: 0x3E09A1F4 sceSysconGetTemperatureLog: 0x3B354824 + sceSysconGetTimeStamp: 0x4D588A0A sceSysconGetUsbDetStatus: 0xEF810687 sceSysconHasWWAN: 0xCBD6D8BC sceSysconIduModeClear: 0x34574496 @@ -31,6 +34,10 @@ modules: sceSysconLogReadData: 0x487D97F3 sceSysconLogStart: 0x4E55CF5E sceSysconLogStartWaiting: 0x9C0B1E61 + sceSysconReadCommand: 0x299B1CE7 + sceSysconResetDevice: 0x8A95D35C + sceSysconSendCommand: 0xE26488B9 + sceSysconSetDebugHandlers: 0xF245CD6F sceSysconShowModeClear: 0x8D7724C0 sceSysconShowModeSet: 0x6D65B70F sceSysconVerifyConfigstorageScript: 0xCC6F90A8 diff --git a/nids/360/SceSysmem.yml b/nids/360/SceSysmem.yml index d67fe2d..0628fd6 100644 --- a/nids/360/SceSysmem.yml +++ b/nids/360/SceSysmem.yml @@ -194,3 +194,10 @@ modules: sceSysrootIsUpdateMode: 0xB0E1FC67 sceSysrootIsUsbEnumWakeup: 0x79C9AE10 sceSysrootUseInternalStorage: 0x50FE3B4D + SceUartForKernel: + nid: 0xC03DBE40 + functions: + sceUartInit: 0xA9C74212 + sceUartRead: 0x9BBF1255 + sceUartReadAvailable: 0x38DB7629 + sceUartWrite: 0x41973874 -- cgit v1.2.3