From: Krzysztof Kozlowski <krzk@kernel.org>
To: radu.sabau@analog.com, "Lars-Peter Clausen" <lars@metafoo.de>,
"Michael Hennerich" <Michael.Hennerich@analog.com>,
"Jonathan Cameron" <jic23@kernel.org>,
"David Lechner" <dlechner@baylibre.com>,
"Nuno Sá" <nuno.sa@analog.com>,
"Andy Shevchenko" <andy@kernel.org>,
"Rob Herring" <robh@kernel.org>,
"Krzysztof Kozlowski" <krzk+dt@kernel.org>,
"Conor Dooley" <conor+dt@kernel.org>,
"Uwe Kleine-König" <ukleinek@kernel.org>,
"Liam Girdwood" <lgirdwood@gmail.com>,
"Mark Brown" <broonie@kernel.org>,
"Linus Walleij" <linusw@kernel.org>,
"Bartosz Golaszewski" <brgl@kernel.org>
Cc: linux-iio@vger.kernel.org, devicetree@vger.kernel.org,
linux-kernel@vger.kernel.org, linux-pwm@vger.kernel.org,
linux-gpio@vger.kernel.org
Subject: Re: [PATCH 1/4] dt-bindings: iio: adc: add bindings for AD4691 family
Date: Thu, 5 Mar 2026 13:44:22 +0100 [thread overview]
Message-ID: <d77de930-d988-40ad-9b29-9bfe8f4584df@kernel.org> (raw)
In-Reply-To: <20260305-ad4692-multichannel-sar-adc-driver-v1-1-336229a8dcc7@analog.com>
On 05/03/2026 13:23, Radu Sabau via B4 Relay wrote:
> From: Radu Sabau <radu.sabau@analog.com>
>
> Add YAML bindings and dt-bindings header for the Analog Devices AD4691
There are no such thing as YAML bindings. DT bindings.
> family of multichannel SAR ADCs (AD4691, AD4692, AD4693, AD4694).
>
> The binding describes five operating modes selectable via the
No, describe the hardware, not binding.
A nit, subject: drop second/last, redundant "bindings". The
"dt-bindings" prefix is already stating that these are bindings.
See also:
https://elixir.bootlin.com/linux/v6.17-rc3/source/Documentation/devicetree/bindings/submitting-patches.rst#L18
> adi,spi-mode property, optional PWM/clock for CNV Clock and CNV Burst
> modes, GPIO pins, voltage supplies and the trigger-source interface for
> SPI Engine offload operation.
>
> Signed-off-by: Radu Sabau <radu.sabau@analog.com>
> ---
> .../devicetree/bindings/iio/adc/adi,ad4691.yaml | 278 +++++++++++++++++++++
> MAINTAINERS | 8 +
> include/dt-bindings/iio/adc/adi,ad4691.h | 13 +
> 3 files changed, 299 insertions(+)
>
> diff --git a/Documentation/devicetree/bindings/iio/adc/adi,ad4691.yaml b/Documentation/devicetree/bindings/iio/adc/adi,ad4691.yaml
> new file mode 100644
> index 000000000000..b0d8036184b0
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/iio/adc/adi,ad4691.yaml
> @@ -0,0 +1,278 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/iio/adc/adi,ad4691.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Analog Devices AD4691 Family Multichannel SAR ADCs
> +
> +maintainers:
> + - Radu Sabau <radu.sabau@analog.com>
> +
> +description: |
> + The AD4691 family are high-speed, low-power, multichannel successive
> + approximation register (SAR) analog-to-digital converters (ADCs) with
> + an SPI-compatible serial interface. The family supports multiple operating
> + modes including CNV Clock Mode, CNV Burst Mode, Autonomous Mode, SPI Burst
> + Mode, and Manual Mode.
> +
> + The driver supports both standard SPI and SPI Engine (offload) operation.
Driver is irrelevant. If you change mode, you change bindings?
> +
> + Datasheets:
> + * https://www.analog.com/en/products/ad4692.html
> + * https://www.analog.com/en/products/ad4691.html
> + * https://www.analog.com/en/products/ad4694.html
> + * https://www.analog.com/en/products/ad4693.html
> +
> +$ref: /schemas/spi/spi-peripheral-props.yaml#
> +
> +properties:
> + compatible:
> + enum:
> + - adi,ad4691
> + - adi,ad4692
> + - adi,ad4693
> + - adi,ad4694
> +
> + reg:
> + maxItems: 1
> +
> + spi-max-frequency:
> + maximum: 40000000
> +
> + spi-cpol: true
> + spi-cpha: true
> +
> + adi,spi-mode:
> + $ref: /schemas/types.yaml#/definitions/uint32
Nope. You already have such property, so you cannot redefine it. Look at
other sources.
...
> + clocks:
> + description: Reference clock for PWM timing in CNV Clock and CNV Burst modes.
> + maxItems: 1
> +
> + clock-names:
Drop clock-names. Not useful if you call it just ref.
> + items:
> + - const: ref_clk
> +
> + pwms:
> + description:
> + PWM connected to the CNV pin. Required for CNV Clock Mode and CNV Burst
> + Mode to control conversion timing.
> + maxItems: 1
> +
> + pwm-names:
> + items:
> + - const: cnv
> +
> + interrupts:
> + description:
> + Interrupt from the GP0 pin configured as DATA_READY or BUSY. Required
> + for non-offload operation in all modes except Manual Mode (mode 4),
> + where CNV is tied to CS and no DATA_READY signal is generated.
> + maxItems: 1
> +
> + interrupt-names:
> + items:
> + - const: DRDY
Lowercase. Or actually drop names...
> +
> + '#trigger-source-cells':
> + description: |
> + For SPI Engine offload operation, this node acts as a trigger source.
> + Two cells are required:
> + - First cell: Trigger event type (0 = BUSY, 1 = DATA_READY)
> + - Second cell: GPIO pin number (only 0 = GP0 is supported)
> +
> + Macros are available in dt-bindings/iio/adc/adi,ad4691.h:
> + AD4691_TRIGGER_EVENT_BUSY, AD4691_TRIGGER_EVENT_DATA_READY
> + AD4691_TRIGGER_PIN_GP0
> + const: 2
> +
> +required:
> + - compatible
> + - reg
> + - adi,spi-mode
> + - vio-supply
> + - reset-gpios
> +
> +allOf:
> + # vref-supply and vrefin-supply are mutually exclusive, one is required
> + - oneOf:
> + - required:
> + - vref-supply
> + - required:
> + - vrefin-supply
> +
> + # AD4694 (20-bit) does not support Manual Mode
> + - if:
> + properties:
> + compatible:
> + const: adi,ad4694
> + then:
> + properties:
> + adi,spi-mode:
> + enum: [0, 1, 2, 3]
> +
> + # CNV Clock Mode and CNV Burst Mode require PWM and clock
> + - if:
> + properties:
> + adi,spi-mode:
> + enum: [0, 1]
> + then:
> + required:
> + - clocks
> + - clock-names
> + - pwms
> + - pwm-names
> +
> + # Non-Manual modes (0-3) without SPI offload require a DRDY interrupt.
> + # Offload configurations expose '#trigger-source-cells' instead.
> + - if:
> + properties:
> + adi,spi-mode:
> + enum: [0, 1, 2, 3]
> + not:
> + required:
> + - '#trigger-source-cells'
> + then:
> + required:
> + - interrupts
> + - interrupt-names
> +
> +unevaluatedProperties: false
> +
> +examples:
> + - |
> + #include <dt-bindings/gpio/gpio.h>
> + #include <dt-bindings/iio/adc/adi,ad4691.h>
> +
> + /* Example: AD4692 in CNV Clock Mode with standard SPI */
> + spi {
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + adc@0 {
> + compatible = "adi,ad4692";
> + reg = <0>;
> + spi-cpol;
> + spi-cpha;
> + spi-max-frequency = <40000000>;
> +
> + adi,spi-mode = <0>; /* CNV Clock Mode */
> +
> + vio-supply = <&vio_supply>;
> + vref-supply = <&vref_5v>;
> +
> + reset-gpios = <&gpio 10 GPIO_ACTIVE_HIGH>;
> + gp0-gpios = <&gpio 11 GPIO_ACTIVE_HIGH>;
> +
> + clocks = <&ref_clk>;
> + clock-names = "ref_clk";
> +
> + pwms = <&pwm_gen 0 0>;
> + pwm-names = "cnv";
> +
> + interrupts = <12 4>;
> + interrupt-names = "DRDY";
> + };
> + };
> +
> + - |
> + #include <dt-bindings/gpio/gpio.h>
> + #include <dt-bindings/iio/adc/adi,ad4691.h>
> +
> + /* Example: AD4692 in Manual Mode with SPI Engine offload */
> + spi {
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + adc@0 {
> + compatible = "adi,ad4692";
> + reg = <0>;
> + spi-cpol;
> + spi-cpha;
> + spi-max-frequency = <31250000>;
> +
> + adi,spi-mode = <4>; /* Manual Mode */
> +
> + vio-supply = <&vio_supply>;
> + vrefin-supply = <&vrefin_supply>;
> +
> + reset-gpios = <&gpio 10 GPIO_ACTIVE_HIGH>;
> + };
> + };
> +
> + - |
> + #include <dt-bindings/gpio/gpio.h>
> + #include <dt-bindings/iio/adc/adi,ad4691.h>
Where do you use the header?
Anyway, drop example, two are enough.
Best regards,
Krzysztof
next prev parent reply other threads:[~2026-03-05 12:44 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-03-05 12:23 [PATCH 0/4] iio: adc: ad4691: add driver for AD4691 multichannel SAR ADC family Radu Sabau
2026-03-05 12:23 ` Radu Sabau via B4 Relay
2026-03-05 12:23 ` [PATCH 1/4] dt-bindings: iio: adc: add bindings for AD4691 family Radu Sabau
2026-03-05 12:23 ` Radu Sabau via B4 Relay
2026-03-05 12:44 ` Krzysztof Kozlowski [this message]
2026-03-05 17:45 ` Jonathan Cameron
2026-03-06 11:55 ` Sabau, Radu bogdan
2026-03-07 18:48 ` David Lechner
2026-03-08 18:28 ` Jonathan Cameron
2026-03-09 8:57 ` Sabau, Radu bogdan
2026-03-09 14:34 ` David Lechner
2026-03-05 12:23 ` [PATCH 2/4] iio: adc: ad4691: add initial driver " Radu Sabau
2026-03-05 12:23 ` Radu Sabau via B4 Relay
2026-03-05 19:12 ` Jonathan Cameron
2026-03-06 17:30 ` Markus Elfring
2026-03-05 12:23 ` [PATCH 3/4] iio: adc: ad4691: add triggered buffer support Radu Sabau
2026-03-05 12:23 ` Radu Sabau via B4 Relay
2026-03-05 19:21 ` Jonathan Cameron
2026-03-05 12:23 ` [PATCH 4/4] iio: adc: ad4691: add SPI offload support Radu Sabau
2026-03-05 12:23 ` Radu Sabau via B4 Relay
2026-03-05 19:26 ` Jonathan Cameron
2026-03-06 12:05 ` [PATCH 0/4] iio: adc: ad4691: add driver for AD4691 multichannel SAR ADC family Andy Shevchenko
2026-03-06 12:39 ` Sabau, Radu bogdan
2026-03-06 14:33 ` Andy Shevchenko
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=d77de930-d988-40ad-9b29-9bfe8f4584df@kernel.org \
--to=krzk@kernel.org \
--cc=Michael.Hennerich@analog.com \
--cc=andy@kernel.org \
--cc=brgl@kernel.org \
--cc=broonie@kernel.org \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=dlechner@baylibre.com \
--cc=jic23@kernel.org \
--cc=krzk+dt@kernel.org \
--cc=lars@metafoo.de \
--cc=lgirdwood@gmail.com \
--cc=linusw@kernel.org \
--cc=linux-gpio@vger.kernel.org \
--cc=linux-iio@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pwm@vger.kernel.org \
--cc=nuno.sa@analog.com \
--cc=radu.sabau@analog.com \
--cc=robh@kernel.org \
--cc=ukleinek@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.