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

title: Analog Devices MAX11410 ADC device driver

maintainers:
  - Ibrahim Tilki <Ibrahim.Tilki@analog.com>

description: |
  Bindings for the Analog Devices MAX11410 ADC device. Datasheet can be
  found here:
    https://datasheets.maximintegrated.com/en/ds/MAX11410.pdf

properties:
  compatible:
    enum:
      - adi,max11410

  reg:
    maxItems: 1

  interrupts:
    minItems: 1
    maxItems: 2

  interrupt-names:
    description: Name of the gpio pin of max11410 used for IRQ
    minItems: 1
    items:
      - enum: [gpio0, gpio1]
      - const: gpio1

  '#address-cells':
    const: 1

  '#size-cells':
    const: 0

  avdd-supply:
    description: Optional avdd supply. Used as reference when no explicit reference supplied.

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

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

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

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

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

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

  spi-max-frequency:
    maximum: 8000000

patternProperties:
  "^channel(@[0-9])?$":
    $ref: adc.yaml
    type: object
    description: Represents the external channels which are connected to the ADC.

    properties:
      reg:
        description: The channel number in single-ended mode.
        minimum: 0
        maximum: 9

      adi,reference:
        description: |
          Select the reference source to use when converting on
          the specific channel. Valid values are:
          0: VREF0P/VREF0N
          1: VREF1P/VREF1N
          2: VREF2P/VREF2N
          3: AVDD/AGND
          4: VREF0P/AGND
          5: VREF1P/AGND
          6: VREF2P/AGND
          If this field is left empty, AVDD/AGND is selected.
        $ref: /schemas/types.yaml#/definitions/uint32
        enum: [0, 1, 2, 3, 4, 5, 6]
        default: 3

      adi,input-mode:
        description: |
          Select signal path of input channels. Valid values are:
          0: Buffered, low-power, unity-gain path (default)
          1: Bypass path
          2: PGA path
        $ref: /schemas/types.yaml#/definitions/uint32
        enum: [0, 1, 2]
        default: 0

      diff-channels: true

      bipolar: true

      settling-time-us: true

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

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

    required:
      - reg

    additionalProperties: false

required:
  - compatible
  - reg

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

unevaluatedProperties: false

examples:
  - |
    #include <dt-bindings/interrupt-controller/irq.h>
    spi {
        #address-cells = <1>;
        #size-cells = <0>;

        adc@0 {
            reg = <0>;
            compatible = "adi,max11410";
            spi-max-frequency = <8000000>;

            interrupt-parent = <&gpio>;
            interrupts = <25 IRQ_TYPE_EDGE_FALLING>;
            interrupt-names = "gpio1";

            avdd-supply = <&adc_avdd>;

            vref1p-supply = <&adc_vref1p>;
            vref1n-supply = <&adc_vref1n>;

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

            channel@0 {
                reg = <0>;
            };

            channel@1 {
                reg = <1>;
                diff-channels = <2 3>;
                adi,reference = <1>;
                bipolar;
                settling-time-us = <100000>;
            };

            channel@2 {
                reg = <2>;
                diff-channels = <7 9>;
                adi,reference = <5>;
                adi,input-mode = <2>;
                settling-time-us = <50000>;
            };
        };
    };
