# 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,ad7192.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Analog Devices AD7192 ADC device driver

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

description: |
  Bindings for the Analog Devices AD7192 ADC device. Datasheet can be
  found here:
  https://www.analog.com/media/en/technical-documentation/data-sheets/AD7192.pdf

properties:
  compatible:
    enum:
      - adi,ad7190
      - adi,ad7192
      - adi,ad7193
      - adi,ad7194
      - adi,ad7195

  "#address-cells":
    const: 1

  "#size-cells":
    const: 0

  reg:
    maxItems: 1

  spi-cpol: true

  spi-cpha: true

  clocks:
    maxItems: 1
    description: phandle to the master clock (mclk)

  clock-names:
    items:
      - const: mclk

  interrupts:
    maxItems: 1

  aincom-supply:
    description: |
      AINCOM voltage supply. Analog inputs AINx are referenced to this input
      when configured for pseudo-differential operation.

  dvdd-supply:
    description: DVdd voltage supply

  avdd-supply:
    description: AVdd voltage supply

  vref-supply:
    description: VRef voltage supply

  adi,rejection-60-Hz-enable:
    description: |
      This bit enables a notch at 60 Hz when the first notch of the sinc
      filter is at 50 Hz. When REJ60 is set, a filter notch is placed at
      60 Hz when the sinc filter first notch is at 50 Hz. This allows
      simultaneous 50 Hz/ 60 Hz rejection.
    type: boolean

  adi,refin2-pins-enable:
    description: |
      External reference applied between the P1/REFIN2(+) and P0/REFIN2(−) pins.
    type: boolean

  adi,buffer-enable:
    description: |
      Enables the buffer on the analog inputs. If cleared, the analog inputs
      are unbuffered, lowering the power consumption of the device. If this
      bit is set, the analog inputs are buffered, allowing the user to place
      source impedances on the front end without contributing gain errors to
      the system.
    type: boolean

  adi,burnout-currents-enable:
    description: |
      When this bit is set to 1, the 500 nA current sources in the signal
      path are enabled. When BURN = 0, the burnout currents are disabled.
      The burnout currents can be enabled only when the buffer is active
      and when chop is disabled.
    type: boolean

  bipolar:
    description: see Documentation/devicetree/bindings/iio/adc/adc.yaml
    type: boolean

patternProperties:
  "^channel@[0-9a-f]+$":
    type: object
    $ref: adc.yaml
    unevaluatedProperties: false

    properties:
      reg:
        description: The channel index.
        minimum: 0
        maximum: 271

      diff-channels:
        description:
          Both inputs can be connected to pins AIN1 to AIN16 by choosing the
          appropriate value from 1 to 16.
        items:
          minimum: 1
          maximum: 16

      single-channel:
        description:
          Positive input can be connected to pins AIN1 to AIN16 by choosing the
          appropriate value from 1 to 16. Negative input is connected to AINCOM.
        minimum: 1
        maximum: 16

    oneOf:
      - required:
          - reg
          - diff-channels
      - required:
          - reg
          - single-channel

required:
  - compatible
  - reg
  - clocks
  - clock-names
  - interrupts
  - dvdd-supply
  - avdd-supply
  - vref-supply
  - spi-cpol
  - spi-cpha

allOf:
  - $ref: /schemas/spi/spi-peripheral-props.yaml#
  - if:
      properties:
        compatible:
          enum:
            - adi,ad7190
            - adi,ad7192
            - adi,ad7193
            - adi,ad7195
    then:
      patternProperties:
        "^channel@[0-9a-f]+$": false

unevaluatedProperties: false

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

        adc@0 {
            compatible = "adi,ad7192";
            reg = <0>;
            spi-max-frequency = <1000000>;
            spi-cpol;
            spi-cpha;
            clocks = <&ad7192_mclk>;
            clock-names = "mclk";
            interrupts = <25 0x2>;
            interrupt-parent = <&gpio>;
            aincom-supply = <&aincom>;
            dvdd-supply = <&dvdd>;
            avdd-supply = <&avdd>;
            vref-supply = <&vref>;

            adi,refin2-pins-enable;
            adi,rejection-60-Hz-enable;
            adi,buffer-enable;
            adi,burnout-currents-enable;
        };
    };
  - |
    spi {
        #address-cells = <1>;
        #size-cells = <0>;

        adc@0 {
            compatible = "adi,ad7194";
            reg = <0>;

            #address-cells = <1>;
            #size-cells = <0>;

            spi-max-frequency = <1000000>;
            spi-cpol;
            spi-cpha;
            clocks = <&ad7192_mclk>;
            clock-names = "mclk";
            interrupts = <25 0x2>;
            interrupt-parent = <&gpio>;
            aincom-supply = <&aincom>;
            dvdd-supply = <&dvdd>;
            avdd-supply = <&avdd>;
            vref-supply = <&vref>;

            channel@0 {
                reg = <0>;
                diff-channels = <1 6>;
            };

            channel@1 {
                reg = <1>;
                single-channel = <1>;
            };
        };
    };
