微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 手机设计讨论 > MTK手机平台交流 > 关机充电过压亮屏显示过压图标

关机充电过压亮屏显示过压图标

时间:10-02 整理:3721RD 点击:

关机充电过压亮屏显示过压图标

在手机关机情况下
插入充电器,然后手机会进入关机充电模式
现在需要手机在继续充电过程中如果达到过压的时候要有亮屏的提醒

解决方法:
1)在Battery_common.c文件中

  1. static void mt_battery_notify_VCharger_check(void)
  2. {
  3. #if defined(BATTERY_NOTIFY_CASE_0001_VCHARGER)
  4. #if defined(CONFIG_mtk_DUAL_INPUT_CHARGER_SUPPORT)
  5. kal_uint32 v_charger_max = DISO_data.hv_voltage;
  6. #endif
  7. #if !defined(CONFIG_MTK_DUAL_INPUT_CHARGER_SUPPORT)
  8. if (BMT_status.charger_vol >V_CHARGER_MAX)//修改为客制化的电压值
  9. {
  10. #else
  11. if (BMT_status.charger_vol > v_charger_max) {
  12. #endif

复制代码

注:以下所有的关于kpoc中的文件都是在alps/vendor/mediatek/proprietary/external/charger
2)charging_control.cpp文件中

  1. static int on_uevent(const char *buf, int len_buf)
  2. {
  3. #ifdef VERBOSE_OUTPUT
  4. KPOC_LOGI("on_uevent, %s\n", buf);
  5. #endif
  6. check_ov();//add this line
  7. if (!strcasestr(buf, UEVENT_BATTERY_CHANGE))
  8. return 1;

复制代码


3)bootlogo.cpp文件中添加如下代码:

  1. void check_ov()
  2. {
  3. if (get_battnotify_status())
  4. {
  5. suspend_request(false);
  6. usleep(2000*1000);
  7. start_backlight();
  8. usleep(3000*1000);
  9. show_charger_ov_logo();
  10. usleep(5000*1000);
  11. stop_backlight();
  12. suspend_request(true);//add by cassy
  13. }
  14. }

复制代码


4)bootlogo.h文件中

  1. void bootlogo_show_charging(int, int);
  2. void check_ov();//add this line

复制代码


5)main.h文件中

  1. int lights_chgexit();
  2. void suspend_request(bool enable);//add this line

复制代码


6)charging_control.cpp文件中添加如下代码

  1. void suspend_request(bool enable)
  2. {
  3. request_suspend(enable);
  4. }

复制代码

7)编译kernel和bootimage,将bootimage download到手机
8)编译修改后的kpoc部分文档
命令:mmm vendor/mediatek/proprietary/external/charger
并将生成的kpoc_charger push到手机中
命令:adb shell push
alps/out/target/product/k35v1_64_op02/system/bin/kpoc_charger /system/bin
adb shell chmod 755 system/bin/kpoc_charger

不错!

学习

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top