From 56274b98808e71eaa72163a0d0da1818682cd676 Mon Sep 17 00:00:00 2001 From: longch99 Date: Thu, 2 Jun 2022 15:15:29 +0800 Subject: [PATCH] the charging status shows "not charging",but the charging current is normal classify ic state error if ic status is eoc, charge status should be charging Change-Id: I123a6256275b087762c599cad1a499f75f7aa7a4 Signed-off-by: longch99 Reviewed-on: https://gerrit.mot.com/2287101 SME-Granted: SME Approvals Granted SLTApproved: Slta Waiver Tested-by: Jira Key Reviewed-by: Qiong Xie Reviewed-by: Wang Wang Submit-Approved: Jira Key --- drivers/power/rt9471_chg_mmi/rt9471_charger.c | 23 +++++++++++++------ 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/drivers/power/rt9471_chg_mmi/rt9471_charger.c b/drivers/power/rt9471_chg_mmi/rt9471_charger.c index 70f46d93b698..82a1429e89db 100644 --- a/drivers/power/rt9471_chg_mmi/rt9471_charger.c +++ b/drivers/power/rt9471_chg_mmi/rt9471_charger.c @@ -2230,15 +2230,20 @@ static int rt9471_charger_get_property(struct power_supply *psy, __rt9471_get_ic_stat(chip, &ic_stat); if (ic_stat == RT9471_ICSTAT_TRICKLECHG || ic_stat == RT9471_ICSTAT_PRECHG || - ic_stat == RT9471_ICSTAT_FASTCHG) { + ic_stat == RT9471_ICSTAT_FASTCHG || + ic_stat == RT9471_ICSTAT_IEOC || + ic_stat == RT9471_ICSTAT_BGCHG) { val->intval = POWER_SUPPLY_STATUS_CHARGING; - } else if (ic_stat == RT9471_ICSTAT_BGCHG || - ic_stat == RT9471_ICSTAT_IEOC || - ic_stat == RT9471_ICSTAT_CHGDONE || + } else if (ic_stat == RT9471_ICSTAT_CHGFAULT || ic_stat == RT9471_ICSTAT_VBUSRDY) { val->intval = POWER_SUPPLY_STATUS_NOT_CHARGING; - } else { + } else if (ic_stat == RT9471_ICSTAT_SLEEP || + ic_stat == RT9471_ICSTAT_OTG){ val->intval = POWER_SUPPLY_STATUS_DISCHARGING; + } else if (ic_stat == RT9471_ICSTAT_CHGDONE){ + val->intval = POWER_SUPPLY_STATUS_FULL; + } else { + val->intval = POWER_SUPPLY_STATUS_UNKNOWN; } break; case POWER_SUPPLY_PROP_CHARGE_TYPE: @@ -2249,11 +2254,15 @@ static int rt9471_charger_get_property(struct power_supply *psy, val->intval = POWER_SUPPLY_CHARGE_TYPE_TRICKLE; break; case RT9471_ICSTAT_FASTCHG: + case RT9471_ICSTAT_IEOC: + case RT9471_ICSTAT_BGCHG: val->intval = POWER_SUPPLY_CHARGE_TYPE_FAST; break; - case RT9471_ICSTAT_BGCHG: - case RT9471_ICSTAT_IEOC: + case RT9471_ICSTAT_SLEEP: + case RT9471_ICSTAT_VBUSRDY: case RT9471_ICSTAT_CHGDONE: + case RT9471_ICSTAT_CHGFAULT: + case RT9471_ICSTAT_OTG: val->intval = POWER_SUPPLY_CHARGE_TYPE_NONE; break; default: