* [PATCH v2 1/2] dt-bindings: iio: adc: ad7405: Add ADuM7801/7802/7811/7812 support
2026-11-05 9:35 [PATCH v2 0/2] iio: adc: ad7405: Add ADuM7801/7802/7811/7812 support Pop Ioan Daniel
@ 2026-11-05 9:35 ` Pop Ioan Daniel
2026-11-05 9:35 ` [PATCH v2 2/2] iio: adc: ad7405: Add support for ADuM7801/7802/7811/7812 Pop Ioan Daniel
1 sibling, 0 replies; 4+ messages in thread
From: Pop Ioan Daniel @ 2026-11-05 9:35 UTC (permalink / raw)
To: jic23
Cc: Nuno Sá,
Michael Hennerich, David Lechner, Andy Shevchenko, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Dragos Bogdan, Ioan Daniel,
linux, linux-iio, devicetree, linux-kernel
Add compatible strings for the ADuM7801, ADuM7802, ADuM7811 and
ADuM7812 16-bit isolated sigma-delta modulators.
The ADuM7801 and ADuM7811 have the same ±320 mV full-scale input range
as the ADuM7701, and the ADuM7802 and ADuM7812 have the same ±64 mV
full-scale input range as the ADuM7702. Apart from that, software
handles them the same way. The ADuM780x support a master clock of up
to 25 MHz and the ADuM781x of up to 50 MHz, which needs no special
handling. Use the ADuM7701 and ADuM7702 as fallback compatibles.
Signed-off-by: Pop Ioan Daniel <pop.ioan-daniel@analog.com>
---
changes in v2:
- use adi,adum7701 as fallback compatible for ADuM7801/7811 and
adi,adum7702 for ADuM7802/7812
.../bindings/iio/adc/adi,ad7405.yaml | 25 +++++++++++++++----
1 file changed, 20 insertions(+), 5 deletions(-)
diff --git a/Documentation/devicetree/bindings/iio/adc/adi,ad7405.yaml b/Documentation/devicetree/bindings/iio/adc/adi,ad7405.yaml
index 57f0970257050..41eef107e9f0d 100644
--- a/Documentation/devicetree/bindings/iio/adc/adi,ad7405.yaml
+++ b/Documentation/devicetree/bindings/iio/adc/adi,ad7405.yaml
@@ -20,14 +20,29 @@ description: |
https://www.analog.com/media/en/technical-documentation/data-sheets/adum7701.pdf
https://www.analog.com/media/en/technical-documentation/data-sheets/adum7702.pdf
https://www.analog.com/media/en/technical-documentation/data-sheets/ADuM7703.pdf
+ https://www.analog.com/media/en/technical-documentation/data-sheets/adum7801.pdf
+ https://www.analog.com/media/en/technical-documentation/data-sheets/adum7802.pdf
+ https://www.analog.com/media/en/technical-documentation/data-sheets/adum7811.pdf
+ https://www.analog.com/media/en/technical-documentation/data-sheets/adum7812.pdf
properties:
compatible:
- enum:
- - adi,ad7405
- - adi,adum7701
- - adi,adum7702
- - adi,adum7703
+ oneOf:
+ - enum:
+ - adi,ad7405
+ - adi,adum7701
+ - adi,adum7702
+ - adi,adum7703
+ - items:
+ - enum:
+ - adi,adum7801
+ - adi,adum7811
+ - const: adi,adum7701
+ - items:
+ - enum:
+ - adi,adum7802
+ - adi,adum7812
+ - const: adi,adum7702
clocks:
maxItems: 1
--
2.34.1
^ permalink raw reply [flat|nested] 4+ messages in thread* [PATCH v2 2/2] iio: adc: ad7405: Add support for ADuM7801/7802/7811/7812
2026-11-05 9:35 [PATCH v2 0/2] iio: adc: ad7405: Add ADuM7801/7802/7811/7812 support Pop Ioan Daniel
2026-11-05 9:35 ` [PATCH v2 1/2] dt-bindings: " Pop Ioan Daniel
@ 2026-11-05 9:35 ` Pop Ioan Daniel
2026-11-05 12:16 ` Andy Shevchenko
1 sibling, 1 reply; 4+ messages in thread
From: Pop Ioan Daniel @ 2026-11-05 9:35 UTC (permalink / raw)
To: jic23
Cc: Nuno Sá,
Michael Hennerich, David Lechner, Andy Shevchenko, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Dragos Bogdan, Ioan Daniel,
linux, linux-iio, devicetree, linux-kernel
Add a chip information structure and a device tree match table entry
for each of the ADuM7801, ADuM7802, ADuM7811 and ADuM7812. These parts
are handled the same way as the existing ADuM770x devices and differ
only in their full-scale input range: ±320 mV for the ADuM7801 and
ADuM7811, and ±64 mV for the ADuM7802 and ADuM7812.
The device tree binding lists the ADuM7701 and ADuM7702 as fallback
compatibles, so the driver can handle these parts through the fallback
alone. The dedicated entries are added so that the IIO device reports
the real part name instead of the name of the fallback part.
Rework the Kconfig help text to list one supported part per line, so
that new parts can be added without rewrapping the text, and make the
prompt generic instead of naming only the AD7405.
Signed-off-by: Pop Ioan Daniel <pop.ioan-daniel@analog.com>
---
changes in v2:
- keep dedicated match entries so the IIO device reports the real
part name (the binding now has fallback compatibles)
- list one supported part per line in the Kconfig help text
- make the Kconfig prompt generic instead of naming only the AD7405
drivers/iio/adc/Kconfig | 14 +++++++++++---
drivers/iio/adc/ad7405.c | 24 ++++++++++++++++++++++++
2 files changed, 35 insertions(+), 3 deletions(-)
diff --git a/drivers/iio/adc/Kconfig b/drivers/iio/adc/Kconfig
index f8456c8039883..bdcb1f5c9a218 100644
--- a/drivers/iio/adc/Kconfig
+++ b/drivers/iio/adc/Kconfig
@@ -355,11 +355,19 @@ config AD7380
called ad7380.
config AD7405
- tristate "Analog Devices AD7405 ADC Driver"
+ tristate "Analog Devices AD7405 and similar isolated sigma-delta modulators driver"
depends on IIO_BACKEND
help
- Say yes here to build support for Analog Devices AD7405, ADUM7701,
- ADUM7702, ADUM7703 analog to digital converters (ADC).
+ Say yes here to build support for Analog Devices isolated
+ sigma-delta modulators:
+ - AD7405
+ - ADuM7701
+ - ADuM7702
+ - ADuM7703
+ - ADuM7801
+ - ADuM7802
+ - ADuM7811
+ - ADuM7812
To compile this driver as a module, choose M here: the module will be
called ad7405.
diff --git a/drivers/iio/adc/ad7405.c b/drivers/iio/adc/ad7405.c
index 0996f48d76f1e..ee9873b47a84f 100644
--- a/drivers/iio/adc/ad7405.c
+++ b/drivers/iio/adc/ad7405.c
@@ -158,6 +158,26 @@ static const struct ad7405_chip_info adum7703_chip_info = {
.full_scale_mv = 320,
};
+static const struct ad7405_chip_info adum7801_chip_info = {
+ .name = "adum7801",
+ .full_scale_mv = 320,
+};
+
+static const struct ad7405_chip_info adum7802_chip_info = {
+ .name = "adum7802",
+ .full_scale_mv = 64,
+};
+
+static const struct ad7405_chip_info adum7811_chip_info = {
+ .name = "adum7811",
+ .full_scale_mv = 320,
+};
+
+static const struct ad7405_chip_info adum7812_chip_info = {
+ .name = "adum7812",
+ .full_scale_mv = 64,
+};
+
static const char * const ad7405_power_supplies[] = {
"vdd1", "vdd2",
};
@@ -232,6 +252,10 @@ static const struct of_device_id ad7405_of_match[] = {
{ .compatible = "adi,adum7701", .data = &adum7701_chip_info, },
{ .compatible = "adi,adum7702", .data = &adum7702_chip_info, },
{ .compatible = "adi,adum7703", .data = &adum7703_chip_info, },
+ { .compatible = "adi,adum7801", .data = &adum7801_chip_info, },
+ { .compatible = "adi,adum7802", .data = &adum7802_chip_info, },
+ { .compatible = "adi,adum7811", .data = &adum7811_chip_info, },
+ { .compatible = "adi,adum7812", .data = &adum7812_chip_info, },
{ }
};
MODULE_DEVICE_TABLE(of, ad7405_of_match);
--
2.34.1
^ permalink raw reply [flat|nested] 4+ messages in thread