mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-23 02:54:32 +08:00
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: Jonathan Cameron <Jonathan.Cameron@huawei.com> Cc: Sean Nyekjaer <sean@geanix.com> Reviewed-by: Sean Nyekjaer <sean@geanix.com> Reviewed-by: Matti Vaittinen <mazziesaccount@gmail.com> Reviewed-by: Nuno Sá <nuno.sa@analog.com> Link: https://lore.kernel.org/r/20221016163409.320197-4-jic23@kernel.org
This commit is contained in:
parent
e9b96e18cf
commit
5b30e739ce
@ -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)
|
||||
|
Loading…
Reference in New Issue
Block a user