Messages in this thread | | | Date | Wed, 15 Mar 2023 14:08:03 +0100 | From | Sebastian Reichel <> | Subject | Re: [PATCHv2 10/12] power: supply: generic-adc-battery: add temperature support |
| |
Hi Linus,
On Wed, Mar 15, 2023 at 09:04:15AM +0100, Linus Walleij wrote: > On Tue, Mar 14, 2023 at 11:55 PM Sebastian Reichel <sre@kernel.org> wrote: > > From: Sebastian Reichel <sebastian.reichel@collabora.com> > > Another typical thing to monitor via an ADC line is > > the battery temperature. > > > > Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com> > > Reviewed-by: Linus Walleij <linus.walleij@linaro.org> > > > static bool gab_charge_finished(struct gab *adc_bat) > > @@ -115,6 +118,8 @@ static int gab_get_property(struct power_supply *psy, > > return read_channel(adc_bat, GAB_CURRENT, &val->intval); > > case POWER_SUPPLY_PROP_POWER_NOW: > > return read_channel(adc_bat, GAB_POWER, &val->intval); > > + case POWER_SUPPLY_PROP_TEMP: > > + return read_channel(adc_bat, GAB_TEMP, &val->intval); > > Hm. I wonder if these should rather all use read_channel_processed()? > > The difference is that you will then support ADCs with internal scaling > which is beneficial. Most of the time it doesn't matter.
read_channel is a local helper, the driver uses the processed variant of iio_read_channel:
static int read_channel(struct gab *adc_bat, enum gab_chan_type channel, int *result) { int ret;
ret = iio_read_channel_processed(adc_bat->channel[channel], result); if (ret < 0) pr_err("read channel error\n"); else *result *= 1000;
return ret; }
-- Sebastian [unhandled content-type:application/pgp-signature] | |