From: SnickerSun Date: Fri, 22 Nov 2024 09:24:10 +0000 (+0800) Subject: 修改i2creset 代码增加reset参数指定 X-Git-Tag: fd230_release_V1.3.102~44^2~1 X-Git-Url: http://git.snicker.com.cn/css/static/gitweb.css?a=commitdiff_plain;h=ea9f172ffd463405431c96fafd565178fc192402;p=mirrors%2FFD230.git 修改i2creset 代码增加reset参数指定 --- diff --git a/code/sdk/drivers/peripheral/utils/custom_utils.c b/code/sdk/drivers/peripheral/utils/custom_utils.c index 1804b3a3a..49d8c1574 100644 --- a/code/sdk/drivers/peripheral/utils/custom_utils.c +++ b/code/sdk/drivers/peripheral/utils/custom_utils.c @@ -2357,7 +2357,7 @@ static uint8_t i2c_installed = 0; static uint8_t i2c_mutex_installed = 0; static osal_mutex i2c_mutex; -void custom_i2c_reset(void) +void custom_i2c_reset(uint8_t i2cbus, uint16_t i2c_clock) { errcode_t result; if(i2c_mutex_installed == 0) @@ -2375,7 +2375,7 @@ void custom_i2c_reset(void) if(i2c_installed == 1) { - result = uapi_i2c_deinit(I2C_BUS_2); + result = uapi_i2c_deinit(i2cbus); if (result != ERRCODE_SUCC) { PRINT(" i2c deinit fail! ret=0x%x\n", result); @@ -2388,7 +2388,7 @@ void custom_i2c_reset(void) if(i2c_installed == 0) { - result = uapi_i2c_master_init(I2C_BUS_2, 400000, I2C_SPEED_MODE_FS); /* 400000: 400KHz */ + result = uapi_i2c_master_init(i2cbus, i2c_clock, I2C_SPEED_MODE_FS); /* 400000: 400KHz */ if (result != ERRCODE_SUCC) { PRINT(" i2c init fail! ret=0x%x\n", result); return ; @@ -2399,6 +2399,7 @@ void custom_i2c_reset(void) LOS_Mdelay(5); osal_mutex_unlock(&i2c_mutex); + PRINT(" custom_iic_reset done! i2cbus %d clock %d\n",i2cbus,i2c_clock); } errcode_t custom_iic_init(void) diff --git a/code/sdk/drivers/peripheral/utils/custom_utils.h b/code/sdk/drivers/peripheral/utils/custom_utils.h index 86769229a..c0b4e3dd5 100644 --- a/code/sdk/drivers/peripheral/utils/custom_utils.h +++ b/code/sdk/drivers/peripheral/utils/custom_utils.h @@ -303,7 +303,7 @@ errcode_t do_custom_fileoperate_service_check_msg(int cmd, void *params, int par int uapi_delete_files(const char *file_path); void uapi_restore_factory_setting(void); -void custom_i2c_reset(void); +void custom_i2c_reset(uint8_t i2cbus, uint16_t i2c_clock); errcode_t custom_i2c_write_reg(uint16_t slaveAddr, uint16_t reg, int regLength, uint8_t *writeData, int writeDataSize, int busIndex); errcode_t custom_i2c_read_regs(uint16_t slaveAddr, uint16_t reg, int regLength, uint8_t *readData, int readDataSize, int busIndex); errcode_t custom_i2c_transfer(uint16_t slaveAddr, uint16_t reg, int regLength, uint8_t *writeData, int writeDataSize, uint8_t *readData, int readDataSize, int busIndex); diff --git a/code/sdk/drivers/peripheral/utils/custom_utils_at_cmd.c b/code/sdk/drivers/peripheral/utils/custom_utils_at_cmd.c index c52ec6f6e..863f79814 100644 --- a/code/sdk/drivers/peripheral/utils/custom_utils_at_cmd.c +++ b/code/sdk/drivers/peripheral/utils/custom_utils_at_cmd.c @@ -497,8 +497,26 @@ static uint32_t custom_iic_reset(uint8_t *para, uint32_t paraLen, char *strCommo UNUSED(strCommonCmd); - custom_i2c_reset(); - + uint8_t argv[CUSTOM_UTILS_MAX_ARGC][CUSTOM_UTILS_MAX_ARGV_LEN] = { 0 }; + uint32_t argc = 0; + + int ret = ConvertCmdToParam(para, paraLen, argv, &argc); + if (ret != CUSTOM_UTILS_SUCCESS) { + wstp_print("CUSTOM_UTILSTEST ATCMD Convert Command Failed\n"); + return ERRCODE_FAIL; + } + + if (argc != 2) { + wstp_print("CUSTOM_UTILSTEST ATCMD Set Parameter Failed argc %d\n",argc); + return ERRCODE_FAIL; + } + + int32_t i2cbus = atoi((char*)argv[0]); + int32_t i2cclock = atoi((char*)argv[1]); + + wstp_print("do i2c reset i2cbus %d clock %d\n",i2cbus,i2cclock); + custom_i2c_reset(i2cbus,i2cclock); + return ERRCODE_SUCC; }