Commit f55c8e66 authored by Matti Vaittinen's avatar Matti Vaittinen Committed by Jonathan Cameron

iio: adc: max1241: simplify using devm_regulator_get_enable()

Drop open-coded pattern: 'devm_regulator_get(), regulator_enable(),
add_action_or_reset(regulator_disable)' and use the
devm_regulator_get_enable() and drop the pointer to the regulator.
This simplifies code and makes it less tempting to add manual control
for the regulator which is also controlled by devm.
Signed-off-by: default avatarMatti Vaittinen <mazziesaccount@gmail.com>
Acked-by: default avatarAlexandru Lazar <alazar@startmail.com>
Link: https://lore.kernel.org/r/7c759bf6c06e72ae70bffeebc1939d9903427278.1660934107.git.mazziesaccount@gmail.comSigned-off-by: default avatarJonathan Cameron <Jonathan.Cameron@huawei.com>
parent fd5b6c48
...@@ -22,7 +22,6 @@ enum max1241_id { ...@@ -22,7 +22,6 @@ enum max1241_id {
struct max1241 { struct max1241 {
struct spi_device *spi; struct spi_device *spi;
struct mutex lock; struct mutex lock;
struct regulator *vdd;
struct regulator *vref; struct regulator *vref;
struct gpio_desc *shutdown; struct gpio_desc *shutdown;
...@@ -110,17 +109,6 @@ static const struct iio_info max1241_info = { ...@@ -110,17 +109,6 @@ static const struct iio_info max1241_info = {
.read_raw = max1241_read_raw, .read_raw = max1241_read_raw,
}; };
static void max1241_disable_vdd_action(void *data)
{
struct max1241 *adc = data;
struct device *dev = &adc->spi->dev;
int err;
err = regulator_disable(adc->vdd);
if (err)
dev_err(dev, "could not disable vdd regulator.\n");
}
static void max1241_disable_vref_action(void *data) static void max1241_disable_vref_action(void *data)
{ {
struct max1241 *adc = data; struct max1241 *adc = data;
...@@ -147,20 +135,10 @@ static int max1241_probe(struct spi_device *spi) ...@@ -147,20 +135,10 @@ static int max1241_probe(struct spi_device *spi)
adc->spi = spi; adc->spi = spi;
mutex_init(&adc->lock); mutex_init(&adc->lock);
adc->vdd = devm_regulator_get(dev, "vdd"); ret = devm_regulator_get_enable(dev, "vdd");
if (IS_ERR(adc->vdd))
return dev_err_probe(dev, PTR_ERR(adc->vdd),
"failed to get vdd regulator\n");
ret = regulator_enable(adc->vdd);
if (ret) if (ret)
return ret; return dev_err_probe(dev, ret,
"failed to get/enable vdd regulator\n");
ret = devm_add_action_or_reset(dev, max1241_disable_vdd_action, adc);
if (ret) {
dev_err(dev, "could not set up vdd regulator cleanup action\n");
return ret;
}
adc->vref = devm_regulator_get(dev, "vref"); adc->vref = devm_regulator_get(dev, "vref");
if (IS_ERR(adc->vref)) if (IS_ERR(adc->vref))
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment