# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/iio/adc/adi,ad7779.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Analog Devices AD777X family 8-Channel, 24-Bit, Simultaneous Sampling ADCs

maintainers:
  - Ramona Nechita <ramona.nechita@analog.com>

description: |
  The AD777X family consist of 8-channel, simultaneous sampling analog-to-
  digital converter (ADC). Eight full Σ-Δ ADCs are on-chip. The
  AD7771 provides an ultralow input current to allow direct sensor
  connection. Each input channel has a programmable gain stage
  allowing gains of 1, 2, 4, and 8 to map lower amplitude sensor
  outputs into the full-scale ADC input range, maximizing the
  dynamic range of the signal chain.

  https://www.analog.com/media/en/technical-documentation/data-sheets/ad7770.pdf
  https://www.analog.com/media/en/technical-documentation/data-sheets/ad7771.pdf
  https://www.analog.com/media/en/technical-documentation/data-sheets/ad7779.pdf

$ref: /schemas/spi/spi-peripheral-props.yaml#

properties:
  compatible:
    enum:
      - adi,ad7770
      - adi,ad7771
      - adi,ad7779

  reg:
    maxItems: 1

  '#address-cells':
    const: 1

  '#size-cells':
    const: 0

  clocks:
    maxItems: 1

  avdd1-supply:
    description: Front-End analog supply AVDD1. Can be used as conversion ref.

  avdd2-supply:
    description: AVDD2 Analog Supply from 2.2 V to 3.6 V.

  avdd4-supply:
    description: AVDD4 SAR Analog Supply and Reference Source.

  interrupts:
    minItems: 1
    items:
      - description: |
          adc_rdy: Interrupt line for DRDY signal which indicates the end of
          conversion independently of the interface selected to read back the
          Σ-∆ conversion.
      - description: |
          Alert: The chip includes self diagnostic features to guarantee the
          correct operation. If an error is detected, the ALERT pin is pulled
          high to generate an external interruption to the controller.

  interrupt-names:
    minItems: 1
    maxItems: 2
    items:
      enum:
        - adc_rdy
        - alert

  start-gpios:
    description:
      Pin that controls start synchronization pulse.
    maxItems: 1

  reset-gpios:
    maxItems: 1

required:
  - compatible
  - reg
  - clocks
  - interrupts

unevaluatedProperties: false

examples:
  - |
    #include <dt-bindings/gpio/gpio.h>
    #include <dt-bindings/interrupt-controller/irq.h>
    spi {
        #address-cells = <1>;
        #size-cells = <0>;

        adc@0 {
          compatible = "adi,ad7779";
          reg = <0>;
          start-gpios = <&gpio0 87 GPIO_ACTIVE_LOW>;
          reset-gpios = <&gpio0 93 GPIO_ACTIVE_LOW>;
          interrupt-parent = <&intc>;
          interrupts = <0 56 IRQ_TYPE_LEVEL_HIGH>;
          interrupt-names = "adc_rdy";
          clocks = <&adc_clk>;
        };
    };
...
