linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 00/10] iio: use devm_regulator_get_enable_read_voltage round 2
@ 2024-06-21 22:11 David Lechner
  2024-06-21 22:11 ` [PATCH 01/10] iio: adc: aspeed_adc: use devm_regulator_get_enable_read_voltage() David Lechner
                   ` (10 more replies)
  0 siblings, 11 replies; 20+ messages in thread
From: David Lechner @ 2024-06-21 22:11 UTC (permalink / raw)
  To: Jonathan Cameron
  Cc: David Lechner, Joel Stanley, Andrew Jeffery, Liam Girdwood,
	Mark Brown, Andreas Klinger, Michael Hennerich, Nuno Sá,
	linux-iio, linux-arm-kernel, linux-aspeed, linux-kernel

This is the second round of patches making use of the new helper
devm_regulator_get_enable_read_voltage() to simplify drivers.

All of the changes in this round should be fairly straight forward.
And as a bonus, there are a few patches to get rid of driver .remove
callbacks.

---
David Lechner (10):
      iio: adc: aspeed_adc: use devm_regulator_get_enable_read_voltage()
      iio: adc: hx711: use devm_regulator_get_enable_read_voltage()
      iio: adc: hx711: remove hx711_remove()
      iio: adc: hx711: use dev_err_probe()
      iio: adc: ltc2309: use devm_regulator_get_enable_read_voltage()
      iio: adc: max1363: use devm_regulator_get_enable_read_voltage()
      iio: adc: ti-adc108s102: use devm_regulator_get_enable_read_voltage()
      iio: adc: ti-ads8688: use devm_regulator_get_enable_read_voltage()
      iio: adc: ti-ads8688: drop ads8688_remove()
      iio: dac: ad3552r: use devm_regulator_get_enable_read_voltage()

 drivers/iio/adc/aspeed_adc.c    | 30 +++++-----------
 drivers/iio/adc/hx711.c         | 78 ++++++++++-------------------------------
 drivers/iio/adc/ltc2309.c       | 43 ++++-------------------
 drivers/iio/adc/max1363.c       | 28 +++------------
 drivers/iio/adc/ti-adc108s102.c | 28 ++-------------
 drivers/iio/adc/ti-ads8688.c    | 59 ++++++-------------------------
 drivers/iio/dac/ad3552r.c       | 28 +++------------
 7 files changed, 53 insertions(+), 241 deletions(-)
---
base-commit: 7db8a847f98caae68c70bdab9ba92d1af38e5656
change-id: 20240621-iio-regulator-refactor-round-2-28a1e129a42d


^ permalink raw reply	[flat|nested] 20+ messages in thread

* [PATCH 01/10] iio: adc: aspeed_adc: use devm_regulator_get_enable_read_voltage()
  2024-06-21 22:11 [PATCH 00/10] iio: use devm_regulator_get_enable_read_voltage round 2 David Lechner
@ 2024-06-21 22:11 ` David Lechner
  2024-06-24  0:28   ` Andrew Jeffery
  2024-06-21 22:11 ` [PATCH 02/10] iio: adc: hx711: " David Lechner
                   ` (9 subsequent siblings)
  10 siblings, 1 reply; 20+ messages in thread
From: David Lechner @ 2024-06-21 22:11 UTC (permalink / raw)
  To: Jonathan Cameron
  Cc: David Lechner, Joel Stanley, Andrew Jeffery, Liam Girdwood,
	Mark Brown, Andreas Klinger, Michael Hennerich, Nuno Sá,
	linux-iio, linux-arm-kernel, linux-aspeed, linux-kernel

This makes use of the devm_regulator_get_enable_read_voltage() helper
function to simplify the code.

The error return is moved closer to the function call to make it easier
to follow the logic. And a few blank lines are added for readability.

Signed-off-by: David Lechner <dlechner@baylibre.com>
---
 drivers/iio/adc/aspeed_adc.c | 30 ++++++++----------------------
 1 file changed, 8 insertions(+), 22 deletions(-)

diff --git a/drivers/iio/adc/aspeed_adc.c b/drivers/iio/adc/aspeed_adc.c
index 998e8bcc06e1..090416c0d622 100644
--- a/drivers/iio/adc/aspeed_adc.c
+++ b/drivers/iio/adc/aspeed_adc.c
@@ -108,7 +108,6 @@ struct adc_gain {
 struct aspeed_adc_data {
 	struct device		*dev;
 	const struct aspeed_adc_model_data *model_data;
-	struct regulator	*regulator;
 	void __iomem		*base;
 	spinlock_t		clk_lock;
 	struct clk_hw		*fixed_div_clk;
@@ -404,13 +403,6 @@ static void aspeed_adc_power_down(void *data)
 	       priv_data->base + ASPEED_REG_ENGINE_CONTROL);
 }
 
-static void aspeed_adc_reg_disable(void *data)
-{
-	struct regulator *reg = data;
-
-	regulator_disable(reg);
-}
-
 static int aspeed_adc_vref_config(struct iio_dev *indio_dev)
 {
 	struct aspeed_adc_data *data = iio_priv(indio_dev);
@@ -423,18 +415,14 @@ static int aspeed_adc_vref_config(struct iio_dev *indio_dev)
 	}
 	adc_engine_control_reg_val =
 		readl(data->base + ASPEED_REG_ENGINE_CONTROL);
-	data->regulator = devm_regulator_get_optional(data->dev, "vref");
-	if (!IS_ERR(data->regulator)) {
-		ret = regulator_enable(data->regulator);
-		if (ret)
-			return ret;
-		ret = devm_add_action_or_reset(
-			data->dev, aspeed_adc_reg_disable, data->regulator);
-		if (ret)
-			return ret;
-		data->vref_mv = regulator_get_voltage(data->regulator);
-		/* Conversion from uV to mV */
-		data->vref_mv /= 1000;
+
+	ret = devm_regulator_get_enable_read_voltage(data->dev, "vref");
+	if (ret < 0 && ret != -ENODEV)
+		return ret;
+
+	if (ret != -ENODEV) {
+		data->vref_mv = ret / 1000;
+
 		if ((data->vref_mv >= 1550) && (data->vref_mv <= 2700))
 			writel(adc_engine_control_reg_val |
 				FIELD_PREP(
@@ -453,8 +441,6 @@ static int aspeed_adc_vref_config(struct iio_dev *indio_dev)
 			return -EOPNOTSUPP;
 		}
 	} else {
-		if (PTR_ERR(data->regulator) != -ENODEV)
-			return PTR_ERR(data->regulator);
 		data->vref_mv = 2500000;
 		of_property_read_u32(data->dev->of_node,
 				     "aspeed,int-vref-microvolt",

-- 
2.45.2



^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [PATCH 02/10] iio: adc: hx711: use devm_regulator_get_enable_read_voltage()
  2024-06-21 22:11 [PATCH 00/10] iio: use devm_regulator_get_enable_read_voltage round 2 David Lechner
  2024-06-21 22:11 ` [PATCH 01/10] iio: adc: aspeed_adc: use devm_regulator_get_enable_read_voltage() David Lechner
@ 2024-06-21 22:11 ` David Lechner
  2024-06-24  6:03   ` Andreas Klinger
  2024-06-21 22:11 ` [PATCH 03/10] iio: adc: hx711: remove hx711_remove() David Lechner
                   ` (8 subsequent siblings)
  10 siblings, 1 reply; 20+ messages in thread
From: David Lechner @ 2024-06-21 22:11 UTC (permalink / raw)
  To: Jonathan Cameron
  Cc: David Lechner, Joel Stanley, Andrew Jeffery, Liam Girdwood,
	Mark Brown, Andreas Klinger, Michael Hennerich, Nuno Sá,
	linux-iio, linux-arm-kernel, linux-aspeed, linux-kernel

Use the devm_regulator_get_enable_read_voltage() helper to simplify the
code.

Signed-off-by: David Lechner <dlechner@baylibre.com>
---
 drivers/iio/adc/hx711.c | 20 ++------------------
 1 file changed, 2 insertions(+), 18 deletions(-)

diff --git a/drivers/iio/adc/hx711.c b/drivers/iio/adc/hx711.c
index fef97c1d226a..6efdc971689c 100644
--- a/drivers/iio/adc/hx711.c
+++ b/drivers/iio/adc/hx711.c
@@ -80,7 +80,6 @@ struct hx711_data {
 	struct device		*dev;
 	struct gpio_desc	*gpiod_pd_sck;
 	struct gpio_desc	*gpiod_dout;
-	struct regulator	*reg_avdd;
 	int			gain_set;	/* gain set on device */
 	int			gain_chan_a;	/* gain for channel A */
 	struct mutex		lock;
@@ -497,11 +496,7 @@ static int hx711_probe(struct platform_device *pdev)
 		return PTR_ERR(hx711_data->gpiod_dout);
 	}
 
-	hx711_data->reg_avdd = devm_regulator_get(dev, "avdd");
-	if (IS_ERR(hx711_data->reg_avdd))
-		return PTR_ERR(hx711_data->reg_avdd);
-
-	ret = regulator_enable(hx711_data->reg_avdd);
+	ret = devm_regulator_get_enable_read_voltage(dev, "avdd");
 	if (ret < 0)
 		return ret;
 
@@ -517,9 +512,6 @@ static int hx711_probe(struct platform_device *pdev)
 	 * approximately to fit into a 32 bit number:
 	 * 1 LSB = (AVDD * 100) / GAIN / 1678 [10^-9 mV]
 	 */
-	ret = regulator_get_voltage(hx711_data->reg_avdd);
-	if (ret < 0)
-		goto error_regulator;
 
 	/* we need 10^-9 mV */
 	ret *= 100;
@@ -559,7 +551,7 @@ static int hx711_probe(struct platform_device *pdev)
 							hx711_trigger, NULL);
 	if (ret < 0) {
 		dev_err(dev, "setup of iio triggered buffer failed\n");
-		goto error_regulator;
+		return ret;
 	}
 
 	ret = iio_device_register(indio_dev);
@@ -573,25 +565,17 @@ static int hx711_probe(struct platform_device *pdev)
 error_buffer:
 	iio_triggered_buffer_cleanup(indio_dev);
 
-error_regulator:
-	regulator_disable(hx711_data->reg_avdd);
-
 	return ret;
 }
 
 static void hx711_remove(struct platform_device *pdev)
 {
-	struct hx711_data *hx711_data;
 	struct iio_dev *indio_dev;
 
 	indio_dev = platform_get_drvdata(pdev);
-	hx711_data = iio_priv(indio_dev);
 
 	iio_device_unregister(indio_dev);
-
 	iio_triggered_buffer_cleanup(indio_dev);
-
-	regulator_disable(hx711_data->reg_avdd);
 }
 
 static const struct of_device_id of_hx711_match[] = {

-- 
2.45.2



^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [PATCH 03/10] iio: adc: hx711: remove hx711_remove()
  2024-06-21 22:11 [PATCH 00/10] iio: use devm_regulator_get_enable_read_voltage round 2 David Lechner
  2024-06-21 22:11 ` [PATCH 01/10] iio: adc: aspeed_adc: use devm_regulator_get_enable_read_voltage() David Lechner
  2024-06-21 22:11 ` [PATCH 02/10] iio: adc: hx711: " David Lechner
@ 2024-06-21 22:11 ` David Lechner
  2024-06-24  6:04   ` Andreas Klinger
  2024-06-21 22:11 ` [PATCH 04/10] iio: adc: hx711: use dev_err_probe() David Lechner
                   ` (7 subsequent siblings)
  10 siblings, 1 reply; 20+ messages in thread
From: David Lechner @ 2024-06-21 22:11 UTC (permalink / raw)
  To: Jonathan Cameron
  Cc: David Lechner, Joel Stanley, Andrew Jeffery, Liam Girdwood,
	Mark Brown, Andreas Klinger, Michael Hennerich, Nuno Sá,
	linux-iio, linux-arm-kernel, linux-aspeed, linux-kernel

By using a few more devm_ functions, we can remove the hx711_remove()
function in the hx711 driver.

platform_set_drvdata() is also removed since there are no more
callers of platform_get_drvdata().

Signed-off-by: David Lechner <dlechner@baylibre.com>
---
 drivers/iio/adc/hx711.c | 27 +++++----------------------
 1 file changed, 5 insertions(+), 22 deletions(-)

diff --git a/drivers/iio/adc/hx711.c b/drivers/iio/adc/hx711.c
index 6efdc971689c..8461b1fe6bad 100644
--- a/drivers/iio/adc/hx711.c
+++ b/drivers/iio/adc/hx711.c
@@ -539,43 +539,27 @@ static int hx711_probe(struct platform_device *pdev)
 	hx711_data->data_ready_delay_ns =
 				1000000000 / hx711_data->clock_frequency;
 
-	platform_set_drvdata(pdev, indio_dev);
-
 	indio_dev->name = "hx711";
 	indio_dev->info = &hx711_iio_info;
 	indio_dev->modes = INDIO_DIRECT_MODE;
 	indio_dev->channels = hx711_chan_spec;
 	indio_dev->num_channels = ARRAY_SIZE(hx711_chan_spec);
 
-	ret = iio_triggered_buffer_setup(indio_dev, iio_pollfunc_store_time,
-							hx711_trigger, NULL);
+	ret = devm_iio_triggered_buffer_setup(dev, indio_dev,
+					      iio_pollfunc_store_time,
+					      hx711_trigger, NULL);
 	if (ret < 0) {
 		dev_err(dev, "setup of iio triggered buffer failed\n");
 		return ret;
 	}
 
-	ret = iio_device_register(indio_dev);
+	ret = devm_iio_device_register(dev, indio_dev);
 	if (ret < 0) {
 		dev_err(dev, "Couldn't register the device\n");
-		goto error_buffer;
+		return ret;
 	}
 
 	return 0;
-
-error_buffer:
-	iio_triggered_buffer_cleanup(indio_dev);
-
-	return ret;
-}
-
-static void hx711_remove(struct platform_device *pdev)
-{
-	struct iio_dev *indio_dev;
-
-	indio_dev = platform_get_drvdata(pdev);
-
-	iio_device_unregister(indio_dev);
-	iio_triggered_buffer_cleanup(indio_dev);
 }
 
 static const struct of_device_id of_hx711_match[] = {
@@ -587,7 +571,6 @@ MODULE_DEVICE_TABLE(of, of_hx711_match);
 
 static struct platform_driver hx711_driver = {
 	.probe		= hx711_probe,
-	.remove_new	= hx711_remove,
 	.driver		= {
 		.name		= "hx711-gpio",
 		.of_match_table	= of_hx711_match,

-- 
2.45.2



^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [PATCH 04/10] iio: adc: hx711: use dev_err_probe()
  2024-06-21 22:11 [PATCH 00/10] iio: use devm_regulator_get_enable_read_voltage round 2 David Lechner
                   ` (2 preceding siblings ...)
  2024-06-21 22:11 ` [PATCH 03/10] iio: adc: hx711: remove hx711_remove() David Lechner
@ 2024-06-21 22:11 ` David Lechner
  2024-06-24  6:05   ` Andreas Klinger
  2024-06-21 22:11 ` [PATCH 05/10] iio: adc: ltc2309: use devm_regulator_get_enable_read_voltage() David Lechner
                   ` (6 subsequent siblings)
  10 siblings, 1 reply; 20+ messages in thread
From: David Lechner @ 2024-06-21 22:11 UTC (permalink / raw)
  To: Jonathan Cameron
  Cc: David Lechner, Joel Stanley, Andrew Jeffery, Liam Girdwood,
	Mark Brown, Andreas Klinger, Michael Hennerich, Nuno Sá,
	linux-iio, linux-arm-kernel, linux-aspeed, linux-kernel

Use dev_err_probe() to simplify error returns in the probe function.

Signed-off-by: David Lechner <dlechner@baylibre.com>
---
 drivers/iio/adc/hx711.c | 35 +++++++++++++----------------------
 1 file changed, 13 insertions(+), 22 deletions(-)

diff --git a/drivers/iio/adc/hx711.c b/drivers/iio/adc/hx711.c
index 8461b1fe6bad..b3372ccff7d5 100644
--- a/drivers/iio/adc/hx711.c
+++ b/drivers/iio/adc/hx711.c
@@ -464,10 +464,8 @@ static int hx711_probe(struct platform_device *pdev)
 	int i;
 
 	indio_dev = devm_iio_device_alloc(dev, sizeof(struct hx711_data));
-	if (!indio_dev) {
-		dev_err(dev, "failed to allocate IIO device\n");
-		return -ENOMEM;
-	}
+	if (!indio_dev)
+		return dev_err_probe(dev, -ENOMEM, "failed to allocate IIO device\n");
 
 	hx711_data = iio_priv(indio_dev);
 	hx711_data->dev = dev;
@@ -479,22 +477,18 @@ static int hx711_probe(struct platform_device *pdev)
 	 * in the driver it is an output
 	 */
 	hx711_data->gpiod_pd_sck = devm_gpiod_get(dev, "sck", GPIOD_OUT_LOW);
-	if (IS_ERR(hx711_data->gpiod_pd_sck)) {
-		dev_err(dev, "failed to get sck-gpiod: err=%ld\n",
-					PTR_ERR(hx711_data->gpiod_pd_sck));
-		return PTR_ERR(hx711_data->gpiod_pd_sck);
-	}
+	if (IS_ERR(hx711_data->gpiod_pd_sck))
+		return dev_err_probe(dev, PTR_ERR(hx711_data->gpiod_pd_sck),
+				     "failed to get sck-gpiod\n");
 
 	/*
 	 * DOUT stands for serial data output of HX711
 	 * for the driver it is an input
 	 */
 	hx711_data->gpiod_dout = devm_gpiod_get(dev, "dout", GPIOD_IN);
-	if (IS_ERR(hx711_data->gpiod_dout)) {
-		dev_err(dev, "failed to get dout-gpiod: err=%ld\n",
-					PTR_ERR(hx711_data->gpiod_dout));
-		return PTR_ERR(hx711_data->gpiod_dout);
-	}
+	if (IS_ERR(hx711_data->gpiod_dout))
+		return dev_err_probe(dev, PTR_ERR(hx711_data->gpiod_dout),
+				     "failed to get dout-gpiod\n");
 
 	ret = devm_regulator_get_enable_read_voltage(dev, "avdd");
 	if (ret < 0)
@@ -548,16 +542,13 @@ static int hx711_probe(struct platform_device *pdev)
 	ret = devm_iio_triggered_buffer_setup(dev, indio_dev,
 					      iio_pollfunc_store_time,
 					      hx711_trigger, NULL);
-	if (ret < 0) {
-		dev_err(dev, "setup of iio triggered buffer failed\n");
-		return ret;
-	}
+	if (ret < 0)
+		return dev_err_probe(dev, ret,
+				     "setup of iio triggered buffer failed\n");
 
 	ret = devm_iio_device_register(dev, indio_dev);
-	if (ret < 0) {
-		dev_err(dev, "Couldn't register the device\n");
-		return ret;
-	}
+	if (ret < 0)
+		return dev_err_probe(dev, ret, "Couldn't register the device\n");
 
 	return 0;
 }

-- 
2.45.2



^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [PATCH 05/10] iio: adc: ltc2309: use devm_regulator_get_enable_read_voltage()
  2024-06-21 22:11 [PATCH 00/10] iio: use devm_regulator_get_enable_read_voltage round 2 David Lechner
                   ` (3 preceding siblings ...)
  2024-06-21 22:11 ` [PATCH 04/10] iio: adc: hx711: use dev_err_probe() David Lechner
@ 2024-06-21 22:11 ` David Lechner
  2024-06-24  8:14   ` Nuno Sá
  2024-06-21 22:11 ` [PATCH 06/10] iio: adc: max1363: " David Lechner
                   ` (5 subsequent siblings)
  10 siblings, 1 reply; 20+ messages in thread
From: David Lechner @ 2024-06-21 22:11 UTC (permalink / raw)
  To: Jonathan Cameron
  Cc: David Lechner, Joel Stanley, Andrew Jeffery, Liam Girdwood,
	Mark Brown, Andreas Klinger, Michael Hennerich, Nuno Sá,
	linux-iio, linux-arm-kernel, linux-aspeed, linux-kernel

Use devm_regulator_get_enable_read_voltage() to simplify the code.
Error message is changed since there is only one error return now.
LTC2309_INTERNAL_REF_MV macro is added to make the internal reference
voltage value self-documenting.

Signed-off-by: David Lechner <dlechner@baylibre.com>
---
 drivers/iio/adc/ltc2309.c | 43 ++++++-------------------------------------
 1 file changed, 6 insertions(+), 37 deletions(-)

diff --git a/drivers/iio/adc/ltc2309.c b/drivers/iio/adc/ltc2309.c
index 8b3a89c1b840..888a71454070 100644
--- a/drivers/iio/adc/ltc2309.c
+++ b/drivers/iio/adc/ltc2309.c
@@ -16,6 +16,7 @@
 #include <linux/regulator/consumer.h>
 
 #define LTC2309_ADC_RESOLUTION	12
+#define LTC2309_INTERNAL_REF_MV 4096
 
 #define LTC2309_DIN_CH_MASK	GENMASK(7, 4)
 #define LTC2309_DIN_SDN		BIT(7)
@@ -29,14 +30,12 @@
  * struct ltc2309 - internal device data structure
  * @dev:	Device reference
  * @client:	I2C reference
- * @vref:	External reference source
  * @lock:	Lock to serialize data access
  * @vref_mv:	Internal voltage reference
  */
 struct ltc2309 {
 	struct device		*dev;
 	struct i2c_client	*client;
-	struct regulator	*vref;
 	struct mutex		lock; /* serialize data access */
 	int			vref_mv;
 };
@@ -157,11 +156,6 @@ static const struct iio_info ltc2309_info = {
 	.read_raw = ltc2309_read_raw,
 };
 
-static void ltc2309_regulator_disable(void *regulator)
-{
-	regulator_disable(regulator);
-}
-
 static int ltc2309_probe(struct i2c_client *client)
 {
 	struct iio_dev *indio_dev;
@@ -175,7 +169,6 @@ static int ltc2309_probe(struct i2c_client *client)
 	ltc2309 = iio_priv(indio_dev);
 	ltc2309->dev = &indio_dev->dev;
 	ltc2309->client = client;
-	ltc2309->vref_mv = 4096; /* Default to the internal ref */
 
 	indio_dev->name = "ltc2309";
 	indio_dev->modes = INDIO_DIRECT_MODE;
@@ -183,36 +176,12 @@ static int ltc2309_probe(struct i2c_client *client)
 	indio_dev->num_channels = ARRAY_SIZE(ltc2309_channels);
 	indio_dev->info = &ltc2309_info;
 
-	ltc2309->vref = devm_regulator_get_optional(&client->dev, "vref");
-	if (IS_ERR(ltc2309->vref)) {
-		ret = PTR_ERR(ltc2309->vref);
-		if (ret == -ENODEV)
-			ltc2309->vref = NULL;
-		else
-			return ret;
-	}
+	ret = devm_regulator_get_enable_read_voltage(&client->dev, "vref");
+	if (ret < 0 && ret != -ENODEV)
+		return dev_err_probe(ltc2309->dev, ret,
+				     "failed to get vref voltage\n");
 
-	if (ltc2309->vref) {
-		ret = regulator_enable(ltc2309->vref);
-		if (ret)
-			return dev_err_probe(ltc2309->dev, ret,
-					     "failed to enable vref\n");
-
-		ret = devm_add_action_or_reset(ltc2309->dev,
-					       ltc2309_regulator_disable,
-					       ltc2309->vref);
-		if (ret) {
-			return dev_err_probe(ltc2309->dev, ret,
-					     "failed to add regulator_disable action: %d\n",
-					     ret);
-		}
-
-		ret = regulator_get_voltage(ltc2309->vref);
-		if (ret < 0)
-			return ret;
-
-		ltc2309->vref_mv = ret / 1000;
-	}
+	ltc2309->vref_mv = ret == -ENODEV ? LTC2309_INTERNAL_REF_MV : ret / 1000;
 
 	mutex_init(&ltc2309->lock);
 

-- 
2.45.2



^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [PATCH 06/10] iio: adc: max1363: use devm_regulator_get_enable_read_voltage()
  2024-06-21 22:11 [PATCH 00/10] iio: use devm_regulator_get_enable_read_voltage round 2 David Lechner
                   ` (4 preceding siblings ...)
  2024-06-21 22:11 ` [PATCH 05/10] iio: adc: ltc2309: use devm_regulator_get_enable_read_voltage() David Lechner
@ 2024-06-21 22:11 ` David Lechner
  2024-06-24  8:16   ` Nuno Sá
  2024-06-21 22:11 ` [PATCH 07/10] iio: adc: ti-adc108s102: " David Lechner
                   ` (4 subsequent siblings)
  10 siblings, 1 reply; 20+ messages in thread
From: David Lechner @ 2024-06-21 22:11 UTC (permalink / raw)
  To: Jonathan Cameron
  Cc: David Lechner, Joel Stanley, Andrew Jeffery, Liam Girdwood,
	Mark Brown, Andreas Klinger, Michael Hennerich, Nuno Sá,
	linux-iio, linux-arm-kernel, linux-aspeed, linux-kernel

Use devm_regulator_get_enable_read_voltage() to simplify the code.

Signed-off-by: David Lechner <dlechner@baylibre.com>
---
 drivers/iio/adc/max1363.c | 28 ++++------------------------
 1 file changed, 4 insertions(+), 24 deletions(-)

diff --git a/drivers/iio/adc/max1363.c b/drivers/iio/adc/max1363.c
index 8b5bc96cb9fb..bf4b6dc53fd2 100644
--- a/drivers/iio/adc/max1363.c
+++ b/drivers/iio/adc/max1363.c
@@ -1561,18 +1561,12 @@ static const struct of_device_id max1363_of_match[] = {
 };
 MODULE_DEVICE_TABLE(of, max1363_of_match);
 
-static void max1363_reg_disable(void *reg)
-{
-	regulator_disable(reg);
-}
-
 static int max1363_probe(struct i2c_client *client)
 {
 	const struct i2c_device_id *id = i2c_client_get_device_id(client);
 	int ret;
 	struct max1363_state *st;
 	struct iio_dev *indio_dev;
-	struct regulator *vref;
 
 	indio_dev = devm_iio_device_alloc(&client->dev,
 					  sizeof(struct max1363_state));
@@ -1589,26 +1583,12 @@ static int max1363_probe(struct i2c_client *client)
 	st->chip_info = i2c_get_match_data(client);
 	st->client = client;
 
-	st->vref_uv = st->chip_info->int_vref_mv * 1000;
-	vref = devm_regulator_get_optional(&client->dev, "vref");
-	if (!IS_ERR(vref)) {
-		int vref_uv;
-
-		ret = regulator_enable(vref);
-		if (ret)
-			return ret;
-
-		ret = devm_add_action_or_reset(&client->dev, max1363_reg_disable, vref);
-		if (ret)
-			return ret;
+	ret = devm_regulator_get_enable_read_voltage(&client->dev, "vref");
+	if (ret < 0 && ret != -ENODEV)
+		return ret;
 
-		st->vref = vref;
-		vref_uv = regulator_get_voltage(vref);
-		if (vref_uv <= 0)
-			return -EINVAL;
 
-		st->vref_uv = vref_uv;
-	}
+	st->vref_uv = ret == -ENODEV ? st->chip_info->int_vref_mv * 1000 : ret;
 
 	if (i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) {
 		st->send = i2c_master_send;

-- 
2.45.2



^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [PATCH 07/10] iio: adc: ti-adc108s102: use devm_regulator_get_enable_read_voltage()
  2024-06-21 22:11 [PATCH 00/10] iio: use devm_regulator_get_enable_read_voltage round 2 David Lechner
                   ` (5 preceding siblings ...)
  2024-06-21 22:11 ` [PATCH 06/10] iio: adc: max1363: " David Lechner
@ 2024-06-21 22:11 ` David Lechner
  2024-06-21 22:11 ` [PATCH 08/10] iio: adc: ti-ads8688: " David Lechner
                   ` (3 subsequent siblings)
  10 siblings, 0 replies; 20+ messages in thread
From: David Lechner @ 2024-06-21 22:11 UTC (permalink / raw)
  To: Jonathan Cameron
  Cc: David Lechner, Joel Stanley, Andrew Jeffery, Liam Girdwood,
	Mark Brown, Andreas Klinger, Michael Hennerich, Nuno Sá,
	linux-iio, linux-arm-kernel, linux-aspeed, linux-kernel

Use devm_regulator_get_enable_read_voltage() to simplify the code.

Signed-off-by: David Lechner <dlechner@baylibre.com>
---
 drivers/iio/adc/ti-adc108s102.c | 28 +++-------------------------
 1 file changed, 3 insertions(+), 25 deletions(-)

diff --git a/drivers/iio/adc/ti-adc108s102.c b/drivers/iio/adc/ti-adc108s102.c
index 69fcbbc7e418..9758ac801310 100644
--- a/drivers/iio/adc/ti-adc108s102.c
+++ b/drivers/iio/adc/ti-adc108s102.c
@@ -58,7 +58,6 @@
 
 struct adc108s102_state {
 	struct spi_device		*spi;
-	struct regulator		*reg;
 	u32				va_millivolt;
 	/* SPI transfer used by triggered buffer handler*/
 	struct spi_transfer		ring_xfer;
@@ -216,11 +215,6 @@ static const struct iio_info adc108s102_info = {
 	.update_scan_mode	= &adc108s102_update_scan_mode,
 };
 
-static void adc108s102_reg_disable(void *reg)
-{
-	regulator_disable(reg);
-}
-
 static int adc108s102_probe(struct spi_device *spi)
 {
 	struct adc108s102_state *st;
@@ -236,25 +230,9 @@ static int adc108s102_probe(struct spi_device *spi)
 	if (ACPI_COMPANION(&spi->dev)) {
 		st->va_millivolt = ADC108S102_VA_MV_ACPI_DEFAULT;
 	} else {
-		st->reg = devm_regulator_get(&spi->dev, "vref");
-		if (IS_ERR(st->reg))
-			return PTR_ERR(st->reg);
-
-		ret = regulator_enable(st->reg);
-		if (ret < 0) {
-			dev_err(&spi->dev, "Cannot enable vref regulator\n");
-			return ret;
-		}
-		ret = devm_add_action_or_reset(&spi->dev, adc108s102_reg_disable,
-					       st->reg);
-		if (ret)
-			return ret;
-
-		ret = regulator_get_voltage(st->reg);
-		if (ret < 0) {
-			dev_err(&spi->dev, "vref get voltage failed\n");
-			return ret;
-		}
+		ret = devm_regulator_get_enable_read_voltage(&spi->dev, "vref");
+		if (ret < 0)
+			return dev_err_probe(&spi->dev, ret, "failed get vref voltage\n");
 
 		st->va_millivolt = ret / 1000;
 	}

-- 
2.45.2



^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [PATCH 08/10] iio: adc: ti-ads8688: use devm_regulator_get_enable_read_voltage()
  2024-06-21 22:11 [PATCH 00/10] iio: use devm_regulator_get_enable_read_voltage round 2 David Lechner
                   ` (6 preceding siblings ...)
  2024-06-21 22:11 ` [PATCH 07/10] iio: adc: ti-adc108s102: " David Lechner
@ 2024-06-21 22:11 ` David Lechner
  2024-06-21 22:11 ` [PATCH 09/10] iio: adc: ti-ads8688: drop ads8688_remove() David Lechner
                   ` (2 subsequent siblings)
  10 siblings, 0 replies; 20+ messages in thread
From: David Lechner @ 2024-06-21 22:11 UTC (permalink / raw)
  To: Jonathan Cameron
  Cc: David Lechner, Joel Stanley, Andrew Jeffery, Liam Girdwood,
	Mark Brown, Andreas Klinger, Michael Hennerich, Nuno Sá,
	linux-iio, linux-arm-kernel, linux-aspeed, linux-kernel

Use devm_regulator_get_enable_read_voltage() to simplify the code.

Signed-off-by: David Lechner <dlechner@baylibre.com>
---
 drivers/iio/adc/ti-ads8688.c | 29 +++++------------------------
 1 file changed, 5 insertions(+), 24 deletions(-)

diff --git a/drivers/iio/adc/ti-ads8688.c b/drivers/iio/adc/ti-ads8688.c
index 9440a268a78c..fca3032c59d9 100644
--- a/drivers/iio/adc/ti-ads8688.c
+++ b/drivers/iio/adc/ti-ads8688.c
@@ -65,7 +65,6 @@ struct ads8688_state {
 	struct mutex			lock;
 	const struct ads8688_chip_info	*chip_info;
 	struct spi_device		*spi;
-	struct regulator		*reg;
 	unsigned int			vref_mv;
 	enum ads8688_range		range[8];
 	union {
@@ -423,21 +422,11 @@ static int ads8688_probe(struct spi_device *spi)
 
 	st = iio_priv(indio_dev);
 
-	st->reg = devm_regulator_get_optional(&spi->dev, "vref");
-	if (!IS_ERR(st->reg)) {
-		ret = regulator_enable(st->reg);
-		if (ret)
-			return ret;
-
-		ret = regulator_get_voltage(st->reg);
-		if (ret < 0)
-			goto err_regulator_disable;
+	ret = devm_regulator_get_enable_read_voltage(&spi->dev, "vref");
+	if (ret < 0 && ret != -ENODEV)
+		return ret;
 
-		st->vref_mv = ret / 1000;
-	} else {
-		/* Use internal reference */
-		st->vref_mv = ADS8688_VREF_MV;
-	}
+	st->vref_mv = ret == -ENODEV ? ADS8688_VREF_MV : ret / 1000;
 
 	st->chip_info =	&ads8688_chip_info_tbl[spi_get_device_id(spi)->driver_data];
 
@@ -460,7 +449,7 @@ static int ads8688_probe(struct spi_device *spi)
 	ret = iio_triggered_buffer_setup(indio_dev, NULL, ads8688_trigger_handler, NULL);
 	if (ret < 0) {
 		dev_err(&spi->dev, "iio triggered buffer setup failed\n");
-		goto err_regulator_disable;
+		return ret;
 	}
 
 	ret = iio_device_register(indio_dev);
@@ -472,23 +461,15 @@ static int ads8688_probe(struct spi_device *spi)
 err_buffer_cleanup:
 	iio_triggered_buffer_cleanup(indio_dev);
 
-err_regulator_disable:
-	if (!IS_ERR(st->reg))
-		regulator_disable(st->reg);
-
 	return ret;
 }
 
 static void ads8688_remove(struct spi_device *spi)
 {
 	struct iio_dev *indio_dev = spi_get_drvdata(spi);
-	struct ads8688_state *st = iio_priv(indio_dev);
 
 	iio_device_unregister(indio_dev);
 	iio_triggered_buffer_cleanup(indio_dev);
-
-	if (!IS_ERR(st->reg))
-		regulator_disable(st->reg);
 }
 
 static const struct spi_device_id ads8688_id[] = {

-- 
2.45.2



^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [PATCH 09/10] iio: adc: ti-ads8688: drop ads8688_remove()
  2024-06-21 22:11 [PATCH 00/10] iio: use devm_regulator_get_enable_read_voltage round 2 David Lechner
                   ` (7 preceding siblings ...)
  2024-06-21 22:11 ` [PATCH 08/10] iio: adc: ti-ads8688: " David Lechner
@ 2024-06-21 22:11 ` David Lechner
  2024-06-21 22:11 ` [PATCH 10/10] iio: dac: ad3552r: use devm_regulator_get_enable_read_voltage() David Lechner
  2024-06-23 10:12 ` [PATCH 00/10] iio: use devm_regulator_get_enable_read_voltage round 2 Jonathan Cameron
  10 siblings, 0 replies; 20+ messages in thread
From: David Lechner @ 2024-06-21 22:11 UTC (permalink / raw)
  To: Jonathan Cameron
  Cc: David Lechner, Joel Stanley, Andrew Jeffery, Liam Girdwood,
	Mark Brown, Andreas Klinger, Michael Hennerich, Nuno Sá,
	linux-iio, linux-arm-kernel, linux-aspeed, linux-kernel

By using a few devm_ functions, we can simplify the driver and remove
the ads8688_remove() function.

spi_set_drvdata() is removed since there are no more callers of
spi_get_drvdata().

Also use dev_err_probe() to simplify error return.

Signed-off-by: David Lechner <dlechner@baylibre.com>
---
 drivers/iio/adc/ti-ads8688.c | 32 ++++++--------------------------
 1 file changed, 6 insertions(+), 26 deletions(-)

diff --git a/drivers/iio/adc/ti-ads8688.c b/drivers/iio/adc/ti-ads8688.c
index fca3032c59d9..7a79f0cebfbf 100644
--- a/drivers/iio/adc/ti-ads8688.c
+++ b/drivers/iio/adc/ti-ads8688.c
@@ -432,8 +432,6 @@ static int ads8688_probe(struct spi_device *spi)
 
 	spi->mode = SPI_MODE_1;
 
-	spi_set_drvdata(spi, indio_dev);
-
 	st->spi = spi;
 
 	indio_dev->name = spi_get_device_id(spi)->name;
@@ -446,30 +444,13 @@ static int ads8688_probe(struct spi_device *spi)
 
 	mutex_init(&st->lock);
 
-	ret = iio_triggered_buffer_setup(indio_dev, NULL, ads8688_trigger_handler, NULL);
-	if (ret < 0) {
-		dev_err(&spi->dev, "iio triggered buffer setup failed\n");
-		return ret;
-	}
-
-	ret = iio_device_register(indio_dev);
-	if (ret)
-		goto err_buffer_cleanup;
-
-	return 0;
-
-err_buffer_cleanup:
-	iio_triggered_buffer_cleanup(indio_dev);
-
-	return ret;
-}
-
-static void ads8688_remove(struct spi_device *spi)
-{
-	struct iio_dev *indio_dev = spi_get_drvdata(spi);
+	ret = devm_iio_triggered_buffer_setup(&spi->dev, indio_dev, NULL,
+					      ads8688_trigger_handler, NULL);
+	if (ret < 0)
+		return dev_err_probe(&spi->dev, ret,
+				     "iio triggered buffer setup failed\n");
 
-	iio_device_unregister(indio_dev);
-	iio_triggered_buffer_cleanup(indio_dev);
+	return devm_iio_device_register(&spi->dev, indio_dev);
 }
 
 static const struct spi_device_id ads8688_id[] = {
@@ -492,7 +473,6 @@ static struct spi_driver ads8688_driver = {
 		.of_match_table = ads8688_of_match,
 	},
 	.probe		= ads8688_probe,
-	.remove		= ads8688_remove,
 	.id_table	= ads8688_id,
 };
 module_spi_driver(ads8688_driver);

-- 
2.45.2



^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [PATCH 10/10] iio: dac: ad3552r: use devm_regulator_get_enable_read_voltage()
  2024-06-21 22:11 [PATCH 00/10] iio: use devm_regulator_get_enable_read_voltage round 2 David Lechner
                   ` (8 preceding siblings ...)
  2024-06-21 22:11 ` [PATCH 09/10] iio: adc: ti-ads8688: drop ads8688_remove() David Lechner
@ 2024-06-21 22:11 ` David Lechner
  2024-06-24  8:18   ` Nuno Sá
  2024-06-23 10:12 ` [PATCH 00/10] iio: use devm_regulator_get_enable_read_voltage round 2 Jonathan Cameron
  10 siblings, 1 reply; 20+ messages in thread
From: David Lechner @ 2024-06-21 22:11 UTC (permalink / raw)
  To: Jonathan Cameron
  Cc: David Lechner, Joel Stanley, Andrew Jeffery, Liam Girdwood,
	Mark Brown, Andreas Klinger, Michael Hennerich, Nuno Sá,
	linux-iio, linux-arm-kernel, linux-aspeed, linux-kernel

Use devm_regulator_get_enable_read_voltage() to simplify the code.
Error message is slightly changed since there is only one error return
now.

Signed-off-by: David Lechner <dlechner@baylibre.com>
---
 drivers/iio/dac/ad3552r.c | 28 ++++------------------------
 1 file changed, 4 insertions(+), 24 deletions(-)

diff --git a/drivers/iio/dac/ad3552r.c b/drivers/iio/dac/ad3552r.c
index ddc6c262f801..bd37d304ca70 100644
--- a/drivers/iio/dac/ad3552r.c
+++ b/drivers/iio/dac/ad3552r.c
@@ -857,15 +857,9 @@ static int ad3552r_configure_custom_gain(struct ad3552r_desc *dac,
 	return 0;
 }
 
-static void ad3552r_reg_disable(void *reg)
-{
-	regulator_disable(reg);
-}
-
 static int ad3552r_configure_device(struct ad3552r_desc *dac)
 {
 	struct device *dev = &dac->spi->dev;
-	struct regulator *vref;
 	int err, cnt = 0, voltage, delta = 100000;
 	u32 vals[2], val, ch;
 
@@ -874,30 +868,16 @@ static int ad3552r_configure_device(struct ad3552r_desc *dac)
 		return dev_err_probe(dev, PTR_ERR(dac->gpio_ldac),
 				     "Error getting gpio ldac");
 
-	vref = devm_regulator_get_optional(dev, "vref");
-	if (IS_ERR(vref)) {
-		if (PTR_ERR(vref) != -ENODEV)
-			return dev_err_probe(dev, PTR_ERR(vref),
-					     "Error getting vref");
+	voltage = devm_regulator_get_enable_read_voltage(dev, "vref");
+	if (voltage < 0 && voltage != -ENODEV)
+		return dev_err_probe(dev, voltage, "Error getting vref voltage\n");
 
+	if (voltage == -ENODEV) {
 		if (device_property_read_bool(dev, "adi,vref-out-en"))
 			val = AD3552R_INTERNAL_VREF_PIN_2P5V;
 		else
 			val = AD3552R_INTERNAL_VREF_PIN_FLOATING;
 	} else {
-		err = regulator_enable(vref);
-		if (err) {
-			dev_err(dev, "Failed to enable external vref supply\n");
-			return err;
-		}
-
-		err = devm_add_action_or_reset(dev, ad3552r_reg_disable, vref);
-		if (err) {
-			regulator_disable(vref);
-			return err;
-		}
-
-		voltage = regulator_get_voltage(vref);
 		if (voltage > 2500000 + delta || voltage < 2500000 - delta) {
 			dev_warn(dev, "vref-supply must be 2.5V");
 			return -EINVAL;

-- 
2.45.2



^ permalink raw reply related	[flat|nested] 20+ messages in thread

* Re: [PATCH 00/10] iio: use devm_regulator_get_enable_read_voltage round 2
  2024-06-21 22:11 [PATCH 00/10] iio: use devm_regulator_get_enable_read_voltage round 2 David Lechner
                   ` (9 preceding siblings ...)
  2024-06-21 22:11 ` [PATCH 10/10] iio: dac: ad3552r: use devm_regulator_get_enable_read_voltage() David Lechner
@ 2024-06-23 10:12 ` Jonathan Cameron
  2024-06-24 19:34   ` Jonathan Cameron
  10 siblings, 1 reply; 20+ messages in thread
From: Jonathan Cameron @ 2024-06-23 10:12 UTC (permalink / raw)
  To: David Lechner
  Cc: Joel Stanley, Andrew Jeffery, Liam Girdwood, Mark Brown,
	Andreas Klinger, Michael Hennerich, Nuno Sá, linux-iio,
	linux-arm-kernel, linux-aspeed, linux-kernel

On Fri, 21 Jun 2024 17:11:47 -0500
David Lechner <dlechner@baylibre.com> wrote:

> This is the second round of patches making use of the new helper
> devm_regulator_get_enable_read_voltage() to simplify drivers.
> 
> All of the changes in this round should be fairly straight forward.
> And as a bonus, there are a few patches to get rid of driver .remove
> callbacks.

LGTM.  Obviously only been on list for a short time though and
some of these have active maintainers so I won't pick them up just yet.

Jonathan

> 
> ---
> David Lechner (10):
>       iio: adc: aspeed_adc: use devm_regulator_get_enable_read_voltage()
>       iio: adc: hx711: use devm_regulator_get_enable_read_voltage()
>       iio: adc: hx711: remove hx711_remove()
>       iio: adc: hx711: use dev_err_probe()
>       iio: adc: ltc2309: use devm_regulator_get_enable_read_voltage()
>       iio: adc: max1363: use devm_regulator_get_enable_read_voltage()
>       iio: adc: ti-adc108s102: use devm_regulator_get_enable_read_voltage()
>       iio: adc: ti-ads8688: use devm_regulator_get_enable_read_voltage()
>       iio: adc: ti-ads8688: drop ads8688_remove()
>       iio: dac: ad3552r: use devm_regulator_get_enable_read_voltage()
> 
>  drivers/iio/adc/aspeed_adc.c    | 30 +++++-----------
>  drivers/iio/adc/hx711.c         | 78 ++++++++++-------------------------------
>  drivers/iio/adc/ltc2309.c       | 43 ++++-------------------
>  drivers/iio/adc/max1363.c       | 28 +++------------
>  drivers/iio/adc/ti-adc108s102.c | 28 ++-------------
>  drivers/iio/adc/ti-ads8688.c    | 59 ++++++-------------------------
>  drivers/iio/dac/ad3552r.c       | 28 +++------------
>  7 files changed, 53 insertions(+), 241 deletions(-)
> ---
> base-commit: 7db8a847f98caae68c70bdab9ba92d1af38e5656
> change-id: 20240621-iio-regulator-refactor-round-2-28a1e129a42d



^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH 01/10] iio: adc: aspeed_adc: use devm_regulator_get_enable_read_voltage()
  2024-06-21 22:11 ` [PATCH 01/10] iio: adc: aspeed_adc: use devm_regulator_get_enable_read_voltage() David Lechner
@ 2024-06-24  0:28   ` Andrew Jeffery
  0 siblings, 0 replies; 20+ messages in thread
From: Andrew Jeffery @ 2024-06-24  0:28 UTC (permalink / raw)
  To: David Lechner, Jonathan Cameron
  Cc: Joel Stanley, Liam Girdwood, Mark Brown, Andreas Klinger,
	Michael Hennerich, Nuno Sá, linux-iio, linux-arm-kernel,
	linux-aspeed, linux-kernel

On Fri, 2024-06-21 at 17:11 -0500, David Lechner wrote:
> This makes use of the devm_regulator_get_enable_read_voltage() helper
> function to simplify the code.
> 
> The error return is moved closer to the function call to make it easier
> to follow the logic. And a few blank lines are added for readability.
> 
> Signed-off-by: David Lechner <dlechner@baylibre.com>

Nice cleanup!

Reviewed-by: Andrew Jeffery <andrew@codeconstruct.com.au>



^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH 02/10] iio: adc: hx711: use devm_regulator_get_enable_read_voltage()
  2024-06-21 22:11 ` [PATCH 02/10] iio: adc: hx711: " David Lechner
@ 2024-06-24  6:03   ` Andreas Klinger
  0 siblings, 0 replies; 20+ messages in thread
From: Andreas Klinger @ 2024-06-24  6:03 UTC (permalink / raw)
  To: David Lechner
  Cc: Jonathan Cameron, Joel Stanley, Liam Girdwood, Mark Brown,
	Andreas Klinger, Michael Hennerich, Nuno Sa, linux-iio,
	linux-arm-kernel, linux-aspeed, linux-kernel

[-- Attachment #1: Type: text/plain, Size: 255 bytes --]

On Fri, 2024-06-21 at 22:11 +0000, David Lechner wrote:
> Use the devm_regulator_get_enable_read_voltage() helper to simplify the
> code.
> Signed-off-by: David Lechner <dlechner@baylibre.com>

Reviewed-by: Andreas Klinger <ak@it-klinger.de>

-- 

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 659 bytes --]

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH 03/10] iio: adc: hx711: remove hx711_remove()
  2024-06-21 22:11 ` [PATCH 03/10] iio: adc: hx711: remove hx711_remove() David Lechner
@ 2024-06-24  6:04   ` Andreas Klinger
  0 siblings, 0 replies; 20+ messages in thread
From: Andreas Klinger @ 2024-06-24  6:04 UTC (permalink / raw)
  To: David Lechner
  Cc: Jonathan Cameron, Joel Stanley, Liam Girdwood, Mark Brown,
	Andreas Klinger, Michael Hennerich, Nuno Sa, linux-iio,
	linux-arm-kernel, linux-aspeed, linux-kernel

[-- Attachment #1: Type: text/plain, Size: 385 bytes --]

On Fri, 2024-06-21 at 22:11 +0000, David Lechner wrote:
> By using a few more devm_ functions, we can remove the hx711_remove()
> function in the hx711 driver.
> 
> platform_set_drvdata() is also removed since there are no more
> callers of platform_get_drvdata().
> Signed-off-by: David Lechner <dlechner@baylibre.com>

Reviewed-by: Andreas Klinger <ak@it-klinger.de>

-- 

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 659 bytes --]

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH 04/10] iio: adc: hx711: use dev_err_probe()
  2024-06-21 22:11 ` [PATCH 04/10] iio: adc: hx711: use dev_err_probe() David Lechner
@ 2024-06-24  6:05   ` Andreas Klinger
  0 siblings, 0 replies; 20+ messages in thread
From: Andreas Klinger @ 2024-06-24  6:05 UTC (permalink / raw)
  To: David Lechner
  Cc: Jonathan Cameron, Joel Stanley, Liam Girdwood, Mark Brown,
	Andreas Klinger, Michael Hennerich, Nuno Sa, linux-iio,
	linux-arm-kernel, linux-aspeed, linux-kernel

[-- Attachment #1: Type: text/plain, Size: 243 bytes --]

On Fri, 2024-06-21 at 22:11 +0000, David Lechner wrote:
> Use dev_err_probe() to simplify error returns in the probe function.
> Signed-off-by: David Lechner <dlechner@baylibre.com>

Reviewed-by: Andreas Klinger <ak@it-klinger.de>

-- 

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 659 bytes --]

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH 05/10] iio: adc: ltc2309: use devm_regulator_get_enable_read_voltage()
  2024-06-21 22:11 ` [PATCH 05/10] iio: adc: ltc2309: use devm_regulator_get_enable_read_voltage() David Lechner
@ 2024-06-24  8:14   ` Nuno Sá
  0 siblings, 0 replies; 20+ messages in thread
From: Nuno Sá @ 2024-06-24  8:14 UTC (permalink / raw)
  To: David Lechner, Jonathan Cameron
  Cc: Joel Stanley, Andrew Jeffery, Liam Girdwood, Mark Brown,
	Andreas Klinger, Michael Hennerich, Nuno Sá, linux-iio,
	linux-arm-kernel, linux-aspeed, linux-kernel

On Fri, 2024-06-21 at 17:11 -0500, David Lechner wrote:
> Use devm_regulator_get_enable_read_voltage() to simplify the code.
> Error message is changed since there is only one error return now.
> LTC2309_INTERNAL_REF_MV macro is added to make the internal reference
> voltage value self-documenting.
> 
> Signed-off-by: David Lechner <dlechner@baylibre.com>
> ---

Reviewed-by: Nuno Sa <nuno.sa@analog.com>




^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH 06/10] iio: adc: max1363: use devm_regulator_get_enable_read_voltage()
  2024-06-21 22:11 ` [PATCH 06/10] iio: adc: max1363: " David Lechner
@ 2024-06-24  8:16   ` Nuno Sá
  0 siblings, 0 replies; 20+ messages in thread
From: Nuno Sá @ 2024-06-24  8:16 UTC (permalink / raw)
  To: David Lechner, Jonathan Cameron
  Cc: Joel Stanley, Andrew Jeffery, Liam Girdwood, Mark Brown,
	Andreas Klinger, Michael Hennerich, Nuno Sá, linux-iio,
	linux-arm-kernel, linux-aspeed, linux-kernel

On Fri, 2024-06-21 at 17:11 -0500, David Lechner wrote:
> Use devm_regulator_get_enable_read_voltage() to simplify the code.
> 
> Signed-off-by: David Lechner <dlechner@baylibre.com>
> ---

Reviewed-by: Nuno Sa <nuno.sa@analog.com>




^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH 10/10] iio: dac: ad3552r: use devm_regulator_get_enable_read_voltage()
  2024-06-21 22:11 ` [PATCH 10/10] iio: dac: ad3552r: use devm_regulator_get_enable_read_voltage() David Lechner
@ 2024-06-24  8:18   ` Nuno Sá
  0 siblings, 0 replies; 20+ messages in thread
From: Nuno Sá @ 2024-06-24  8:18 UTC (permalink / raw)
  To: David Lechner, Jonathan Cameron
  Cc: Joel Stanley, Andrew Jeffery, Liam Girdwood, Mark Brown,
	Andreas Klinger, Michael Hennerich, Nuno Sá, linux-iio,
	linux-arm-kernel, linux-aspeed, linux-kernel

On Fri, 2024-06-21 at 17:11 -0500, David Lechner wrote:
> Use devm_regulator_get_enable_read_voltage() to simplify the code.
> Error message is slightly changed since there is only one error return
> now.
> 
> Signed-off-by: David Lechner <dlechner@baylibre.com>
> ---

Reviewed-by: Nuno Sa <nuno.sa@analog.com>




^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH 00/10] iio: use devm_regulator_get_enable_read_voltage round 2
  2024-06-23 10:12 ` [PATCH 00/10] iio: use devm_regulator_get_enable_read_voltage round 2 Jonathan Cameron
@ 2024-06-24 19:34   ` Jonathan Cameron
  0 siblings, 0 replies; 20+ messages in thread
From: Jonathan Cameron @ 2024-06-24 19:34 UTC (permalink / raw)
  To: David Lechner
  Cc: Joel Stanley, Andrew Jeffery, Liam Girdwood, Mark Brown,
	Andreas Klinger, Michael Hennerich, Nuno Sá, linux-iio,
	linux-arm-kernel, linux-aspeed, linux-kernel

On Sun, 23 Jun 2024 11:12:47 +0100
Jonathan Cameron <jic23@kernel.org> wrote:

> On Fri, 21 Jun 2024 17:11:47 -0500
> David Lechner <dlechner@baylibre.com> wrote:
> 
> > This is the second round of patches making use of the new helper
> > devm_regulator_get_enable_read_voltage() to simplify drivers.
> > 
> > All of the changes in this round should be fairly straight forward.
> > And as a bonus, there are a few patches to get rid of driver .remove
> > callbacks.  
> 
> LGTM.  Obviously only been on list for a short time though and
> some of these have active maintainers so I won't pick them up just yet.

I think most of the people I thought would review did super quick so 
applied.

Thanks,

Jonathan

> 
> Jonathan
> 
> > 
> > ---
> > David Lechner (10):
> >       iio: adc: aspeed_adc: use devm_regulator_get_enable_read_voltage()
> >       iio: adc: hx711: use devm_regulator_get_enable_read_voltage()
> >       iio: adc: hx711: remove hx711_remove()
> >       iio: adc: hx711: use dev_err_probe()
> >       iio: adc: ltc2309: use devm_regulator_get_enable_read_voltage()
> >       iio: adc: max1363: use devm_regulator_get_enable_read_voltage()
> >       iio: adc: ti-adc108s102: use devm_regulator_get_enable_read_voltage()
> >       iio: adc: ti-ads8688: use devm_regulator_get_enable_read_voltage()
> >       iio: adc: ti-ads8688: drop ads8688_remove()
> >       iio: dac: ad3552r: use devm_regulator_get_enable_read_voltage()
> > 
> >  drivers/iio/adc/aspeed_adc.c    | 30 +++++-----------
> >  drivers/iio/adc/hx711.c         | 78 ++++++++++-------------------------------
> >  drivers/iio/adc/ltc2309.c       | 43 ++++-------------------
> >  drivers/iio/adc/max1363.c       | 28 +++------------
> >  drivers/iio/adc/ti-adc108s102.c | 28 ++-------------
> >  drivers/iio/adc/ti-ads8688.c    | 59 ++++++-------------------------
> >  drivers/iio/dac/ad3552r.c       | 28 +++------------
> >  7 files changed, 53 insertions(+), 241 deletions(-)
> > ---
> > base-commit: 7db8a847f98caae68c70bdab9ba92d1af38e5656
> > change-id: 20240621-iio-regulator-refactor-round-2-28a1e129a42d  
> 
> 



^ permalink raw reply	[flat|nested] 20+ messages in thread

end of thread, other threads:[~2024-06-24 19:34 UTC | newest]

Thread overview: 20+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-06-21 22:11 [PATCH 00/10] iio: use devm_regulator_get_enable_read_voltage round 2 David Lechner
2024-06-21 22:11 ` [PATCH 01/10] iio: adc: aspeed_adc: use devm_regulator_get_enable_read_voltage() David Lechner
2024-06-24  0:28   ` Andrew Jeffery
2024-06-21 22:11 ` [PATCH 02/10] iio: adc: hx711: " David Lechner
2024-06-24  6:03   ` Andreas Klinger
2024-06-21 22:11 ` [PATCH 03/10] iio: adc: hx711: remove hx711_remove() David Lechner
2024-06-24  6:04   ` Andreas Klinger
2024-06-21 22:11 ` [PATCH 04/10] iio: adc: hx711: use dev_err_probe() David Lechner
2024-06-24  6:05   ` Andreas Klinger
2024-06-21 22:11 ` [PATCH 05/10] iio: adc: ltc2309: use devm_regulator_get_enable_read_voltage() David Lechner
2024-06-24  8:14   ` Nuno Sá
2024-06-21 22:11 ` [PATCH 06/10] iio: adc: max1363: " David Lechner
2024-06-24  8:16   ` Nuno Sá
2024-06-21 22:11 ` [PATCH 07/10] iio: adc: ti-adc108s102: " David Lechner
2024-06-21 22:11 ` [PATCH 08/10] iio: adc: ti-ads8688: " David Lechner
2024-06-21 22:11 ` [PATCH 09/10] iio: adc: ti-ads8688: drop ads8688_remove() David Lechner
2024-06-21 22:11 ` [PATCH 10/10] iio: dac: ad3552r: use devm_regulator_get_enable_read_voltage() David Lechner
2024-06-24  8:18   ` Nuno Sá
2024-06-23 10:12 ` [PATCH 00/10] iio: use devm_regulator_get_enable_read_voltage round 2 Jonathan Cameron
2024-06-24 19:34   ` Jonathan Cameron

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).