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

title: Texas Instruments ADS1119 ADC

maintainers:
  - João Paulo Gonçalves <jpaulo.silvagoncalves@gmail.com>

description:
  The TI ADS1119 is a precision 16-bit ADC over I2C that offers single-ended and
  differential measurements using a multiplexed input. It features a programmable
  gain, a programmable sample rate, an internal oscillator and voltage reference,
  and a 50/60Hz rejection filter.

properties:
  compatible:
    const: ti,ads1119

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

  reset-gpios:
    maxItems: 1

  avdd-supply: true
  dvdd-supply: true

  vref-supply:
    description:
      ADC external reference voltage (VREF).

  "#address-cells":
    const: 1

  "#size-cells":
    const: 0

  "#io-channel-cells":
    const: 1

required:
  - compatible
  - reg
  - "#address-cells"
  - "#size-cells"
  - avdd-supply
  - dvdd-supply

patternProperties:
  "^channel@([0-6])$":
    $ref: adc.yaml
    type: object
    properties:
      reg:
        minimum: 0
        maximum: 6

      diff-channels:
        description:
          Differential input channels AIN0-AIN1, AIN2-AIN3 and AIN1-AIN2.
        oneOf:
          - items:
              - const: 0
              - const: 1
          - items:
              - const: 2
              - const: 3
          - items:
              - const: 1
              - const: 2

      single-channel:
        description:
          Single-ended input channels AIN0, AIN1, AIN2 and AIN3.
        minimum: 0
        maximum: 3

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

    required:
      - reg

    unevaluatedProperties: false

additionalProperties: false

examples:
  - |

    #include <dt-bindings/gpio/gpio.h>
    #include <dt-bindings/interrupt-controller/irq.h>

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

        adc@40 {
            compatible = "ti,ads1119";
            reg = <0x40>;
            interrupt-parent = <&gpio1>;
            interrupts = <25 IRQ_TYPE_EDGE_FALLING>;
            reset-gpios = <&gpio1 10 GPIO_ACTIVE_LOW>;
            avdd-supply = <&reg_avdd_ads1119>;
            dvdd-supply = <&reg_dvdd_ads1119>;
            vref-supply = <&reg_vref_ads1119>;
            #address-cells = <1>;
            #size-cells = <0>;
            #io-channel-cells = <1>;

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

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

            channel@2 {
                reg = <2>;
                single-channel = <3>;
            };

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

            channel@4 {
                reg = <4>;
                single-channel = <2>;
            };

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

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