优化充电IC 读取ID 3113/1 3113/head 3115/target/1
author1624952103 <pl@DESKTOP-EN9LKR5.localdomain>
Tue, 20 Jan 2026 07:01:56 +0000 (15:01 +0800)
committer1624952103 <pl@DESKTOP-EN9LKR5.localdomain>
Tue, 20 Jan 2026 07:01:56 +0000 (15:01 +0800)
code/sdk/zhihui/drivers/charge/hp4570/hp4570.c

index 717e264..f4068ff 100644 (file)
@@ -243,15 +243,21 @@ bool hp4570_identify(uint8_t chip_ver){
 \r
   // printf("vid_value[0] : 0x%x , vid_value[1] : 0x%x , pid_value[0] : 0x%x,pid_value[1] : 0x%x  chip_ver_value : 0x%x\n",vid_value[0],vid_value[1],pid_value[0],pid_value[1],chip_ver_value);\r
 \r
-  if((vid_value[0]!=HP4570_REG_VID_LSB_DEF)|| (vid_value[1]!=HP4570_REG_VID_MSB_DEF)||(pid_value[0]!=HP4570_REG_PID_LSB_DEF))\r
-    return FAIL;  \r
-\r
-    //  if((vid_value[0]!=HP4570_REG_VID_LSB_DEF)||\r
-    //  (vid_value[1]!=HP4570_REG_VID_MSB_DEF)||\r
-    //  (pid_value[0]!=HP4570_REG_PID_LSB_DEF)|| \r
-    //  (pid_value[1]!=HP4570_REG_PID_MSB_DEF)||\r
-    //  (chip_ver_value != chip_ver))\r
-    //  return FAIL;\r
+\r
+  if((vid_value[0] != HP4570_REG_VID_LSB_DEF) || \r
+     (vid_value[1] != HP4570_REG_VID_MSB_DEF) || \r
+     (pid_value[0] != HP4570_REG_PID_LSB_DEF)) {\r
+      return FAIL;\r
+  }\r
+\r
+  bool is_valid_combination = \r
+      ((pid_value[1] == 0x00) && (chip_ver_value == 0x02)) || \r
+      ((pid_value[1] == 0x03) && (chip_ver_value == 0x00));\r
+\r
+  if (!is_valid_combination) {\r
+      return FAIL;\r
+  }\r
+\r
   return SUCCESS;\r
 }\r
 \r
@@ -927,7 +933,7 @@ void hp4570_set_ideadbat_4x_en(bool en){
 uint8_t hp4570_get_id(void)\r
 {\r
     uint8_t id = 0;\r
-    hp4570_i2c_addr = HP4570_I2C_ADDR;\r
-    hp4570_read_reg(HP4570_REG_CHIP_VER, &id);\r
+    if(hp4570_identify(HP4570N) == SUCCESS)\r
+      id = 0x2;\r
     return id;\r
 }
\ No newline at end of file