Messages in this thread | | | Date | Fri, 19 Jun 2020 20:03:48 +0200 | From | Sebastian Reichel <> | Subject | Re: [PATCH] power: supply: max8998_charger: Correct ONLINE and add STATUS props |
| |
Hi,
On Sat, May 16, 2020 at 03:35:44PM -0700, Jonathan Bakker wrote: > The ONLINE prop should be when the charger is present (ie able to > charge), however, it was for when it was actually charging or not. > Instead, add the STATUS prop to show whether charging is actually > going on or not. > > The magic numbers have been ported from a downstream kernel for the > SGH-T959V. > > Signed-off-by: Jonathan Bakker <xc-racer2@live.ca> > ---
Thanks, queued.
-- Sebastian
> drivers/power/supply/max8998_charger.c | 25 ++++++++++++++++++++++--- > 1 file changed, 22 insertions(+), 3 deletions(-) > > diff --git a/drivers/power/supply/max8998_charger.c b/drivers/power/supply/max8998_charger.c > index 9a926c7c0f22..c26023b19f26 100644 > --- a/drivers/power/supply/max8998_charger.c > +++ b/drivers/power/supply/max8998_charger.c > @@ -23,6 +23,7 @@ struct max8998_battery_data { > static enum power_supply_property max8998_battery_props[] = { > POWER_SUPPLY_PROP_PRESENT, /* the presence of battery */ > POWER_SUPPLY_PROP_ONLINE, /* charger is active or not */ > + POWER_SUPPLY_PROP_STATUS, /* charger is charging/discharging/full */ > }; > > /* Note that the charger control is done by a current regulator "CHARGER" */ > @@ -49,10 +50,28 @@ static int max8998_battery_get_property(struct power_supply *psy, > ret = max8998_read_reg(i2c, MAX8998_REG_STATUS2, ®); > if (ret) > return ret; > - if (reg & (1 << 3)) > - val->intval = 0; > - else > + > + if (reg & (1 << 5)) > val->intval = 1; > + else > + val->intval = 0; > + > + break; > + case POWER_SUPPLY_PROP_STATUS: > + ret = max8998_read_reg(i2c, MAX8998_REG_STATUS2, ®); > + if (ret) > + return ret; > + > + if (!(reg & (1 << 5))) { > + val->intval = POWER_SUPPLY_STATUS_DISCHARGING; > + } else { > + if (reg & (1 << 6)) > + val->intval = POWER_SUPPLY_STATUS_FULL; > + else if (reg & (1 << 3)) > + val->intval = POWER_SUPPLY_STATUS_CHARGING; > + else > + val->intval = POWER_SUPPLY_STATUS_NOT_CHARGING; > + } > break; > default: > return -EINVAL; > -- > 2.20.1 > [unhandled content-type:application/pgp-signature] | |