[PATCH v4 1/2] dt-bindings: iio: adc: Add Nuvoton MA35D1 EADC

Rob Herring robh at kernel.org
Tue Nov 10 11:08:27 PST 2026


On Wed, Nov 04, 2026 at 05:11:35PM +0800, Chi-Wen Weng wrote:
> From: Chi-Wen Weng <cwweng at nuvoton.com>
> 
> Add a binding for the Enhanced Analog-to-Digital Converter found on
> Nuvoton MA35D1 SoCs.
> 
> The controller has eight external analog inputs. They can be used as
> single-ended inputs or as the four fixed differential pairs 0-4, 1-5,
> 2-6 and 3-7.
> 
> Use the common ADC channel properties to describe the physical input
> independently of the logical channel index.
> 
> Signed-off-by: Chi-Wen Weng <cwweng at nuvoton.com>
> ---
>  .../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..85b0feac0236
> --- /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 at nuvoton.com>
> +
> +description: |
> +  The Nuvoton MA35D1 Enhanced Analog-to-Digital Converter (EADC) is a
> +  12-bit successive approximation converter with eight external analog
> +  inputs and one internally connected VBAT input.
> +
> +  The external inputs can be used as eight single-ended channels or as
> +  four fixed differential pairs: 0-4, 1-5, 2-6 and 3-7. The internally
> +  connected VBAT input is not described by a channel child node.
> +
> +  The controller provides four interrupt outputs, ADINT0 through ADINT3.
> +
> +properties:
> +  compatible:
> +    const: nuvoton,ma35d1-eadc
> +
> +  reg:
> +    maxItems: 1
> +
> +  interrupts:
> +    items:
> +      - description: ADINT0
> +      - description: ADINT1
> +      - description: ADINT2
> +      - description: ADINT3
> +
> +  clocks:
> +    maxItems: 1
> +
> +  resets:
> +    maxItems: 1
> +
> +  vref-supply:
> +    description:
> +      Optional external reference voltage connected to the VREF pin. If this
> +      supply is absent, the controller uses its internal 1.6 V reference.
> +
> +  dmas:
> +    maxItems: 1
> +
> +  dma-names:
> +    const: rx
> +
> +  '#io-channel-cells':
> +    const: 1
> +    description:
> +      The cell selects the logical EADC channel identified by the reg value
> +      of the corresponding channel child node.
> +
> +  '#address-cells':
> +    const: 1
> +
> +  '#size-cells':
> +    const: 0
> +
> +patternProperties:
> +  '^channel@[0-7]$':
> +    type: object
> +    $ref: /schemas/iio/adc/adc.yaml#
> +    description: |
> +      External EADC channel description. The reg property identifies the
> +      logical IIO channel index.
> +
> +      A single-ended channel may use single-channel to select an external
> +      analog input independently of reg. If single-channel and diff-channels
> +      are both absent, the external analog input is selected by reg.
> +
> +      A differential channel uses diff-channels to select one of the fixed
> +      hardware input pairs: 0-4, 1-5, 2-6 or 3-7. Each single-ended input
> +      and each differential input pair may be described at most once.
> +
> +    properties:
> +      reg:
> +        maximum: 7
> +
> +      single-channel:
> +        maximum: 7
> +
> +      diff-channels:
> +        oneOf:
> +          - items:
> +              - const: 0
> +              - const: 4
> +          - items:
> +              - const: 1
> +              - const: 5
> +          - items:
> +              - const: 2
> +              - const: 6
> +          - items:
> +              - const: 3
> +              - const: 7
> +
> +    allOf:
> +      - not:
> +          required:
> +            - single-channel
> +            - diff-channels
> +
> +    required:
> +      - reg

The allOf and required are effectively covered by adc.yaml already.

Rob



More information about the linux-arm-kernel mailing list