On Wed, 2024-06-12 at 16:03 -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> > --- > v2 changes: > * avoid else in return value check > * use macro instead of comment to document internal reference voltage > --- > drivers/iio/adc/ad7292.c | 36 ++++++------------------------------ > 1 file changed, 6 insertions(+), 30 deletions(-) > > diff --git a/drivers/iio/adc/ad7292.c b/drivers/iio/adc/ad7292.c > index 6aadd14f459d..87ffe66058a1 100644 > --- a/drivers/iio/adc/ad7292.c > +++ b/drivers/iio/adc/ad7292.c > @@ -17,6 +17,8 @@ > > #define ADI_VENDOR_ID 0x0018 > > +#define AD7292_INTERNAL_REF_MV 1250 > + > /* AD7292 registers definition */ > #define AD7292_REG_VENDOR_ID 0x00 > #define AD7292_REG_CONF_BANK 0x05 > @@ -79,7 +81,6 @@ static const struct iio_chan_spec ad7292_channels_diff[] = { > > struct ad7292_state { > struct spi_device *spi; > - struct regulator *reg; > unsigned short vref_mv; > > __be16 d16 __aligned(IIO_DMA_MINALIGN); > @@ -250,13 +251,6 @@ static const struct iio_info ad7292_info = { > .read_raw = ad7292_read_raw, > }; > > -static void ad7292_regulator_disable(void *data) > -{ > - struct ad7292_state *st = data; > - > - regulator_disable(st->reg); > -} > - > static int ad7292_probe(struct spi_device *spi) > { > struct ad7292_state *st; > @@ -277,29 +271,11 @@ static int ad7292_probe(struct spi_device *spi) > return -EINVAL; > } > > - st->reg = devm_regulator_get_optional(&spi->dev, "vref"); > - if (!IS_ERR(st->reg)) { > - ret = regulator_enable(st->reg); > - if (ret) { > - dev_err(&spi->dev, > - "Failed to enable external vref supply\n"); > - return ret; > - } > - > - ret = devm_add_action_or_reset(&spi->dev, > - ad7292_regulator_disable, st); > - if (ret) > - return ret; > - > - ret = regulator_get_voltage(st->reg); > - if (ret < 0) > - return ret; > + ret = devm_regulator_get_enable_read_voltage(&spi->dev, "vref"); > + if (ret < 0 && ret == -ENODEV) ret != -ENODEV? - Nuno Sá