解决mt8735系统平台的平板充电电流过小问题

     某做医疗产品的客户开发新产品,该客户的新产品用到我们的平板方案,开发平台为mt8735,最近与田哥(ID:woshichuanqi)共同开发调试为客户定制的平板。客户在使用测试我们的平板后,向我们反应:充电电流太小,一边使用一边充电,充的电量都不够使用消耗的,只有关机的时候才能充的进电。woshichuanqi测试了给用户的平板的充电电流,在电压为5V时,电流仅为600MA左右,进入平板系统工程模式查看真正充入电池的电流,不到100MA。这样的问题是比较严重的,得赶紧着手解决!

      首先,参考我们现在成熟的MT6735平台,搭载MT6735 Android系统平台的P6S的充电电流是正常的,因此,看看MT6735平台上面关于充电电流是不是有设置的。比对了两个平台上充电芯片的驱动代码fan5405.c,没有不同,说明问题不在驱动上面,很可能在一些文件有参数设置。经过一番寻找,发现了bootable/bootloader/lk/target/elink8735_tb_l1/include/target/cust_battery.h 件中有关电流参数的配置:

  1. /* Charging Current Setting */
  2. #define USB_CHARGER_CURRENT                 Cust_CC_450MA
  3. #define AC_CHARGER_CURRENT                  Cust_CC_650MA

      从上面的参数设置可以看出,mt8735平台的平板充电电流的只设置为650MA!那么将参数改大,应该充电电流就上去了!然而,我将参数改为Cust_CC_1200MA,实际的充电电流并没有升上去,还得继续查找问题!

     在查看编译日志的时候,看到有个编译的时候忽略掉的错误,错误提示 CONFIG_MTK_FAN5405_SUPPORT not sync with MTK_FAN5405_SUPPORT in ProjectConfig.mk,这个提示的意思是kernel-3.10/arch/arm64/configs/<project>_deconfig 中 CONFIG_MTK_FAN5405_SUPPORT 配置(CONFIG_MTK_FAN5405_SUPPORT=yes)与 device/<project>/<project>_tb_l1/ProjectConfig.mk 配置(MTK_FAN5405_SUPPORT = on)不一致。但是将配置同步了,编译还是上述有错误提示。查看该错误之前打印的信息,发现日志有输出:

  1. python device/mediatek/build/build/tools/check_kernel_config.py -c device/elink/elink8735_tb_l1/ProjectConfig.mk -l bootable/bootloader/lk/project/elink8735_tb_l1.mk -p elink8735_tb_l1

    从日志中可推理,上述错误与elink8735_tb_l1.mk文件也有关系,打开elink8735_tb_l1.mk一看,MTK_FAN5405_SUPPORT = on!

      将bootable/bootloader/preloader/custom/elink8735_tb_l1/elink8735_tb_l1.mk 与 device/elink/elink8735_tb_l1/ProjectConfig.mk文件中的 MTK_FAN5405_SUPPORT = no 改为MTK_FAN5405_SUPPORT = yes ,让电流驱动程序在系统启动或者关机的时候起作用,编译也不再提示上述错误。但经过测试,充电电流还是上不去!

      充电电流还是没有改变,问题没有得到解决,得找出问题,重新认真比对了一下MT6735与mt8735相关文件,发现 bootable/bootloader/lk/platform/mt6735/mt_battery.c 文件存在不同,因此将MT6735中的mt_battery.c同步到mt8735中,“+”代表mt8735上面没有的,新添加(修改)的。

      将bootable/bootloader/preloader/custom/elink8735_tb_l1/elink8735_tb_l1.mk 与 device/elink/elink8735_tb_l1/ProjectConfig.mk文件中的 MTK_FAN5405_SUPPORT = no 改为MTK_FAN5405_SUPPORT = yes ,让电流驱动程序在系统启动或者关机的时候起作用,编译也不再提示上述错误。但经过测试,充电电流还是上不去!

      充电电流还是没有改变,问题没有得到解决,得找出问题,重新认真比对了一下MT6735与mt8735相关文件,发现 bootable/bootloader/lk/platform/mt6735/mt_battery.c 文件存在不同,因此将MT6735中的mt_battery.c同步到mt8735中,“+”代表mt8735上面没有的,新添加(修改)的。
  1. bootable/bootloader/lk/platform/mt6735/mt_battery.c

  2. #include <sys/types.h>
  3. #include <target/cust_battery.h>
  4. +#include "mt_gpio.h"
  5. +#include "cust_gpio_usage.h"
  6. +#define MTK_FAN5405_SUPPORT
  7. +#ifdef MTK_FAN5405_SUPPORT
  8. +#include <platform/fan5405.h>
  9. +#endif

  10. #if defined(MTK_BQ24261_SUPPORT)
  11. #include <platform/bq24261.h>
  12. #endif
  13. void pchr_turn_on_charging(kal_bool bEnable)
  14.          pmic_set_register_value(PMIC_RG_CSDAC_MODE,1);//CSDAC_MODE
  15.         pmic_set_register_value(PMIC_RG_CSDAC_EN,1);

  16. +#ifdef MTK_FAN5405_SUPPORT
  17. +    fan5405_hw_init();
  18. +    fan5405_turn_on_charging(bEnable);
  19. +    fan5405_dump_register();
  20. +#endif

      同时在bootable/bootloader/lk/platform/mt6735/文件夹下添加fan5405.c充电芯片驱动程序,在bootable/bootloader/lk/platform/mt6735/include/platform/添加fan5405.h

      在内核中 kernel-3.10/drivers/misc/mediatek/mach/mt6735/elink8735_tb_l1/power/cust_charging.h 中也修改充电电流参数,“+”代表新添加(修改)的

      在内核中 kernel-3.10/drivers/misc/mediatek/mach/mt6735/elink8735_tb_l1/power/cust_charging.h 中也修改充电电流参数,“+”代表新添加(修改)的
  1. kernel-3.10/drivers/misc/mediatek/mach/mt6735/elink8735_tb_l1/power/cust_charging.h

  2. -#define AC_CHARGER_CURRENT                                     CHARGE_CURRENT_1050_00_MA
  3. +#define AC_CHARGER_CURRENT                                     CHARGE_CURRENT_1350_00_MA   // 增大充电电流参数

  4. -#define NON_STD_AC_CHARGER_CURRENT                     CHARGE_CURRENT_1050_00_MA
  5. +#define NON_STD_AC_CHARGER_CURRENT                     CHARGE_CURRENT_1350_00_MA // 增大充电电流参数

      重新编译系统,下载到mt8735平板上测试,充电电流由600MA左右增大到1350MA左右,至此,解决了mt8735平台充电电流过小问题。

猜你喜欢

转载自blog.csdn.net/m0_37526672/article/details/80348019