diff options
author | Harry Yang <harryy@codeaurora.org> | 2017-04-17 16:41:19 -0700 |
---|---|---|
committer | Harry Yang <harryy@codeaurora.org> | 2017-04-17 18:19:59 -0700 |
commit | d8c64ab4211b099e25597316a956c7455af4dd56 (patch) | |
tree | 7293b7563b684a27c91149267b5f41244be2fa48 | |
parent | d5311c5d4300455a7597b7edae08caba84c0a7f8 (diff) |
qcom: smblib: report discharging in case of input OV
The register BATTERY_CHARGER_STATUS continues to show charging state
(like FULLON or TAPER mode) in cases where charging was paused due
to input OV. Look at BATTERY_CHARGER_STATUS_7_REG to determine if
charging was paused.
This fix modifies previous similar change for JEITA hard condition but
continue to cover the case.
Change-Id: Ibc5f4f5e85651708b656f06814008b0c319db02d
Signed-off-by: Harry Yang <harryy@codeaurora.org>
-rw-r--r-- | drivers/power/supply/qcom/smb-lib.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/power/supply/qcom/smb-lib.c b/drivers/power/supply/qcom/smb-lib.c index e4ab41b1f16a..128b778c73ce 100644 --- a/drivers/power/supply/qcom/smb-lib.c +++ b/drivers/power/supply/qcom/smb-lib.c @@ -1537,14 +1537,16 @@ int smblib_get_prop_batt_status(struct smb_charger *chg, if (val->intval != POWER_SUPPLY_STATUS_CHARGING) return 0; - rc = smblib_read(chg, BATTERY_CHARGER_STATUS_2_REG, &stat); + rc = smblib_read(chg, BATTERY_CHARGER_STATUS_7_REG, &stat); if (rc < 0) { smblib_err(chg, "Couldn't read BATTERY_CHARGER_STATUS_2 rc=%d\n", rc); return rc; } - if (stat & (BAT_TEMP_STATUS_TOO_HOT_BIT | BAT_TEMP_STATUS_TOO_COLD_BIT)) + stat &= ENABLE_TRICKLE_BIT | ENABLE_PRE_CHARGING_BIT | + ENABLE_FAST_CHARGING_BIT | ENABLE_FULLON_MODE_BIT; + if (!stat) val->intval = POWER_SUPPLY_STATUS_NOT_CHARGING; return 0; |