From d60d0e493f7a30ebd4ebb3e92e0cc43645d04e54 Mon Sep 17 00:00:00 2001 From: chailu1 Date: Mon, 20 Jan 2020 16:06:43 +0800 Subject: [PATCH] charge:real time check weak charge PMIC receive usbin OV events, OV IRQ triggers for very small duration in interim periods sometimes. while this periods check charge type will judge inbox charger adapter as weak charge. now logic is always recognize weak charge even if OV event disappear. So add real time check weak charge type mechanism. Change-Id: I18072c56b505f2508292d6b335f71a646d48b6d7 Reviewed-on: https://gerrit.mot.com/1486223 SME-Granted: SME Approvals Granted SLTApproved: Slta Waiver Tested-by: Jira Key Reviewed-by: Ryan Lattrel Reviewed-by: Haijian Ma Reviewed-by: Huosheng Liao Submit-Approved: Jira Key --- drivers/power/qpnp-smbcharger-mmi/qpnp-smbcharger-mmi.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/power/qpnp-smbcharger-mmi/qpnp-smbcharger-mmi.c b/drivers/power/qpnp-smbcharger-mmi/qpnp-smbcharger-mmi.c index 0079006d2729..6f91cae5bae5 100644 --- a/drivers/power/qpnp-smbcharger-mmi/qpnp-smbcharger-mmi.c +++ b/drivers/power/qpnp-smbcharger-mmi/qpnp-smbcharger-mmi.c @@ -1946,6 +1946,10 @@ void mmi_chrg_rate_check(struct smb_mmi_charger *chg) chg->charger_rate = POWER_SUPPLY_CHARGE_RATE_WEAK; else if (prev_chg_rate == POWER_SUPPLY_CHARGE_RATE_NONE) chg->charger_rate = POWER_SUPPLY_CHARGE_RATE_NORMAL; + else if ((prev_chg_rate == POWER_SUPPLY_CHARGE_RATE_WEAK) && + (chrg_cm_ma > WEAK_CHRG_THRSH) && + (chrg_cs_ma >= WEAK_CHRG_THRSH)) + chg->charger_rate = POWER_SUPPLY_CHARGE_RATE_NORMAL; end_rate_check: if (prev_chg_rate != chg->charger_rate) {