lkml.org 
[lkml]   [2020]   [Jun]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [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, &reg);
> 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, &reg);
> + 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]
\
 
 \ /
  Last update: 2020-06-19 20:04    [W:2.237 / U:0.668 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site