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

title: TI ADS1018/ADS1118 SPI analog to digital converter

maintainers:
  - Kurt Borja <kuurtb@gmail.com>

description: |
  The ADS1018/ADS1118 is a precision, low-power, 12-bit/16-bit, analog to
  digital converter (ADC). It integrates a programmable gain amplifier (PGA),
  internal voltage reference, oscillator and high-accuracy temperature sensor.

  Datasheets:
    - ADS1018: https://www.ti.com/lit/ds/symlink/ads1018.pdf
    - ADS1118: https://www.ti.com/lit/ds/symlink/ads1118.pdf

properties:
  compatible:
    enum:
      - ti,ads1018
      - ti,ads1118

  reg:
    maxItems: 1

  vdd-supply: true

  spi-max-frequency:
    maximum: 4000000

  spi-cpha: true

  interrupts:
    description: DOUT/DRDY (Data Out/Data Ready) line.
    maxItems: 1

  drdy-gpios:
    description:
      Extra GPIO line connected to DOUT/DRDY (Data Out/Data Ready). This allows
      distinguishing between interrupts triggered by the data-ready signal and
      interrupts triggered by an SPI transfer.
    maxItems: 1

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

required:
  - compatible
  - reg
  - vdd-supply

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

unevaluatedProperties: false

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

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

        adc@0 {
            compatible = "ti,ads1118";
            reg = <0>;

            spi-max-frequency = <4000000>;
            spi-cpha;

            vdd-supply = <&vdd_3v3_reg>;

            interrupts-extended = <&gpio 14 IRQ_TYPE_EDGE_FALLING>;
            drdy-gpios = <&gpio 14 GPIO_ACTIVE_LOW>;
        };
    };
