iio: cdc: ad7150: Use devm_regulator_get_enable()
authorJonathan Cameron <Jonathan.Cameron@huawei.com>
Sun, 16 Oct 2022 16:34:01 +0000 (17:34 +0100)
committerJonathan Cameron <Jonathan.Cameron@huawei.com>
Wed, 23 Nov 2022 19:44:01 +0000 (19:44 +0000)
This driver only turns the power on at probe and off via a custom
devm_add_action_or_reset() callback. The new devm_regulator_get_enable()
replaces this boilerplate code.

Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Reviewed-by: Matti Vaittinen <mazziesaccount@gmail.com>
Reviewed-by: Nuno Sá <nuno.sa@analog.com>
Link: https://lore.kernel.org/r/20221016163409.320197-7-jic23@kernel.org
drivers/iio/cdc/ad7150.c

index ebe112b4618b049f922d78941e84790c09aa576d..1113745890caee096d03d04e216c1fe3c8c6bef0 100644 (file)
@@ -536,19 +536,11 @@ static const struct iio_info ad7150_info_no_irq = {
        .read_raw = &ad7150_read_raw,
 };
 
-static void ad7150_reg_disable(void *data)
-{
-       struct regulator *reg = data;
-
-       regulator_disable(reg);
-}
-
 static int ad7150_probe(struct i2c_client *client,
                        const struct i2c_device_id *id)
 {
        struct ad7150_chip_info *chip;
        struct iio_dev *indio_dev;
-       struct regulator *reg;
        int ret;
 
        indio_dev = devm_iio_device_alloc(&client->dev, sizeof(*chip));
@@ -563,15 +555,7 @@ static int ad7150_probe(struct i2c_client *client,
 
        indio_dev->modes = INDIO_DIRECT_MODE;
 
-       reg = devm_regulator_get(&client->dev, "vdd");
-       if (IS_ERR(reg))
-               return PTR_ERR(reg);
-
-       ret = regulator_enable(reg);
-       if (ret)
-               return ret;
-
-       ret = devm_add_action_or_reset(&client->dev, ad7150_reg_disable, reg);
+       ret = devm_regulator_get_enable(&client->dev, "vdd");
        if (ret)
                return ret;