From: Chi-Wen Weng <cwweng.linux@gmail.com>
To: Rob Herring <robh@kernel.org>
Cc: jic23@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org,
dlechner@baylibre.com, nuno.sa@analog.com, andy@kernel.org,
linux-arm-kernel@lists.infradead.org, linux-iio@vger.kernel.org,
devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
cwweng@nuvoton.com
Subject: Re: [PATCH v4 1/2] dt-bindings: iio: adc: Add Nuvoton MA35D1 EADC
Date: Wed, 11 Nov 2026 10:15:51 +0800 [thread overview]
Message-ID: <f01f7e4b-8c71-461b-bd1f-28de2594abbc@gmail.com> (raw)
In-Reply-To: <20261110190827.GA1322356-robh@kernel.org>
Rob Herring 於 2026/11/11 上午 03:08 寫道:
> On Wed, Nov 04, 2026 at 05:11:35PM +0800, Chi-Wen Weng wrote:
>> From: Chi-Wen Weng <cwweng@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@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@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
Hi Rob,
> The allOf and required are effectively covered by adc.yaml already.
The channel-level required list is redundant; I'll remove it.
For the allOf, adc.yaml currently has:
anyOf:
- oneOf:
- required:
- reg
- diff-channels
- required:
- reg
- single-channel
- required:
- reg
When both single-channel and diff-channels are present, the inner
oneOf fails, but the reg-only branch still satisfies the outer anyOf.
Removing the local constraint would therefore allow both properties
together, which the driver rejects.
Should I keep the local check, or move the mutual-exclusion constraint
into adc.yaml?
Thanks,
Chi-Wen
next prev parent reply other threads:[~2026-11-11 2:15 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-11-04 9:11 [PATCH v4 0/2] iio: adc: Add Nuvoton MA35D1 EADC support Chi-Wen Weng
2026-11-04 9:11 ` [PATCH v4 1/2] dt-bindings: iio: adc: Add Nuvoton MA35D1 EADC Chi-Wen Weng
2026-11-04 9:18 ` sashiko-bot
2026-11-07 21:10 ` Jonathan Cameron
2026-11-10 19:08 ` Rob Herring
2026-11-11 2:15 ` Chi-Wen Weng [this message]
2026-11-11 14:09 ` Rob Herring
2026-11-04 9:11 ` [PATCH v4 2/2] iio: adc: Add Nuvoton MA35D1 EADC driver Chi-Wen Weng
2026-11-04 9:24 ` sashiko-bot
2026-11-04 11:50 ` Andy Shevchenko
2026-11-05 11:05 ` Chi-Wen Weng
2026-11-07 21:31 ` Jonathan Cameron
2026-11-11 2:08 ` Victor Chernyakin
2026-11-11 14:05 ` Andy Shevchenko
2026-11-12 1:26 ` Chi-Wen Weng
2026-11-11 17:10 ` Victor Chernyakin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=f01f7e4b-8c71-461b-bd1f-28de2594abbc@gmail.com \
--to=cwweng.linux@gmail.com \
--cc=andy@kernel.org \
--cc=conor+dt@kernel.org \
--cc=cwweng@nuvoton.com \
--cc=devicetree@vger.kernel.org \
--cc=dlechner@baylibre.com \
--cc=jic23@kernel.org \
--cc=krzk+dt@kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-iio@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=nuno.sa@analog.com \
--cc=robh@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.