Devicetree
 help / color / mirror / Atom feed
From: David Lechner <dlechner@baylibre.com>
To: "Janani Sunil" <janani.sunil@analog.com>,
	"Nuno Sá" <nuno.sa@analog.com>,
	"Michael Hennerich" <Michael.Hennerich@analog.com>,
	"Jonathan Cameron" <jic23@kernel.org>,
	"Andy Shevchenko" <andy@kernel.org>,
	"Rob Herring" <robh@kernel.org>,
	"Krzysztof Kozlowski" <krzk+dt@kernel.org>,
	"Conor Dooley" <conor+dt@kernel.org>,
	"Olivier Moysan" <olivier.moysan@foss.st.com>,
	"Philipp Zabel" <p.zabel@pengutronix.de>,
	"Linus Walleij" <linusw@kernel.org>,
	"Bartosz Golaszewski" <brgl@kernel.org>,
	"Jonathan Corbet" <corbet@lwn.net>,
	"Shuah Khan" <skhan@linuxfoundation.org>
Cc: linux@analog.com, linux-iio@vger.kernel.org,
	devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-gpio@vger.kernel.org, linux-doc@vger.kernel.org,
	jananisunil.dev@gmail.com
Subject: Re: [PATCH 1/6] dt-bindings: iio: adc: Add AD7768
Date: Thu, 9 Jul 2026 10:43:27 -0500	[thread overview]
Message-ID: <36df7c4f-82ea-4ed5-a4f9-3a29c75dc99a@baylibre.com> (raw)
In-Reply-To: <20260709-ad7768-driver-v1-1-44e1194fd96a@analog.com>

On 7/9/26 3:50 AM, Janani Sunil wrote:
> Devicetree Bindings for AD7768-4 (4 channel) and AD7768 (8 channel)
> simultaneous sampling ADC
> 
> Signed-off-by: Janani Sunil <janani.sunil@analog.com>
> ---
>  .../devicetree/bindings/iio/adc/adi,ad7768.yaml    | 285 +++++++++++++++++++++
>  MAINTAINERS                                        |   7 +
>  2 files changed, 292 insertions(+)
> 
> diff --git a/Documentation/devicetree/bindings/iio/adc/adi,ad7768.yaml b/Documentation/devicetree/bindings/iio/adc/adi,ad7768.yaml
> new file mode 100644
> index 000000000000..b74fe6aef01c
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/iio/adc/adi,ad7768.yaml
> @@ -0,0 +1,285 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/iio/adc/adi,ad7768.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Analog Devices AD7768 and AD7768-4 ADC
> +
> +maintainers:
> +  - Janani Sunil <janani.sunil@analog.com>
> +
> +description: |
> +  The AD7768 is a 8-channel, 24-bit simultaneous sampling ADC with configurable
> +  power and performance modes. The AD7768-4 is a 4-channel version.

Probably worth mentioning that this binding is for SPI mode, not for pin control
mode.

And that the io-backend is for the data output interface, so consumes the DOUTx,
DCLK, DRDY. Maybe also START? And SYNC_{IN,OUT}?

> +
> +  Datasheet at:
> +    https://www.analog.com/media/en/technical-documentation/data-sheets/ad7768.pdf

A link to the example HDL project for the io-backend would be helpful too.

> +
> +properties:
> +  compatible:
> +    enum:
> +      - adi,ad7768
> +      - adi,ad7768-4
> +
> +  reg:
> +    maxItems: 1
> +
> +  clocks:
> +    maxItems: 1
> +    description: Master clock (MCLK)

Could also be XTAL{1,2}.

> +
> +  avdd-supply:
> +    description: Analog power supply AVDD1 (4.5V to 5.5V)
> +
> +  avss-supply:
> +    description: Analog ground/negative supply AVSS (0V to -2.75V)
> +

What about AV{DD,SS}{1,2}{A,B} supplies?

> +  dvdd-supply:
> +    description: Analog power supply AVDD2 (2.0V to 5.5V)
> +
> +  iovdd-supply:
> +    description: Digital I/O power supply (1.8V or 2.25V to 3.6V)
> +
> +  vref-supply:
> +    description: ADC reference voltage supply

There is more that one reference voltage input. so ref1-supply, ref2-supply.

vref is the name of an internal signal, so doesn't make sense here.

> +
> +  reset-gpios:
> +    maxItems: 1
> +    description: GPIO connected to the active-low RESET pin
> +
> +  gpio-controller: true
> +
> +  '#gpio-cells':
> +    const: 2
> +
> +  adi,data-lines-number:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    enum: [1, 2, 4, 8]
> +    description:
> +      Number of data output lines used for serial interface.

This could be made a bit more clear that this is a secondary data
output interface, not the SPI lines.

> +      AD7768 supports 1, 2, or 8 lines. AD7768-4 supports 1 or 4 lines.
> +
> +  adi,common-mode-output:
> +    $ref: /schemas/types.yaml#/definitions/string
> +    enum:
> +      - avdd-avss-half
> +      - 1.65V
> +      - 2.5V
> +      - 2.14V
> +    description:
> +      Common mode voltage output selection.

Why not using standard regulator provider bindings for this?

> +
> +  adi,vcm-power-down:
> +    type: boolean
> +    description: Power down the common mode output buffer

Is the buffer separate from the output? In that case I would expect
buffer to be in the property name, otherwise this should just be
part of the enum options above (and the default one at that).

> +
> +  adi,power-mode:
> +    $ref: /schemas/types.yaml#/definitions/string
> +    enum:
> +      - low
> +      - median
> +      - fast
> +    description:
> +      Power mode selection.

Unless there are pins that control this, it seems like it should be
left up to the driver to decide how to set this.

In this case, it looks like the power mode also influences sample rate
which is normally something controlled at runtime.

> +
> +  io-backends:
> +    maxItems: 1
> +
> +  '#address-cells':
> +    const: 1
> +
> +  '#size-cells':
> +    const: 0
> +
> +patternProperties:
> +  "^channel@[0-7]$":
> +    type: object
> +    description: |
> +      Represents the external channels which are connected to the device.
> +      AD7768 supports channels 0-7, AD7768-4 supports channels 0-3.
> +
> +    properties:
> +      reg:
> +        minimum: 0
> +        maximum: 7
> +        description: The channel number
> +
> +      adi,ch-mode:
> +        $ref: /schemas/types.yaml#/definitions/uint32
> +        minimum: 0
> +        maximum: 1
> +        description: |
> +          Channel mode selection. The AD7768 supports two independent
> +          configuration profiles (Mode A and Mode B) for filter and
> +          decimation settings. Each channel can be assigned to either mode:
> +            0 - Channel uses Mode A filter and decimation settings
> +            1 - Channel uses Mode B filter and decimation settings

This could probably be handled in the driver. E.g. allow per-channel settings
that just get stored in a data structure. Then when starting a buffered read
check that all enabled channels have at most 2 different groups of settings.
Then do all of the required register config at that time.

> +
> +      adi,prebuf-pos-en:
> +        type: boolean
> +        description: Enable positive input precharge buffer
> +
> +      adi,prebuf-neg-en:
> +        type: boolean
> +        description: Enable negative input precharge buffer
> +
> +      adi,refbuf-pos-en:
> +        type: boolean
> +        description: Enable positive reference buffer
> +
> +      adi,refbuf-neg-en:
> +        type: boolean
> +        description: Enable negative reference buffer
> +
> +    required:
> +      - reg
> +      - adi,ch-mode
> +
> +    additionalProperties: false
> +
> +required:
> +  - compatible
> +  - reg
> +  - clocks
> +  - avdd-supply
> +  - avss-supply
> +  - dvdd-supply
> +  - iovdd-supply
> +  - vref-supply

> +  - adi,data-lines-number

Suggest making the highest number of lines the default instead
of making this property required.


> +  - adi,common-mode-output

Should probably default to disabled, unless it is always used?
Changing it to a regulator provider makes this not relevant.

> +  - io-backends
> +

  parent reply	other threads:[~2026-07-09 15:43 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-07-09  8:50 [PATCH 0/6] iio: adc: Add AD7768/AD7768-4 ADC driver support Janani Sunil
2026-07-09  8:50 ` [PATCH 1/6] dt-bindings: iio: adc: Add AD7768 Janani Sunil
2026-07-09  8:59   ` sashiko-bot
2026-07-09 15:43   ` David Lechner [this message]
2026-07-10  0:33     ` Jonathan Cameron
2026-07-11 14:40       ` David Lechner
2026-07-10  1:39   ` Jonathan Cameron
2026-07-09  8:50 ` [PATCH 2/6] iio: backend: Add support for CRC Janani Sunil
2026-07-09  9:03   ` sashiko-bot
2026-07-10  0:36   ` Jonathan Cameron
2026-07-09  8:50 ` [PATCH 3/6] iio: adc: adi-axi-adc: " Janani Sunil
2026-07-09  9:14   ` sashiko-bot
2026-07-09 15:54   ` David Lechner
2026-07-10  0:39   ` Jonathan Cameron
2026-07-10  0:46   ` Jonathan Cameron
2026-07-09  8:50 ` [PATCH 4/6] iio: adc: Add AD7768 IIO Driver support Janani Sunil
2026-07-09  9:27   ` sashiko-bot
2026-07-10  2:10   ` Jonathan Cameron
2026-07-10  7:41   ` Uwe Kleine-König
2026-07-09  8:50 ` [PATCH 5/6] gpio: ad7768: Add AD7768 GPIO auxiliary driver Janani Sunil
2026-07-09  9:38   ` sashiko-bot
2026-07-09 11:05   ` Andy Shevchenko
2026-07-10  2:14   ` Jonathan Cameron
2026-07-10 20:06   ` Linus Walleij
2026-07-09  8:50 ` [PATCH 6/6] Documentation: iio: Add AD7768 Documentation Janani Sunil
2026-07-09  9:41   ` sashiko-bot
2026-07-10  2:16   ` Jonathan Cameron

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=36df7c4f-82ea-4ed5-a4f9-3a29c75dc99a@baylibre.com \
    --to=dlechner@baylibre.com \
    --cc=Michael.Hennerich@analog.com \
    --cc=andy@kernel.org \
    --cc=brgl@kernel.org \
    --cc=conor+dt@kernel.org \
    --cc=corbet@lwn.net \
    --cc=devicetree@vger.kernel.org \
    --cc=janani.sunil@analog.com \
    --cc=jananisunil.dev@gmail.com \
    --cc=jic23@kernel.org \
    --cc=krzk+dt@kernel.org \
    --cc=linusw@kernel.org \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-gpio@vger.kernel.org \
    --cc=linux-iio@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux@analog.com \
    --cc=nuno.sa@analog.com \
    --cc=olivier.moysan@foss.st.com \
    --cc=p.zabel@pengutronix.de \
    --cc=robh@kernel.org \
    --cc=skhan@linuxfoundation.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox