# 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)

  spi-max-frequency: true

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

required:
  - compatible
  - reg

additionalProperties: false

allOf:
  # 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

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>;
      };
    };
...
