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

title: Analog Devices AD4000 and similar Analog to Digital Converters

maintainers:
  - Marcelo Schmitt <marcelo.schmitt@analog.com>

description: |
  Analog Devices AD4000 family of Analog to Digital Converters with SPI support.
  Specifications can be found at:
    https://www.analog.com/media/en/technical-documentation/data-sheets/ad4000-4004-4008.pdf
    https://www.analog.com/media/en/technical-documentation/data-sheets/ad4001-4005.pdf
    https://www.analog.com/media/en/technical-documentation/data-sheets/ad4002-4006-4010.pdf
    https://www.analog.com/media/en/technical-documentation/data-sheets/ad4003-4007-4011.pdf
    https://www.analog.com/media/en/technical-documentation/data-sheets/ad4020-4021-4022.pdf
    https://www.analog.com/media/en/technical-documentation/data-sheets/adaq4001.pdf
    https://www.analog.com/media/en/technical-documentation/data-sheets/adaq4003.pdf
    https://www.analog.com/media/en/technical-documentation/data-sheets/ad7685.pdf
    https://www.analog.com/media/en/technical-documentation/data-sheets/ad7686.pdf
    https://www.analog.com/media/en/technical-documentation/data-sheets/ad7687.pdf
    https://www.analog.com/media/en/technical-documentation/data-sheets/ad7688.pdf
    https://www.analog.com/media/en/technical-documentation/data-sheets/ad7690.pdf
    https://www.analog.com/media/en/technical-documentation/data-sheets/ad7691.pdf
    https://www.analog.com/media/en/technical-documentation/data-sheets/ad7693.pdf
    https://www.analog.com/media/en/technical-documentation/data-sheets/ad7942.pdf
    https://www.analog.com/media/en/technical-documentation/data-sheets/ad7946.pdf
    https://www.analog.com/media/en/technical-documentation/data-sheets/ad7980.pdf
    https://www.analog.com/media/en/technical-documentation/data-sheets/ad7982.pdf
    https://www.analog.com/media/en/technical-documentation/data-sheets/ad7983.pdf
    https://www.analog.com/media/en/technical-documentation/data-sheets/ad7984.pdf
    https://www.analog.com/media/en/technical-documentation/data-sheets/ad7988-1_7988-5.pdf

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

properties:
  compatible:
    oneOf:
      - enum:
          - adi,ad4000
          - adi,ad4001
          - adi,ad4002
          - adi,ad4003
          - adi,ad4020
          - adi,adaq4001
          - adi,adaq4003
          - adi,ad7687
          - adi,ad7691
          - adi,ad7942
          - adi,ad7946
          - adi,ad7983
      - items:
          - enum:
              - adi,ad4004
              - adi,ad4008
          - const: adi,ad4000
      - items:
          - enum:
              - adi,ad4005
          - const: adi,ad4001
      - items:
          - enum:
              - adi,ad4006
              - adi,ad4010
          - const: adi,ad4002
      - items:
          - enum:
              - adi,ad4007
              - adi,ad4011
          - const: adi,ad4003
      - items:
          - enum:
              - adi,ad4021
              - adi,ad4022
          - const: adi,ad4020
      - items:
          - enum:
              - adi,ad7685
              - adi,ad7686
              - adi,ad7980
              - adi,ad7988-1
              - adi,ad7988-5
          - const: adi,ad7983
      - items:
          - enum:
              - adi,ad7688
              - adi,ad7693
          - const: adi,ad7687
      - items:
          - enum:
              - adi,ad7690
              - adi,ad7982
              - adi,ad7984
          - const: adi,ad7691

  reg:
    maxItems: 1

  spi-max-frequency:
    maximum: 102040816 # for VIO > 2.7 V, 81300813 for VIO > 1.7 V

  adi,sdi-pin:
    $ref: /schemas/types.yaml#/definitions/string
    enum: [ high, low, cs, sdi ]
    default: sdi
    description:
      Describes how the ADC SDI pin is wired. A value of "sdi" indicates that
      the ADC SDI is connected to host SDO. "high" indicates that the ADC SDI
      pin is hard-wired to logic high (VIO). "low" indicates that it is
      hard-wired low (GND). "cs" indicates that the ADC SDI pin is connected to
      the host CS line.

  '#daisy-chained-devices': true

  vdd-supply:
    description: A 1.8V supply that powers the chip (VDD).

  vio-supply:
    description:
      A 1.8V to 5.5V supply for the digital inputs and outputs (VIO).

  ref-supply:
    description:
      A 2.5 to 5V supply for the external reference voltage (REF).

  cnv-gpios:
    description:
      When provided, this property indicates the GPIO that is connected to the
      CNV pin.
    maxItems: 1

  adi,high-z-input:
    type: boolean
    description:
      High-Z mode allows the amplifier and RC filter in front of the ADC to be
      chosen based on the signal bandwidth of interest, rather than the settling
      requirements of the switched capacitor SAR ADC inputs.

  adi,gain-milli:
    description: |
      The hardware gain applied to the ADC input (in milli units).
      The gain provided by the ADC input scaler is defined by the hardware
      connections between chip pins OUT+, R1K-, R1K1-, R1K+, R1K1+, and OUT-.
      If not present, default to 1000 (no actual gain applied).
    $ref: /schemas/types.yaml#/definitions/uint16
    enum: [454, 909, 1000, 1900]
    default: 1000

  interrupts:
    description:
      The SDO pin can also function as a busy indicator. This node should be
      connected to an interrupt that is triggered when the SDO line goes low
      while the SDI line is high and the CNV line is low ("3-wire" mode) or the
      SDI line is low and the CNV line is high ("4-wire" mode); or when the SDO
      line goes high while the SDI and CNV lines are high (chain mode),
    maxItems: 1

required:
  - compatible
  - reg
  - vdd-supply
  - vio-supply
  - ref-supply

allOf:
  # Single-channel PulSAR devices have SDI either tied to VIO, GND, or host CS.
  - if:
      properties:
        compatible:
          contains:
            enum:
              - adi,ad7687
              - adi,ad7691
              - adi,ad7942
              - adi,ad7946
              - adi,ad7983
    then:
      properties:
        adi,sdi-pin:
          enum: [ high, low, cs ]
          default: cs
  # The configuration register can only be accessed if SDI is connected to MOSI
  - if:
      required:
        - adi,sdi-pin
    then:
      properties:
        adi,high-z-input: false
  # chain mode has lower SCLK max rate
  - if:
      required:
        - '#daisy-chained-devices'
    then:
      properties:
        spi-max-frequency:
          maximum: 50000000 # for VIO > 2.7 V, 40000000 for VIO > 1.7 V
  # Gain property only applies to ADAQ devices
  - if:
      properties:
        compatible:
          not:
            contains:
              enum:
                - adi,adaq4001
                - adi,adaq4003
    then:
      properties:
        adi,gain-milli: false

unevaluatedProperties: false

examples:
  - |
    #include <dt-bindings/gpio/gpio.h>
    spi {
        #address-cells = <1>;
        #size-cells = <0>;
        adc@0 {
            compatible = "adi,ad4020";
            reg = <0>;
            spi-max-frequency = <71000000>;
            vdd-supply = <&supply_1_8V>;
            vio-supply = <&supply_1_8V>;
            ref-supply = <&supply_5V>;
            adi,sdi-pin = "cs";
            cnv-gpios = <&gpio0 88 GPIO_ACTIVE_HIGH>;
        };
    };
  - |
    spi {
        #address-cells = <1>;
        #size-cells = <0>;
        adc@0 {
            compatible = "adi,adaq4003";
            reg = <0>;
            spi-max-frequency = <80000000>;
            vdd-supply = <&supply_1_8V>;
            vio-supply = <&supply_1_8V>;
            ref-supply = <&supply_5V>;
            adi,high-z-input;
            adi,gain-milli = /bits/ 16 <454>;
        };
    };
