iio: adc: ti-adc108s102: use devm_regulator_get_enable_read_voltage()
authorDavid Lechner <dlechner@baylibre.com>
Fri, 21 Jun 2024 22:11:54 +0000 (17:11 -0500)
committerJonathan Cameron <Jonathan.Cameron@huawei.com>
Tue, 25 Jun 2024 20:04:51 +0000 (21:04 +0100)
Use devm_regulator_get_enable_read_voltage() to simplify the code.

Signed-off-by: David Lechner <dlechner@baylibre.com>
Link: https://patch.msgid.link/20240621-iio-regulator-refactor-round-2-v1-7-49e50cd0b99a@baylibre.com
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
drivers/iio/adc/ti-adc108s102.c

index 69fcbbc7e418a8022da249595932e332d85a2b14..9758ac8013100dee7c501e324c27a2125420bb2a 100644 (file)
@@ -58,7 +58,6 @@
 
 struct adc108s102_state {
        struct spi_device               *spi;
-       struct regulator                *reg;
        u32                             va_millivolt;
        /* SPI transfer used by triggered buffer handler*/
        struct spi_transfer             ring_xfer;
@@ -216,11 +215,6 @@ static const struct iio_info adc108s102_info = {
        .update_scan_mode       = &adc108s102_update_scan_mode,
 };
 
-static void adc108s102_reg_disable(void *reg)
-{
-       regulator_disable(reg);
-}
-
 static int adc108s102_probe(struct spi_device *spi)
 {
        struct adc108s102_state *st;
@@ -236,25 +230,9 @@ static int adc108s102_probe(struct spi_device *spi)
        if (ACPI_COMPANION(&spi->dev)) {
                st->va_millivolt = ADC108S102_VA_MV_ACPI_DEFAULT;
        } else {
-               st->reg = devm_regulator_get(&spi->dev, "vref");
-               if (IS_ERR(st->reg))
-                       return PTR_ERR(st->reg);
-
-               ret = regulator_enable(st->reg);
-               if (ret < 0) {
-                       dev_err(&spi->dev, "Cannot enable vref regulator\n");
-                       return ret;
-               }
-               ret = devm_add_action_or_reset(&spi->dev, adc108s102_reg_disable,
-                                              st->reg);
-               if (ret)
-                       return ret;
-
-               ret = regulator_get_voltage(st->reg);
-               if (ret < 0) {
-                       dev_err(&spi->dev, "vref get voltage failed\n");
-                       return ret;
-               }
+               ret = devm_regulator_get_enable_read_voltage(&spi->dev, "vref");
+               if (ret < 0)
+                       return dev_err_probe(&spi->dev, ret, "failed get vref voltage\n");
 
                st->va_millivolt = ret / 1000;
        }