[PATCH v2 1/2] dt-bindings: iio: adc: Add Nuvoton MA35D1 EADC
From: Chi-Wen Weng
Date: Mon Jul 13 2026 - 04:27:50 EST
From: Chi-Wen Weng <cwweng@xxxxxxxxxxx>
Add devicetree binding for the Enhanced ADC controller found on
Nuvoton MA35D1 SoCs.
The controller has one register region, up to four end-of-conversion
interrupts, one functional clock, and an optional reset line. The
binding also describes the optional external reference supply and the
optional DMA request supported by the hardware.
ADC input pins are described using standard channel child nodes. The
external ADC input channels are 0 to 7. Differential inputs are described
with diff-channels and are limited to the fixed hardware pairs.
Signed-off-by: Chi-Wen Weng <cwweng@xxxxxxxxxxx>
---
.../bindings/iio/adc/nuvoton,ma35d1-eadc.yaml | 163 ++++++++++++++++++
1 file changed, 163 insertions(+)
create mode 100644 Documentation/devicetree/bindings/iio/adc/nuvoton,ma35d1-eadc.yaml
diff --git a/Documentation/devicetree/bindings/iio/adc/nuvoton,ma35d1-eadc.yaml b/Documentation/devicetree/bindings/iio/adc/nuvoton,ma35d1-eadc.yaml
new file mode 100644
index 000000000000..1be5470643d1
--- /dev/null
+++ b/Documentation/devicetree/bindings/iio/adc/nuvoton,ma35d1-eadc.yaml
@@ -0,0 +1,163 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/iio/adc/nuvoton,ma35d1-eadc.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Nuvoton MA35D1 Enhanced Analog to Digital Converter
+
+maintainers:
+ - Chi-Wen Weng <cwweng@xxxxxxxxxxx>
+
+description:
+ The Nuvoton MA35D1 Enhanced Analog to Digital Converter is a 12-bit
+ ADC controller with 8 external input channels, 4 fixed differential
+ input pairs and 1 internal VBAT input. Board wired ADC inputs are
+ described using channel child nodes.
+
+properties:
+ compatible:
+ const: nuvoton,ma35d1-eadc
+
+ reg:
+ maxItems: 1
+
+ interrupts:
+ minItems: 1
+ maxItems: 4
+ items:
+ - description: ADINT0 end-of-conversion interrupt
+ - description: ADINT1 end-of-conversion interrupt
+ - description: ADINT2 end-of-conversion interrupt
+ - description: ADINT3 end-of-conversion interrupt
+
+ clocks:
+ maxItems: 1
+
+ resets:
+ maxItems: 1
+
+ vref-supply:
+ description:
+ External reference voltage supply connected to the VREF pin. If this
+ property is omitted, the internal 1.6 V reference is used.
+
+ dmas:
+ maxItems: 1
+
+ dma-names:
+ const: rx
+
+ '#address-cells':
+ const: 1
+
+ '#size-cells':
+ const: 0
+
+patternProperties:
+ '^channel@[0-7]$':
+ type: object
+ $ref: adc.yaml
+ unevaluatedProperties: false
+
+ properties:
+ reg:
+ maximum: 7
+
+ diff-channels: true
+
+ allOf:
+ - if:
+ properties:
+ reg:
+ const: 0
+ then:
+ properties:
+ diff-channels:
+ items:
+ - const: 0
+ - const: 4
+ - if:
+ properties:
+ reg:
+ const: 1
+ then:
+ properties:
+ diff-channels:
+ items:
+ - const: 1
+ - const: 5
+ - if:
+ properties:
+ reg:
+ const: 2
+ then:
+ properties:
+ diff-channels:
+ items:
+ - const: 2
+ - const: 6
+ - if:
+ properties:
+ reg:
+ const: 3
+ then:
+ properties:
+ diff-channels:
+ items:
+ - const: 3
+ - const: 7
+ - if:
+ properties:
+ reg:
+ enum: [4, 5, 6, 7]
+ then:
+ not:
+ required:
+ - diff-channels
+
+ required:
+ - reg
+
+required:
+ - compatible
+ - reg
+ - interrupts
+ - clocks
+ - '#address-cells'
+ - '#size-cells'
+
+additionalProperties: false
+
+examples:
+ - |
+ #include <dt-bindings/clock/nuvoton,ma35d1-clk.h>
+ #include <dt-bindings/interrupt-controller/arm-gic.h>
+ #include <dt-bindings/interrupt-controller/irq.h>
+ #include <dt-bindings/reset/nuvoton,ma35d1-reset.h>
+
+ soc {
+ #address-cells = <2>;
+ #size-cells = <2>;
+
+ adc@40430000 {
+ compatible = "nuvoton,ma35d1-eadc";
+ reg = <0x0 0x40430000 0x0 0x10000>;
+ interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&clk EADC_GATE>;
+ resets = <&reset MA35D1_RESET_EADC0>;
+
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ channel@0 {
+ reg = <0>;
+ };
+
+ channel@2 {
+ reg = <2>;
+ diff-channels = <2 6>;
+ };
+ };
+ };
+...
--
2.25.1