All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jonathan Cameron <jic23@kernel.org>
To: linux-iio@vger.kernel.org
Cc: Matti Vaittinen <mazziesaccount@gmail.com>,
	Matti Vaittinen <matti.vaittinen@fi.rohmeurope.com>,
	Cosmin Tanislav <cosmin.tanislav@analog.com>,
	Jagath Jog J <jagathjog1996@gmail.com>,
	Sean Nyekjaer <sean@geanix.com>,
	Dmitry Rokosov <DDRokosov@sberdevices.ru>,
	Linus Walleij <linus.walleij@linaro.org>,
	Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
	Michael Hennerich <michael.hennerich@analog.com>,
	Lorenzo Bianconi <lorenzo@kernel.org>,
	Martyn Welch <martyn.welch@collabora.com>,
	Gwendal Grignou <gwendal@chromium.org>,
	Stephen Boyd <swboyd@chromium.org>,
	Tomasz Duszynski <tduszyns@gmail.com>,
	Jonathan Cameron <Jonathan.Cameron@huawei.com>
Subject: [PATCH 12/14] iio: proximity: sx_common: Use devm_regulator_bulk_get_enable()
Date: Sun, 16 Oct 2022 17:34:07 +0100	[thread overview]
Message-ID: <20221016163409.320197-13-jic23@kernel.org> (raw)
In-Reply-To: <20221016163409.320197-1-jic23@kernel.org>

From: Jonathan Cameron <Jonathan.Cameron@huawei.com>

This driver only turns the power for some regulators on at probe and off
via a custom devm_add_action_or_reset() callback. The new
devm_regulator_bulk_get_enable() replaces all this boilerplate code.

Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Cc: Gwendal Grignou <gwendal@chromium.org>
Cc: Stephen Boyd <swboyd@chromium.org>
---
 drivers/iio/proximity/sx_common.c | 23 +++--------------------
 drivers/iio/proximity/sx_common.h |  2 --
 2 files changed, 3 insertions(+), 22 deletions(-)

diff --git a/drivers/iio/proximity/sx_common.c b/drivers/iio/proximity/sx_common.c
index d70a6b4f0bf8..eba9256730ec 100644
--- a/drivers/iio/proximity/sx_common.c
+++ b/drivers/iio/proximity/sx_common.c
@@ -424,13 +424,6 @@ static const struct iio_buffer_setup_ops sx_common_buffer_setup_ops = {
 	.postdisable = sx_common_buffer_postdisable,
 };
 
-static void sx_common_regulator_disable(void *_data)
-{
-	struct sx_common_data *data = _data;
-
-	regulator_bulk_disable(ARRAY_SIZE(data->supplies), data->supplies);
-}
-
 #define SX_COMMON_SOFT_RESET				0xde
 
 static int sx_common_init_device(struct device *dev, struct iio_dev *indio_dev)
@@ -474,6 +467,7 @@ int sx_common_probe(struct i2c_client *client,
 		    const struct sx_common_chip_info *chip_info,
 		    const struct regmap_config *regmap_config)
 {
+	static const char * const regulator_names[] = { "vdd", "svdd" };
 	struct device *dev = &client->dev;
 	struct iio_dev *indio_dev;
 	struct sx_common_data *data;
@@ -487,8 +481,6 @@ int sx_common_probe(struct i2c_client *client,
 
 	data->chip_info = chip_info;
 	data->client = client;
-	data->supplies[0].supply = "vdd";
-	data->supplies[1].supply = "svdd";
 	mutex_init(&data->mutex);
 	init_completion(&data->completion);
 
@@ -497,23 +489,14 @@ int sx_common_probe(struct i2c_client *client,
 		return dev_err_probe(dev, PTR_ERR(data->regmap),
 				     "Could init register map\n");
 
-	ret = devm_regulator_bulk_get(dev, ARRAY_SIZE(data->supplies),
-				      data->supplies);
+	ret = devm_regulator_bulk_get_enable(dev, ARRAY_SIZE(regulator_names),
+					     regulator_names);
 	if (ret)
 		return dev_err_probe(dev, ret, "Unable to get regulators\n");
 
-	ret = regulator_bulk_enable(ARRAY_SIZE(data->supplies), data->supplies);
-	if (ret)
-		return dev_err_probe(dev, ret, "Unable to enable regulators\n");
-
 	/* Must wait for Tpor time after initial power up */
 	usleep_range(1000, 1100);
 
-	ret = devm_add_action_or_reset(dev, sx_common_regulator_disable, data);
-	if (ret)
-		return dev_err_probe(dev, ret,
-				     "Unable to register regulators deleter\n");
-
 	ret = data->chip_info->ops.check_whoami(dev, indio_dev);
 	if (ret)
 		return dev_err_probe(dev, ret, "error reading WHOAMI\n");
diff --git a/drivers/iio/proximity/sx_common.h b/drivers/iio/proximity/sx_common.h
index 5d3edeb75f4e..49d4517103b0 100644
--- a/drivers/iio/proximity/sx_common.h
+++ b/drivers/iio/proximity/sx_common.h
@@ -102,7 +102,6 @@ struct sx_common_chip_info {
  * @trig:		IIO trigger object.
  * @regmap:		Register map.
  * @num_default_regs:	Number of default registers to set at init.
- * @supplies:		Power supplies object.
  * @chan_prox_stat:	Last reading of the proximity status for each channel.
  *			We only send an event to user space when this changes.
  * @trigger_enabled:	True when the device trigger is enabled.
@@ -120,7 +119,6 @@ struct sx_common_data {
 	struct iio_trigger *trig;
 	struct regmap *regmap;
 
-	struct regulator_bulk_data supplies[2];
 	unsigned long chan_prox_stat;
 	bool trigger_enabled;
 
-- 
2.37.2


  parent reply	other threads:[~2022-10-16 16:34 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-10-16 16:33 [PATCH 00/14] IIO: More devm_regulator[_bulk]_get_enable() users Jonathan Cameron
2022-10-16 16:33 ` [PATCH 01/14] iio: accel: adxl367: Use devm_regulator_bulk_get_enable() Jonathan Cameron
2022-10-17  5:26   ` Matti Vaittinen
2022-10-16 16:33 ` [PATCH 02/14] iio: accel: bma400: " Jonathan Cameron
2022-10-17  5:27   ` Matti Vaittinen
2022-12-04 18:15     ` Jonathan Cameron
2022-10-16 16:33 ` [PATCH 03/14] iio: accel: fxls8962af: Use devm_regulator_get_enable() Jonathan Cameron
2022-10-17  5:27   ` Matti Vaittinen
2022-10-17  9:23   ` Sean Nyekjaer
2022-10-16 16:33 ` [PATCH 04/14] iio: accel: kxcjk-1013: Use devm_regulator_bulk_get_enable() Jonathan Cameron
2022-10-17  5:28   ` Matti Vaittinen
2022-10-16 16:34 ` [PATCH 05/14] iio: accel: msa311: Use devm_regulator_get_enable() Jonathan Cameron
2022-10-18 15:14   ` Dmitry Rokosov
2022-10-16 16:34 ` [PATCH 06/14] iio: cdc: ad7150: " Jonathan Cameron
2022-10-17  5:27   ` Matti Vaittinen
2022-10-16 16:34 ` [PATCH 07/14] iio: st_sensors: core and lsm9ds0 switch to devm_regulator_bulk_get_enable() Jonathan Cameron
2022-10-17  5:44   ` Matti Vaittinen
2022-10-16 16:34 ` [PATCH 08/14] iio: frequency: ad9523: Use devm_regulator_get_enable() Jonathan Cameron
2022-10-17  5:48   ` Matti Vaittinen
2022-10-16 16:34 ` [PATCH 09/14] iio: humidity: hts211: " Jonathan Cameron
2022-10-17  5:53   ` Matti Vaittinen
2022-10-17  7:11   ` Lorenzo Bianconi
2022-10-16 16:34 ` [PATCH 10/14] iio: light: ltr501: Use devm_regulator_bulk_get_enable() Jonathan Cameron
2022-10-17  5:56   ` Matti Vaittinen
2022-10-17  6:03   ` Matti Vaittinen
2022-10-16 16:34 ` [PATCH 11/14] iio: light: noa1305: Use devm_regulator_get_enable() Jonathan Cameron
2022-10-17  6:06   ` Matti Vaittinen
2022-10-16 16:34 ` Jonathan Cameron [this message]
2022-10-17  6:09   ` [PATCH 12/14] iio: proximity: sx_common: Use devm_regulator_bulk_get_enable() Matti Vaittinen
2022-10-18 22:21   ` Stephen Boyd
2022-10-16 16:34 ` [PATCH 13/14] iio: pressure: ms5611: Use devm_regulator_get_enable() Jonathan Cameron
2022-10-17  6:26   ` Matti Vaittinen
2022-12-04 18:19     ` Jonathan Cameron
2022-10-17  6:26   ` Matti Vaittinen
2022-10-16 16:34 ` [PATCH 14/14] iio: pressure: ms5611: Switch to fully devm_ managed registration Jonathan Cameron
2022-10-17  6:30   ` Matti Vaittinen
2022-12-04 18:22     ` Jonathan Cameron
2022-10-17 11:27 ` [PATCH 00/14] IIO: More devm_regulator[_bulk]_get_enable() users Sa, Nuno
2022-10-23 13:03   ` Jonathan Cameron

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20221016163409.320197-13-jic23@kernel.org \
    --to=jic23@kernel.org \
    --cc=DDRokosov@sberdevices.ru \
    --cc=Jonathan.Cameron@huawei.com \
    --cc=andriy.shevchenko@linux.intel.com \
    --cc=cosmin.tanislav@analog.com \
    --cc=gwendal@chromium.org \
    --cc=jagathjog1996@gmail.com \
    --cc=linus.walleij@linaro.org \
    --cc=linux-iio@vger.kernel.org \
    --cc=lorenzo@kernel.org \
    --cc=martyn.welch@collabora.com \
    --cc=matti.vaittinen@fi.rohmeurope.com \
    --cc=mazziesaccount@gmail.com \
    --cc=michael.hennerich@analog.com \
    --cc=sean@geanix.com \
    --cc=swboyd@chromium.org \
    --cc=tduszyns@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.