From: SnickerSun Date: Fri, 2 Feb 2024 09:24:19 +0000 (+0800) Subject: 恢复i2c_master_init_check,修改uapi_i2c_master_init兼容ERRCODE_I2C_ALREADY_INIT状态 X-Git-Tag: release_V1.2.70_20241020_135402~1311 X-Git-Url: http://git.snicker.com.cn/Users/apple/Desktop/static/gitweb.css?a=commitdiff_plain;h=f73cc06be6c89eb01f9cdb69968fa4043f544502;p=mirrors%2FFD230.git 恢复i2c_master_init_check,修改uapi_i2c_master_init兼容ERRCODE_I2C_ALREADY_INIT状态 --- diff --git a/code/sdk/application/wearable/alipay/driver_adapt/soc_adapt.c b/code/sdk/application/wearable/alipay/driver_adapt/soc_adapt.c index 15f15c43a..bf08bafe4 100755 --- a/code/sdk/application/wearable/alipay/driver_adapt/soc_adapt.c +++ b/code/sdk/application/wearable/alipay/driver_adapt/soc_adapt.c @@ -21,11 +21,6 @@ uint8_t g_alipay_i2c_mempool[ALIPAY_SEC_I2C_MEMPOOL_SIZE] = {0}; unsigned char *IIC_Master_Init(void) { errcode_t result; - result = i2c_master_init_check(ALIPAY_SEC_I2C_INDEX, 100000, I2C_SPEED_MODE_SS); - if (result == ERRCODE_I2C_ALREADY_INIT) { - return g_alipay_i2c_mempool; - } - result = uapi_i2c_master_init(ALIPAY_SEC_I2C_INDEX, 100000, I2C_SPEED_MODE_SS); /* 100000: 100KHz */ if (result != ERRCODE_SUCC) { MyPrintf("se i2c init fail! ret=0x%x", result); @@ -56,6 +51,7 @@ void IIC_Master_Send(unsigned char byAddr, unsigned char *pData, unsigned short if (ret != ERRCODE_SUCC) { MyPrintf("se i2c data write fail! ret=0x%x", ret); } + // MyPrintf("se i2c data write byAddr(0x%x),pData[0](0x%x),wLen(%d),ret=0x%x",byAddr, *pData,wLen,ret); return; } @@ -81,6 +77,7 @@ void IIC_Master_Receive(unsigned char byAddr, unsigned char *pData, unsigned sho if (ret != ERRCODE_SUCC) { MyPrintf("se i2c data read fail! ret=0x%x", ret); } + // MyPrintf("se i2c data read byAddr(0x%x),pData[0](0x%x),wLen(%d),ret=0x%x",byAddr, *pData,wLen,ret); return; } diff --git a/code/sdk/drivers/drivers/driver/i2c/i2c.c b/code/sdk/drivers/drivers/driver/i2c/i2c.c index 2d9e113b4..16f3cb316 100755 --- a/code/sdk/drivers/drivers/driver/i2c/i2c.c +++ b/code/sdk/drivers/drivers/driver/i2c/i2c.c @@ -905,7 +905,7 @@ static void i2c_writeread_mutex_unlock(i2c_bus_t bus) } #if defined(CONFIG_I2C_SUPPORT_MASTER) && (CONFIG_I2C_SUPPORT_MASTER == 1) -errcode_t i2c_master_init_check(i2c_bus_t bus, uint32_t baudrate, uint8_t hscode) +static errcode_t i2c_master_init_check(i2c_bus_t bus, uint32_t baudrate, uint8_t hscode) { if (unlikely(bus >= I2C_BUS_MAX_NUM)) { return ERRCODE_I2C_INVALID_PARAMETER; @@ -925,8 +925,13 @@ errcode_t i2c_master_init_check(i2c_bus_t bus, uint32_t baudrate, uint8_t hscode errcode_t uapi_i2c_master_init(i2c_bus_t bus, uint32_t baudrate, uint8_t hscode) { errcode_t ret = i2c_master_init_check(bus, baudrate, hscode); - if (ret != ERRCODE_SUCC) { - return ret; + if (ret != ERRCODE_SUCC ) { + if( ret == ERRCODE_I2C_ALREADY_INIT) + { + return ERRCODE_SUCC; + }else{ + return ret; + } } #if defined(CONFIG_I2C_SUPPORT_LPC) diff --git a/code/sdk/drivers/peripheral/mag/mmc5603/mmc_customer.c b/code/sdk/drivers/peripheral/mag/mmc5603/mmc_customer.c index 68c69e971..df71d73b6 100644 --- a/code/sdk/drivers/peripheral/mag/mmc5603/mmc_customer.c +++ b/code/sdk/drivers/peripheral/mag/mmc5603/mmc_customer.c @@ -37,15 +37,6 @@ static void mmc5603_i2c_init(void) /* init i2c */ if ( g_mmc_installed == 1 ) return ; - - result = i2c_master_init_check(MMC5603_I2C_BUS, 400000, I2C_SPEED_MODE_FS); - if (result == ERRCODE_I2C_ALREADY_INIT) { - - MMC_WARNING("mmc5603 already installed skip :i2c_id = %d i2c_speed = %d \r\n", - MMC5603_I2C_BUS, 400000); - g_mmc_installed = 1; - return ; - } result = uapi_i2c_master_init(MMC5603_I2C_BUS, 400000, I2C_SPEED_MODE_FS); /* 400000: 400KHz */ if (result != ERRCODE_SUCC) {