staging: iio: impedance-analyzer: ad5933: Use devm_regulator_get_enable_read_voltage()
authorDavid Lechner <dlechner@baylibre.com>
Mon, 29 Apr 2024 23:40:14 +0000 (18:40 -0500)
committerMark Brown <broonie@kernel.org>
Tue, 7 May 2024 01:31:50 +0000 (10:31 +0900)
We can reduce boilerplate code by using
devm_regulator_get_enable_read_voltage().

Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Signed-off-by: David Lechner <dlechner@baylibre.com>
Link: https://lore.kernel.org/r/20240429-regulator-get-enable-get-votlage-v2-6-b1f11ab766c1@baylibre.com
Signed-off-by: Mark Brown <broonie@kernel.org>
drivers/staging/iio/impedance-analyzer/ad5933.c

index 9149d41fe65b7ed48785f80bc712902278eccec3..b7af5fe63e0985257734e9651cfcb64cfef1eb27 100644 (file)
@@ -84,7 +84,6 @@
 
 struct ad5933_state {
        struct i2c_client               *client;
-       struct regulator                *reg;
        struct clk                      *mclk;
        struct delayed_work             work;
        struct mutex                    lock; /* Protect sensor state */
@@ -660,13 +659,6 @@ static void ad5933_work(struct work_struct *work)
        }
 }
 
-static void ad5933_reg_disable(void *data)
-{
-       struct ad5933_state *st = data;
-
-       regulator_disable(st->reg);
-}
-
 static int ad5933_probe(struct i2c_client *client)
 {
        const struct i2c_device_id *id = i2c_client_get_device_id(client);
@@ -685,23 +677,9 @@ static int ad5933_probe(struct i2c_client *client)
 
        mutex_init(&st->lock);
 
-       st->reg = devm_regulator_get(&client->dev, "vdd");
-       if (IS_ERR(st->reg))
-               return PTR_ERR(st->reg);
-
-       ret = regulator_enable(st->reg);
-       if (ret) {
-               dev_err(&client->dev, "Failed to enable specified VDD supply\n");
-               return ret;
-       }
-
-       ret = devm_add_action_or_reset(&client->dev, ad5933_reg_disable, st);
-       if (ret)
-               return ret;
-
-       ret = regulator_get_voltage(st->reg);
+       ret = devm_regulator_get_enable_read_voltage(&client->dev, "vdd");
        if (ret < 0)
-               return ret;
+               return dev_err_probe(&client->dev, ret, "failed to get vdd voltage\n");
 
        st->vref_mv = ret / 1000;