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

title: Analog Devices AD7124 ADC device driver

maintainers:
  - Stefan Popa <stefan.popa@analog.com>

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

properties:
  compatible:
    enum:
      - adi,ad7124-4
      - adi,ad7124-8

  reg:
    description: SPI chip select number for the device
    maxItems: 1

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

  clock-names:
    items:
      - const: mclk

  interrupts:
    description: IRQ line for the ADC
    maxItems: 1

  '#address-cells':
    const: 1

  '#size-cells':
    const: 0

  refin1-supply:
    description: refin1 supply can be used as reference for conversion.

  refin2-supply:
    description: refin2 supply can be used as reference for conversion.

  avdd-supply:
    description: avdd supply can be used as reference for conversion.

  spi-max-frequency: true

required:
  - compatible
  - reg
  - clocks
  - clock-names
  - interrupts

patternProperties:
  "^channel@([0-9]|1[0-5])$":
    type: object
    description: |
      Represents the external channels which are connected to the ADC.
      See Documentation/devicetree/bindings/iio/adc/adc.txt.

    properties:
      reg:
        description: |
          The channel number. It can have up to 8 channels on ad7124-4
          and 16 channels on ad7124-8, numbered from 0 to 15.
        items:
          minimum: 0
          maximum: 15

      adi,reference-select:
        description: |
          Select the reference source to use when converting on
          the specific channel. Valid values are:
          0: REFIN1(+)/REFIN1(−).
          1: REFIN2(+)/REFIN2(−).
          3: AVDD
          If this field is left empty, internal reference is selected.
        $ref: /schemas/types.yaml#/definitions/uint32
        enum: [0, 1, 3]

      diff-channels:
        description: see Documentation/devicetree/bindings/iio/adc/adc.txt
        items:
          minimum: 0
          maximum: 15

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

      adi,buffered-positive:
        description: Enable buffered mode for positive input.
        type: boolean

      adi,buffered-negative:
        description: Enable buffered mode for negative input.
        type: boolean

    required:
      - reg
      - diff-channels

additionalProperties: false

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

      adc@0 {
        compatible = "adi,ad7124-4";
        reg = <0>;
        spi-max-frequency = <5000000>;
        interrupts = <25 2>;
        interrupt-parent = <&gpio>;
        refin1-supply = <&adc_vref>;
        clocks = <&ad7124_mclk>;
        clock-names = "mclk";

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

        channel@0 {
          reg = <0>;
          diff-channels = <0 1>;
          adi,reference-select = <0>;
          adi,buffered-positive;
        };

        channel@1 {
          reg = <1>;
          bipolar;
          diff-channels = <2 3>;
          adi,reference-select = <0>;
          adi,buffered-positive;
          adi,buffered-negative;
        };

        channel@2 {
          reg = <2>;
          diff-channels = <4 5>;
        };

        channel@3 {
          reg = <3>;
          diff-channels = <6 7>;
        };
      };
    };
