基于高通MSM8909+android 7.1,充电模块PM8909。
正常情况下,充电是走micro_usb接口,数据线接入充电,DP DM通信后确定充电类型是usb还是适配器充电,具体内容android开发分享Android rom开发:高通平台充电-Micro_usb&&USB_VBUS不展开,可自行查阅内核里面的usb驱动phy-msm-usb.c。
android开发分享Android rom开发:高通平台充电-Micro_usb&&USB_VBUS实现外接5V供电到USB_VBUS即可充电,无需dp dm通信。
1.首先usb驱动phy-msm-usb.c中固定设置充电模式为USB_CDP_CHARGER,最大电流1500ma,即可实现快充,无需dp dm通信,也不影响数据线接入后micro_usb与电脑端通信
2.充电驱动qpnp-linear-charger.c,修改点:
- usb接入判断—->一直return 1
- 使能充电模式—->一直使能
- 设置充电电流—->固定设置为CDP模式的最大电流1500ma
diff --git a/kernel/drivers/power/qpnp-linear-charger.c b/kernel/drivers/power/qpnp-linear-charger.c old mode 100755 new mode 100644 index 99f1313..f7953a2 --- a/kernel/drivers/power/qpnp-linear-charger.c +++ b/kernel/drivers/power/qpnp-linear-charger.c @@ -646,7 +646,8 @@ static int qpnp_lbc_is_usb_chg_plugged_in(struct qpnp_lbc_chip *chip) pr_debug("rt_sts 0x%xn", usbin_valid_rt_sts); - return (usbin_valid_rt_sts & USB_IN_VALID_MASK) ? 1 : 0; + //return (usbin_valid_rt_sts & USB_IN_VALID_MASK) ? 1 : 0; + return 1; } static int qpnp_lbc_is_chg_gone(struct qpnp_lbc_chip *chip) @@ -676,10 +677,10 @@ static int qpnp_lbc_charger_enable(struct qpnp_lbc_chip *chip, int reason, pr_debug("reason=%d requested_enable=%d disabled_status=%dn", reason, enable, disabled); - if (enable) - disabled &= ~reason; - else - disabled |= reason; + //if (enable) + disabled &= ~4; + //else + // disabled |= reason; if (!!chip->charger_disabled == !!disabled) goto skip; @@ -693,8 +694,8 @@ static int qpnp_lbc_charger_enable(struct qpnp_lbc_chip *chip, int reason, return rc; } skip: - chip->charger_disabled = disabled; - return rc; + chip->charger_disabled = 0; + return 0; } static int qpnp_lbc_is_batt_present(struct qpnp_lbc_chip *chip) @@ -1381,7 +1382,7 @@ static void qpnp_lbc_set_appropriate_current(struct qpnp_lbc_chip *chip) chip->thermal_mitigation[chip->therm_lvl_sel]); pr_debug("setting charger current %d mAn", chg_current); - qpnp_lbc_ibatmax_set(chip, chg_current); + qpnp_lbc_ibatmax_set(chip, 1500);//固定设置CDP模式的最大电流1500ma } static void qpnp_batt_external_power_changed(struct power_supply *psy)
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/addevelopment/895166.html