Commit 72ce527c authored by Jonathan Cameron's avatar Jonathan Cameron
Browse files

iio: cdc: ad7150: 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>
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-7-jic23@kernel.org
parent eefa008b
Loading
Loading
Loading
Loading
+1 −17
Original line number Diff line number Diff line
@@ -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;