* [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 = <c2309_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(<c2309->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).