From e2b3b99c8a65fcde3433d88eb3c3271c444a3f90 Mon Sep 17 00:00:00 2001 From: Steinar Bakkemo Date: Mon, 30 Sep 2019 12:55:16 +0200 Subject: [PATCH] max77818-charger: add check for OTG mode when returning status_ex property Ignore POGO connection state when in OTG mode, as the charger driver always reports CHGIN OK (aka. connected) when charger_mode = OTG Supply --- drivers/power/supply/max77818-charger.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/drivers/power/supply/max77818-charger.c b/drivers/power/supply/max77818-charger.c index a3b07bbdec27..67800b6bb240 100644 --- a/drivers/power/supply/max77818-charger.c +++ b/drivers/power/supply/max77818-charger.c @@ -598,8 +598,15 @@ static int max77818_charger_get_property(struct power_supply *psy, val->intval = chg->charger_mode; break; case POWER_SUPPLY_PROP_STATUS_EX: - val->intval = (max77818_charger_chgin_present(chg) | - (max77818_charger_wcin_present(chg) << 1)); + if (chg->charger_mode == POWER_SUPPLY_MODE_OTG_SUPPLY) + /* Charger device reports CHGIN OK in OTG mode anyway, + * so just ignore this and report WCIN status only when + * in OTG mode (charging is off anyway) + */ + val->intval = (max77818_charger_wcin_present(chg) << 1); + else + val->intval = (max77818_charger_chgin_present(chg) | + (max77818_charger_wcin_present(chg) << 1)); break; default: ret = -EINVAL;