On Tue, 2024-06-04 at 09:10 -0500, David Lechner wrote: > On 6/4/24 6:19 AM, Nuno Sá wrote: > > On Fri, 2024-05-31 at 16:19 -0500, David Lechner wrote: > > > This makes use of the new devm_regulator_get_enable_read_voltage() > > > function to reduce boilerplate code. > > > > > > Signed-off-by: David Lechner <dlechner@xxxxxxxxxxxx> > > > --- > > > drivers/iio/adc/ad7266.c | 37 ++++++++++--------------------------- > > > 1 file changed, 10 insertions(+), 27 deletions(-) > > > > > > diff --git a/drivers/iio/adc/ad7266.c b/drivers/iio/adc/ad7266.c > > > index 353a97f9c086..026db1bedc0a 100644 > > > --- a/drivers/iio/adc/ad7266.c > > > +++ b/drivers/iio/adc/ad7266.c > > > @@ -25,7 +25,6 @@ > > > > > > struct ad7266_state { > > > struct spi_device *spi; > > > - struct regulator *reg; > > > unsigned long vref_mv; > > > > > > struct spi_transfer single_xfer[3]; > > > @@ -377,11 +376,6 @@ static const char * const ad7266_gpio_labels[] = { > > > "ad0", "ad1", "ad2", > > > }; > > > > > > -static void ad7266_reg_disable(void *reg) > > > -{ > > > - regulator_disable(reg); > > > -} > > > - > > > static int ad7266_probe(struct spi_device *spi) > > > { > > > struct ad7266_platform_data *pdata = spi->dev.platform_data; > > > @@ -396,28 +390,17 @@ static int ad7266_probe(struct spi_device *spi) > > > > > > st = iio_priv(indio_dev); > > > > > > - st->reg = devm_regulator_get_optional(&spi->dev, "vref"); > > > - if (!IS_ERR(st->reg)) { > > > - ret = regulator_enable(st->reg); > > > - if (ret) > > > - return ret; > > > - > > > - ret = devm_add_action_or_reset(&spi->dev, > > > ad7266_reg_disable, st- > > > > reg); > > > - if (ret) > > > - return ret; > > > - > > > - ret = regulator_get_voltage(st->reg); > > > - if (ret < 0) > > > - return ret; > > > - > > > - st->vref_mv = ret / 1000; > > > - } else { > > > - /* Any other error indicates that the regulator does > > > exist */ > > > - if (PTR_ERR(st->reg) != -ENODEV) > > > - return PTR_ERR(st->reg); > > > - /* Use internal reference */ > > > + /* > > > + * Use external reference from vref if present, otherwise use > > > 2.5V > > > + * internal reference. > > > + */ > > > > Not sure the comment brings any added value. The code is fairly self > > explanatory > > IMO... > > Well, you do this every day. :-) I guess... still not an excuse :) > > For someone who never wrote an IIO driver, it could be helpful. Still dunno but no strong feelings anyways... - Nuno Sá