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 > > - Nuno Sá >