恢复i2c_master_init_check,修改uapi_i2c_master_init兼容ERRCODE_I2C_ALREADY_INIT状态
authorSnickerSun <snickersun@163.com>
Fri, 2 Feb 2024 09:24:19 +0000 (17:24 +0800)
committerSnickerSun <snickersun@163.com>
Fri, 2 Feb 2024 09:24:19 +0000 (17:24 +0800)
code/sdk/application/wearable/alipay/driver_adapt/soc_adapt.c
code/sdk/drivers/drivers/driver/i2c/i2c.c
code/sdk/drivers/peripheral/mag/mmc5603/mmc_customer.c

index 15f15c4..bf08baf 100755 (executable)
@@ -21,11 +21,6 @@ uint8_t g_alipay_i2c_mempool[ALIPAY_SEC_I2C_MEMPOOL_SIZE] = {0};
 unsigned char *IIC_Master_Init(void)\r
 {\r
     errcode_t result;\r
-    result = i2c_master_init_check(ALIPAY_SEC_I2C_INDEX, 100000, I2C_SPEED_MODE_SS);\r
-    if (result == ERRCODE_I2C_ALREADY_INIT) {\r
-        return g_alipay_i2c_mempool;\r
-    }\r
-\r
     result = uapi_i2c_master_init(ALIPAY_SEC_I2C_INDEX, 100000, I2C_SPEED_MODE_SS); /* 100000: 100KHz */\r
     if (result != ERRCODE_SUCC) {\r
         MyPrintf("se i2c init fail! ret=0x%x", result);\r
@@ -56,6 +51,7 @@ void IIC_Master_Send(unsigned char byAddr, unsigned char *pData, unsigned short
     if (ret != ERRCODE_SUCC) {\r
         MyPrintf("se i2c data write fail! ret=0x%x", ret);\r
     }\r
+    // MyPrintf("se i2c data write byAddr(0x%x),pData[0](0x%x),wLen(%d),ret=0x%x",byAddr, *pData,wLen,ret);\r
     return;\r
 }\r
 \r
@@ -81,6 +77,7 @@ void IIC_Master_Receive(unsigned char byAddr, unsigned char *pData, unsigned sho
     if (ret != ERRCODE_SUCC) {\r
         MyPrintf("se i2c data read fail! ret=0x%x", ret);\r
     }\r
+    // MyPrintf("se i2c data read byAddr(0x%x),pData[0](0x%x),wLen(%d),ret=0x%x",byAddr, *pData,wLen,ret);\r
 \r
     return;\r
 }\r
index 2d9e113..16f3cb3 100755 (executable)
@@ -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)
index 68c69e9..df71d73 100644 (file)
@@ -37,15 +37,6 @@ static void mmc5603_i2c_init(void)
     /* init i2c */\r
     if ( g_mmc_installed == 1 )\r
         return ;\r
-  \r
-    result = i2c_master_init_check(MMC5603_I2C_BUS, 400000, I2C_SPEED_MODE_FS);\r
-    if (result == ERRCODE_I2C_ALREADY_INIT) {\r
-       \r
-        MMC_WARNING("mmc5603 already installed skip :i2c_id = %d  i2c_speed = %d \r\n",\r
-                MMC5603_I2C_BUS, 400000);\r
-        g_mmc_installed = 1;\r
-        return ;\r
-    }\r
     \r
     result = uapi_i2c_master_init(MMC5603_I2C_BUS, 400000, I2C_SPEED_MODE_FS); /* 400000: 400KHz */\r
     if (result != ERRCODE_SUCC) {\r