On Fri, 14 Jun 2024 10:16:26 -0500 David Lechner <dlechner@xxxxxxxxxxxx> wrote: > On 6/14/24 10:11 AM, Nuno Sá wrote: > > 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? > > yup, I messed this one up Fixed up whilst applying. Applied > > > > > - Nuno Sá > > >