# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) %YAML 1.2 --- $id: http://devicetree.org/schemas/iio/dac/adi,ltc2664.yaml# $schema: http://devicetree.org/meta-schemas/core.yaml# title: Analog Devices LTC2664 DAC maintainers: - Michael Hennerich - Kim Seer Paller description: | Analog Devices LTC2664 4 channel, 12-/16-Bit, +-10V DAC https://www.analog.com/media/en/technical-documentation/data-sheets/2664fa.pdf properties: compatible: enum: - adi,ltc2664 reg: maxItems: 1 spi-max-frequency: maximum: 50000000 vcc-supply: description: Analog Supply Voltage Input. v-pos-supply: description: Positive Supply Voltage Input. v-neg-supply: description: Negative Supply Voltage Input. iovcc-supply: description: Digital Input/Output Supply Voltage. 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 Asynchronous Clear Input. A logic low at this level-triggered input clears the part to the reset code and range determined by the hardwired option chosen using the MSPAN pins. The control registers are cleared to zero. maxItems: 1 adi,manual-span-operation-config: description: This property must mimic the MSPAN pin configurations. By tying the MSPAN pins (MSP2, MSP1 and MSP0) to GND and/or VCC, any output range can be hardware-configured with different mid-scale or zero-scale reset options. The hardware configuration is latched during power on reset for proper operation. 0 - MPS2=GND, MPS1=GND, MSP0=GND (+-10V, reset to 0V) 1 - MPS2=GND, MPS1=GND, MSP0=VCC (+-5V, reset to 0V) 2 - MPS2=GND, MPS1=VCC, MSP0=GND (+-2.5V, reset to 0V) 3 - MPS2=GND, MPS1=VCC, MSP0=VCC (0V to 10, reset to 0V) 4 - MPS2=VCC, MPS1=GND, MSP0=GND (0V to 10V, reset to 5V) 5 - MPS2=VCC, MPS1=GND, MSP0=VCC (0V to 5V, reset to 0V) 6 - MPS2=VCC, MPS1=VCC, MSP0=GND (0V to 5V, reset to 2.5V) 7 - MPS2=VCC, MPS1=VCC, MSP0=VCC (0V to 5V, reset to 0V, enables SoftSpan) $ref: /schemas/types.yaml#/definitions/uint32 enum: [0, 1, 2, 3, 4, 5, 6, 7] default: 7 io-channels: description: ADC channel to monitor voltages and temperature at the MUXOUT pin. maxItems: 1 '#address-cells': const: 1 '#size-cells': const: 0 patternProperties: "^channel@[0-3]$": $ref: dac.yaml type: object additionalProperties: false properties: reg: description: The channel number representing the DAC output channel. maximum: 3 adi,toggle-mode: description: Set the channel as a toggle enabled channel. Toggle operation enables fast switching of a DAC output between two different DAC codes without any SPI transaction. type: boolean output-range-microvolt: description: This property is only allowed when SoftSpan is enabled. If not present, [0, 5000000] is the default output range. oneOf: - items: - const: 0 - enum: [5000000, 10000000] - items: - const: -5000000 - const: 5000000 - items: - const: -10000000 - const: 10000000 - items: - const: -2500000 - const: 2500000 required: - reg allOf: - if: not: properties: adi,manual-span-operation-config: const: 7 then: patternProperties: "^channel@[0-3]$": properties: output-range-microvolt: false required: - compatible - reg - spi-max-frequency - vcc-supply - iovcc-supply - v-pos-supply - v-neg-supply allOf: - $ref: /schemas/spi/spi-peripheral-props.yaml# additionalProperties: false examples: - | spi { #address-cells = <1>; #size-cells = <0>; dac@0 { compatible = "adi,ltc2664"; reg = <0>; spi-max-frequency = <10000000>; vcc-supply = <&vcc>; iovcc-supply = <&vcc>; ref-supply = <&vref>; v-pos-supply = <&vpos>; v-neg-supply = <&vneg>; io-channels = <&adc 0>; #address-cells = <1>; #size-cells = <0>; channel@0 { reg = <0>; adi,toggle-mode; output-range-microvolt = <(-10000000) 10000000>; }; channel@1 { reg = <1>; output-range-microvolt= <0 10000000>; }; }; }; ...