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

title: AD7476 and similar simple SPI ADCs from multiple manufacturers.

maintainers:
  - Michael Hennerich <michael.hennerich@analog.com>

description: |
  A lot of simple SPI ADCs have very straight forward interfaces.
  They typically don't provide a MOSI pin, simply reading out data
  on MISO when the clock toggles.

properties:
  compatible:
    enum:
      - adi,ad7091
      - adi,ad7091r
      - adi,ad7273
      - adi,ad7274
      - adi,ad7276
      - adi,ad7277
      - adi,ad7278
      - adi,ad7466
      - adi,ad7467
      - adi,ad7468
      - adi,ad7475
      - adi,ad7476
      - adi,ad7476a
      - adi,ad7477
      - adi,ad7477a
      - adi,ad7478
      - adi,ad7478a
      - adi,ad7495
      - adi,ad7910
      - adi,ad7920
      - adi,ad7940
      - ti,adc081s
      - ti,adc101s
      - ti,adc121s
      - ti,ads7866
      - ti,ads7867
      - ti,ads7868
      - lltc,ltc2314-14

  reg:
    maxItems: 1

  vcc-supply:
    description:
      Main powersupply voltage for the chips, sometimes referred to as VDD on
      datasheets.  If there is no separate vref-supply, then this is needed
      to establish channel scaling.

  vdrive-supply:
    description:
      Some devices have separate supply for their digital control side.

  vref-supply:
    description:
      Some devices have a specific reference voltage supplied on a different pin
      to the other supplies. Needed to be able to establish channel scaling
      unless there is also an internal reference available (e.g. ad7091r)

  adi,conversion-start-gpios:
    description: A GPIO used to trigger the start of a conversion
    maxItems: 1

required:
  - compatible
  - reg

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

  # Devices where reference is vcc
  - if:
      properties:
        compatible:
          contains:
            enum:
              - adi,ad7091
              - adi,ad7276
              - adi,ad7277
              - adi,ad7278
              - adi,ad7466
              - adi,ad7467
              - adi,ad7468
              - adi,ad7940
              - ti,adc081s
              - ti,adc101s
              - ti,adc121s
              - ti,ads7866
              - ti,ads7868
    then:
      required:
        - vcc-supply
  # Devices with a vref
  - if:
      properties:
        compatible:
          contains:
            enum:
              - adi,ad7091r
              - adi,ad7273
              - adi,ad7274
              - adi,ad7475
              - lltc,ltc2314-14
    then:
      properties:
        vref-supply: true
    else:
      properties:
        vref-supply: false
  # Devices with a vref where it is not optional
  - if:
      properties:
        compatible:
          contains:
            enum:
              - adi,ad7273
              - adi,ad7274
              - adi,ad7475
              - lltc,ltc2314-14
    then:
      required:
        - vref-supply
  - if:
      properties:
        compatible:
          contains:
            enum:
              - adi,ad7475
              - adi,ad7495
    then:
      properties:
        vdrive-supply: true
    else:
      properties:
        vdrive-supply: false
  - if:
      properties:
        compatible:
          contains:
            enum:
              - adi,ad7091
              - adi,ad7091r
    then:
      properties:
        adi,conversion-start-gpios: true
    else:
      properties:
        adi,conversion-start-gpios: false

unevaluatedProperties: false

examples:
  - |
    spi {
      #address-cells = <1>;
      #size-cells = <0>;

      adc@0 {
        compatible = "adi,ad7091r";
        reg = <0>;
        spi-max-frequency = <5000000>;
        vcc-supply = <&adc_vcc>;
        vref-supply = <&adc_vref>;
      };
    };
...
