Re: [PATCHv2 08/12] power: supply: generic-adc-battery: use simple-battery API

From: Sebastian Reichel
Date: Fri Mar 17 2023 - 17:58:31 EST


Hi,

On Thu, Mar 16, 2023 at 09:38:21AM +0200, Matti Vaittinen wrote:
> On 3/15/23 00:55, Sebastian Reichel wrote:
> > Use standard simple-battery API for constant battery
> > information like min and max voltage. This simplifies
> > the driver a lot and brings automatic support for DT.
> >
> > Reviewed-by: Linus Walleij <linus.walleij@xxxxxxxxxx>
> > Signed-off-by: Sebastian Reichel <sre@xxxxxxxxxx>
> > ---
> > drivers/power/supply/generic-adc-battery.c | 64 ++--------------------
> > include/linux/power/generic-adc-battery.h | 18 ------
> > 2 files changed, 4 insertions(+), 78 deletions(-)
> > delete mode 100644 include/linux/power/generic-adc-battery.h
> >
> > diff --git a/drivers/power/supply/generic-adc-battery.c b/drivers/power/supply/generic-adc-battery.c
> > index 771e5cfc49c3..d4f63d945b2c 100644
> > --- a/drivers/power/supply/generic-adc-battery.c
> > +++ b/drivers/power/supply/generic-adc-battery.c
> > @@ -22,7 +22,6 @@
> > #include <linux/slab.h>
> > #include <linux/iio/consumer.h>
> > #include <linux/iio/types.h>
> > -#include <linux/power/generic-adc-battery.h>
> > #include <linux/devm-helpers.h>
> > #define JITTER_DEFAULT 10 /* hope 10ms is enough */
> > @@ -48,9 +47,7 @@ struct gab {
> > struct power_supply *psy;
> > struct power_supply_desc psy_desc;
> > struct iio_channel *channel[GAB_MAX_CHAN_TYPE];
> > - struct gab_platform_data *pdata;
> > struct delayed_work bat_work;
> > - int level;
> > int status;
> > bool cable_plugged;
> > struct gpio_desc *charge_finished;
> > @@ -70,14 +67,6 @@ static void gab_ext_power_changed(struct power_supply *psy)
> > static const enum power_supply_property gab_props[] = {
> > POWER_SUPPLY_PROP_STATUS,
> > - POWER_SUPPLY_PROP_CHARGE_FULL_DESIGN,
> > - POWER_SUPPLY_PROP_CHARGE_EMPTY_DESIGN,
> > - POWER_SUPPLY_PROP_VOLTAGE_NOW,
> > - POWER_SUPPLY_PROP_CURRENT_NOW,
> > - POWER_SUPPLY_PROP_TECHNOLOGY,
> > - POWER_SUPPLY_PROP_VOLTAGE_MIN_DESIGN,
> > - POWER_SUPPLY_PROP_VOLTAGE_MAX_DESIGN,
> > - POWER_SUPPLY_PROP_MODEL_NAME,
> > };
> > /*
> > @@ -97,17 +86,6 @@ static bool gab_charge_finished(struct gab *adc_bat)
> > return gpiod_get_value(adc_bat->charge_finished);
> > }
> > -static int gab_get_status(struct gab *adc_bat)
> > -{
> > - struct gab_platform_data *pdata = adc_bat->pdata;
> > - struct power_supply_info *bat_info;
> > -
> > - bat_info = &pdata->battery_info;
> > - if (adc_bat->level == bat_info->charge_full_design)
> > - return POWER_SUPPLY_STATUS_FULL;
>
> Not sure if this is intentional but I don't see the POWER_SUPPLY_STATUS_FULL
> being reported after applying your series. If this is intended, maybe it
> could be mentioned in commit log?

Right. I removed it, because 'level' is never written to and thus is
always 0. Apart from that the code needs to be a bit more flexible
anyways (i.e. should not just report full for exactly the same
value) and we currently do not have a way to calculate the current
charge value. Thus removing it makes sense at the moment. Something
better can be added once we have the required infrastructure.

-- Sebastian

Attachment: signature.asc
Description: PGP signature