Re: [PATCH v1 1/2] iio: adc: ti-adc128s052: add support for adc121s021

From: Matti Vaittinen
Date: Thu Jun 26 2025 - 01:24:55 EST


Hi Lothar,

On 25/06/2025 20:02, Lothar Rubusch wrote:
Add support for the single channel variant(s) of this ADC.

Signed-off-by: Lothar Rubusch <l.rubusch@xxxxxxxxx>

Thanks for this addition. In principle, this looks good to me but I am afraid there is another colliding series being worked on:

https://lore.kernel.org/all/20250614091504.575685-3-sbellary@xxxxxxxxxxxx/

Maybe you can align the effort with Sukrut?

What I specifically like (and think is the right thing to do) in Sukrut's series is replacing the 'adc122s021_channels' -array with individual structures. In my opinion the array is just unnecessary complexity and individual structures are simpler.

Other than that, this looks good to me.

Yours,
-- Matti


---
drivers/iio/adc/ti-adc128s052.c | 17 ++++++++++++++++-
1 file changed, 16 insertions(+), 1 deletion(-)

diff --git a/drivers/iio/adc/ti-adc128s052.c b/drivers/iio/adc/ti-adc128s052.c
index 1b46a8155803..cf271c39e663 100644
--- a/drivers/iio/adc/ti-adc128s052.c
+++ b/drivers/iio/adc/ti-adc128s052.c
@@ -7,6 +7,7 @@
* https://www.ti.com/lit/ds/symlink/adc128s052.pdf
* https://www.ti.com/lit/ds/symlink/adc122s021.pdf
* https://www.ti.com/lit/ds/symlink/adc124s021.pdf
+ * https://www.ti.com/lit/ds/symlink/adc121s021.pdf
*/
#include <linux/cleanup.h>
@@ -110,6 +111,10 @@ static const struct iio_chan_spec adc128s052_channels[] = {
ADC128_VOLTAGE_CHANNEL(7),
};
+static const struct iio_chan_spec adc121s021_channels[] = {
+ ADC128_VOLTAGE_CHANNEL(0),
+};
+
static const struct iio_chan_spec adc122s021_channels[] = {
ADC128_VOLTAGE_CHANNEL(0),
ADC128_VOLTAGE_CHANNEL(1),
@@ -143,6 +148,10 @@ static const struct adc128_configuration adc128_config[] = {
.refname = "vdd",
.other_regulators = &bd79104_regulators,
.num_other_regulators = 1,
+ }, {
+ .channels = adc121s021_channels,
+ .num_channels = ARRAY_SIZE(adc121s021_channels),
+ .refname = "vref",
},
};

I'd love seeing this array split to individual structs.

@@ -207,7 +216,10 @@ static const struct of_device_id adc128_of_match[] = {
{ .compatible = "ti,adc124s051", .data = &adc128_config[2] },
{ .compatible = "ti,adc124s101", .data = &adc128_config[2] },
{ .compatible = "rohm,bd79104", .data = &adc128_config[3] },
- { }
+ { .compatible = "ti,adc121s021", .data = &adc128_config[4] },
+ { .compatible = "ti,adc121s051", .data = &adc128_config[4] },
+ { .compatible = "ti,adc121s101", .data = &adc128_config[4] },
+ { },
};
MODULE_DEVICE_TABLE(of, adc128_of_match);
@@ -220,6 +232,9 @@ static const struct spi_device_id adc128_id[] = {
{ "adc124s051", (kernel_ulong_t)&adc128_config[2] },
{ "adc124s101", (kernel_ulong_t)&adc128_config[2] },
{ "bd79104", (kernel_ulong_t)&adc128_config[3] },
+ { "adc121s021", (kernel_ulong_t)&adc128_config[4] },
+ { "adc121s051", (kernel_ulong_t)&adc128_config[4] },
+ { "adc121s101", (kernel_ulong_t)&adc128_config[4] },
{ }
};
MODULE_DEVICE_TABLE(spi, adc128_id);