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

title: Analog Devices AD5770R DAC device driver

maintainers:
  - Alexandru Tachici <alexandru.tachici@analog.com>

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

properties:
  compatible:
    enum:
      - adi,ad5770r

  reg:
    maxItems: 1

  avdd-supply:
    description:
      AVdd voltage supply. Represents two different supplies in the datasheet
      that are in fact the same.

  iovdd-supply:
    description:
      Voltage supply for the chip interface.

  vref-supply:
    description: Specify the voltage of the external reference used.
      Available reference options are 1.25 V or 2.5 V. If no
      external reference declared then the device will use the
      internal reference of 1.25 V.

  adi,external-resistor:
    description: Specify if an external 2.5k ohm resistor is used. If not
      specified the device will use an internal 2.5k ohm resistor.
      The precision resistor is used for reference current generation.
    type: boolean

  reset-gpios:
    description: GPIO spec for the RESET pin. If specified, it will be
      asserted during driver probe.
    maxItems: 1

  '#address-cells':
    const: 1

  '#size-cells':
    const: 0

  channel@0:
    description: Represents an external channel which are
      connected to the DAC. Channel 0 can act both as a current
      source and sink.
    type: object
    additionalProperties: false

    properties:
      reg:
        description: This represents the channel number.
        const: 0

      adi,range-microamp:
        description: Output range of the channel.
        oneOf:
          - items:
              - const: 0
              - const: 300000
          - items:
              - const: -60000
              - const: 0
          - items:
              - const: -60000
              - const: 300000

  channel@1:
    description: Represents an external channel which are
      connected to the DAC.
    type: object
    additionalProperties: false

    properties:
      reg:
        description: This represents the channel number.
        const: 1

      adi,range-microamp:
        description: Output range of the channel.
        items:
          - const: 0
          - enum: [140000, 250000]

  channel@2:
    description: Represents an external channel which are
      connected to the DAC.
    type: object
    additionalProperties: false

    properties:
      reg:
        description: This represents the channel number.
        const: 2

      adi,range-microamp:
        description: Output range of the channel.
        items:
          - const: 0
          - enum: [55000, 150000]

patternProperties:
  "^channel@([3-5])$":
    type: object
    additionalProperties: false
    description: Represents the external channels which are connected to the DAC.
    properties:
      reg:
        description: This represents the channel number.
        minimum: 3
        maximum: 5

      adi,range-microamp:
        description: Output range of the channel.
        items:
          - const: 0
          - enum: [45000, 100000]

required:
  - reg
  - channel@0
  - channel@1
  - channel@2
  - channel@3
  - channel@4
  - channel@5

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

unevaluatedProperties: false

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

                ad5770r@0 {
                        compatible = "adi,ad5770r";
                        reg = <0>;
                        spi-max-frequency = <1000000>;
                        vref-supply = <&vref>;
                        adi,external-resistor;
                        reset-gpios = <&gpio 22 0>;
                        #address-cells = <1>;
                        #size-cells = <0>;

                        channel@0 {
                                reg = <0>;
                                adi,range-microamp = <0 300000>;
                        };

                        channel@1 {
                                reg = <1>;
                                adi,range-microamp = <0 140000>;
                        };

                        channel@2 {
                                reg = <2>;
                                adi,range-microamp = <0 55000>;
                        };

                        channel@3 {
                                reg = <3>;
                                adi,range-microamp = <0 45000>;
                        };

                        channel@4 {
                                reg = <4>;
                                adi,range-microamp = <0 45000>;
                        };

                        channel@5 {
                                reg = <5>;
                                adi,range-microamp = <0 45000>;
                        };
                };
        };
...
