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

title: Analog Devices AD3530R and Similar DACs

maintainers:
  - Kim Seer Paller <kimseer.paller@analog.com>

description: |
  The AD3530/AD3530R (8-channel) and AD3531/AD3531R (4-channel) are low-power,
  16-bit, buffered voltage output digital-to-analog converters (DACs) with
  software-programmable gain controls, providing full-scale output spans of 2.5V
  or 5V for reference voltages of 2.5V. These devices operate from a single 2.7V
  to 5.5V supply and are guaranteed monotonic by design. The "R" variants
  include a 2.5V, 5ppm/°C internal reference, which is disabled by default.
  Datasheet can be found here:
  https://www.analog.com/media/en/technical-documentation/data-sheets/ad3530_ad530r.pdf
  https://www.analog.com/media/en/technical-documentation/data-sheets/ad3531-ad3531r.pdf

properties:
  compatible:
    enum:
      - adi,ad3530
      - adi,ad3530r
      - adi,ad3531
      - adi,ad3531r

  reg:
    maxItems: 1

  spi-max-frequency:
    maximum: 50000000

  vdd-supply:
    description: Power Supply Input.

  iovdd-supply:
    description: Digital Power Supply Input.

  io-channels:
    description:
      ADC channel used to monitor internal die temperature, output voltages, and
      current of a selected channel via the MUXOUT pin.
    maxItems: 1

  ref-supply:
    description:
      Reference Input/Output. The voltage at the REF pin sets the full-scale
      range of all channels. If not provided the internal reference is used and
      also provided on the VREF pin.

  reset-gpios:
    description:
      Active low signal that is falling edge sensitive. When it is deasserted,
      the digital core initialization is performed and all DAC registers except
      the Interface Configuration A register are reset to their default values.
    maxItems: 1

  ldac-gpios:
    description:
      LDAC pin to be used as a hardware trigger to update the DAC channels. If
      not present, the DAC channels are updated by Software LDAC.
    maxItems: 1

  adi,range-double:
    description:
      Configure the output range for all channels. If the property is present,
      the output will range from 0V to 2Vref. If the property is not present,
      the output will range from 0V to Vref.
    type: boolean

required:
  - compatible
  - reg
  - vdd-supply
  - iovdd-supply

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

unevaluatedProperties: false

examples:
  - |
    spi {
        #address-cells = <1>;
        #size-cells = <0>;
        dac@0 {
            compatible = "adi,ad3530r";
            reg = <0>;
            spi-max-frequency = <1000000>;

            vdd-supply = <&vdd>;
            iovdd-supply = <&iovdd>;
        };
    };
...
