On Sun, Oct 16, 2022 at 05:33:58PM +0100, Jonathan Cameron wrote: > From: Jonathan Cameron <Jonathan.Cameron@xxxxxxxxxx> > > 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@xxxxxxxxxx> > Cc: Sean Nyekjaer <sean@xxxxxxxxxx> Reviewed-by: Sean Nyekjaer <sean@xxxxxxxxxx> > --- > drivers/iio/accel/fxls8962af-core.c | 24 +++--------------------- > 1 file changed, 3 insertions(+), 21 deletions(-) > > diff --git a/drivers/iio/accel/fxls8962af-core.c b/drivers/iio/accel/fxls8962af-core.c > index bf259db281f5..0d672b1469e8 100644 > --- a/drivers/iio/accel/fxls8962af-core.c > +++ b/drivers/iio/accel/fxls8962af-core.c > @@ -159,7 +159,6 @@ struct fxls8962af_chip_info { > struct fxls8962af_data { > struct regmap *regmap; > const struct fxls8962af_chip_info *chip_info; > - struct regulator *vdd_reg; > struct { > __le16 channels[3]; > s64 ts __aligned(8); > @@ -1051,13 +1050,6 @@ static irqreturn_t fxls8962af_interrupt(int irq, void *p) > 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) > { > struct device *dev = dev_ptr; > @@ -1171,20 +1163,10 @@ int fxls8962af_core_probe(struct device *dev, struct regmap *regmap, int irq) > if (ret) > return ret; > > - data->vdd_reg = devm_regulator_get(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); > + ret = devm_regulator_get_enable(dev, "vdd"); > 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, ®); > if (ret) > -- > 2.37.2 >