Commit 5b30e739 authored by Jonathan Cameron's avatar Jonathan Cameron

iio: accel: fxls8962af: Use devm_regulator_get_enable()

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: default avatarJonathan Cameron <Jonathan.Cameron@huawei.com>
Cc: Sean Nyekjaer <sean@geanix.com>
Reviewed-by: default avatarSean Nyekjaer <sean@geanix.com>
Reviewed-by: default avatarMatti Vaittinen <mazziesaccount@gmail.com>
Reviewed-by: default avatarNuno Sá <nuno.sa@analog.com>
Link: https://lore.kernel.org/r/20221016163409.320197-4-jic23@kernel.org
parent e9b96e18
...@@ -159,7 +159,6 @@ struct fxls8962af_chip_info { ...@@ -159,7 +159,6 @@ struct fxls8962af_chip_info {
struct fxls8962af_data { struct fxls8962af_data {
struct regmap *regmap; struct regmap *regmap;
const struct fxls8962af_chip_info *chip_info; const struct fxls8962af_chip_info *chip_info;
struct regulator *vdd_reg;
struct { struct {
__le16 channels[3]; __le16 channels[3];
s64 ts __aligned(8); s64 ts __aligned(8);
...@@ -1051,13 +1050,6 @@ static irqreturn_t fxls8962af_interrupt(int irq, void *p) ...@@ -1051,13 +1050,6 @@ static irqreturn_t fxls8962af_interrupt(int irq, void *p)
return IRQ_NONE; return IRQ_NONE;
} }
static void fxls8962af_regulator_disable(void *data_ptr)
{
struct fxls8962af_data *data = data_ptr;
regulator_disable(data->vdd_reg);
}
static void fxls8962af_pm_disable(void *dev_ptr) static void fxls8962af_pm_disable(void *dev_ptr)
{ {
struct device *dev = dev_ptr; struct device *dev = dev_ptr;
...@@ -1171,20 +1163,10 @@ int fxls8962af_core_probe(struct device *dev, struct regmap *regmap, int irq) ...@@ -1171,20 +1163,10 @@ int fxls8962af_core_probe(struct device *dev, struct regmap *regmap, int irq)
if (ret) if (ret)
return ret; return ret;
data->vdd_reg = devm_regulator_get(dev, "vdd"); ret = devm_regulator_get_enable(dev, "vdd");
if (IS_ERR(data->vdd_reg))
return dev_err_probe(dev, PTR_ERR(data->vdd_reg),
"Failed to get vdd regulator\n");
ret = regulator_enable(data->vdd_reg);
if (ret) {
dev_err(dev, "Failed to enable vdd regulator: %d\n", ret);
return ret;
}
ret = devm_add_action_or_reset(dev, fxls8962af_regulator_disable, data);
if (ret) if (ret)
return ret; return dev_err_probe(dev, ret,
"Failed to get vdd regulator\n");
ret = regmap_read(data->regmap, FXLS8962AF_WHO_AM_I, &reg); ret = regmap_read(data->regmap, FXLS8962AF_WHO_AM_I, &reg);
if (ret) if (ret)
......
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