1*b2d2a78aSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2*b2d2a78aSEmmanuel Vadot%YAML 1.2 3*b2d2a78aSEmmanuel Vadot--- 4*b2d2a78aSEmmanuel Vadot$id: http://devicetree.org/schemas/iio/dac/adi,ltc2664.yaml# 5*b2d2a78aSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 6*b2d2a78aSEmmanuel Vadot 7*b2d2a78aSEmmanuel Vadottitle: Analog Devices LTC2664 DAC 8*b2d2a78aSEmmanuel Vadot 9*b2d2a78aSEmmanuel Vadotmaintainers: 10*b2d2a78aSEmmanuel Vadot - Michael Hennerich <michael.hennerich@analog.com> 11*b2d2a78aSEmmanuel Vadot - Kim Seer Paller <kimseer.paller@analog.com> 12*b2d2a78aSEmmanuel Vadot 13*b2d2a78aSEmmanuel Vadotdescription: | 14*b2d2a78aSEmmanuel Vadot Analog Devices LTC2664 4 channel, 12-/16-Bit, +-10V DAC 15*b2d2a78aSEmmanuel Vadot https://www.analog.com/media/en/technical-documentation/data-sheets/2664fa.pdf 16*b2d2a78aSEmmanuel Vadot 17*b2d2a78aSEmmanuel Vadotproperties: 18*b2d2a78aSEmmanuel Vadot compatible: 19*b2d2a78aSEmmanuel Vadot enum: 20*b2d2a78aSEmmanuel Vadot - adi,ltc2664 21*b2d2a78aSEmmanuel Vadot 22*b2d2a78aSEmmanuel Vadot reg: 23*b2d2a78aSEmmanuel Vadot maxItems: 1 24*b2d2a78aSEmmanuel Vadot 25*b2d2a78aSEmmanuel Vadot spi-max-frequency: 26*b2d2a78aSEmmanuel Vadot maximum: 50000000 27*b2d2a78aSEmmanuel Vadot 28*b2d2a78aSEmmanuel Vadot vcc-supply: 29*b2d2a78aSEmmanuel Vadot description: Analog Supply Voltage Input. 30*b2d2a78aSEmmanuel Vadot 31*b2d2a78aSEmmanuel Vadot v-pos-supply: 32*b2d2a78aSEmmanuel Vadot description: Positive Supply Voltage Input. 33*b2d2a78aSEmmanuel Vadot 34*b2d2a78aSEmmanuel Vadot v-neg-supply: 35*b2d2a78aSEmmanuel Vadot description: Negative Supply Voltage Input. 36*b2d2a78aSEmmanuel Vadot 37*b2d2a78aSEmmanuel Vadot iovcc-supply: 38*b2d2a78aSEmmanuel Vadot description: Digital Input/Output Supply Voltage. 39*b2d2a78aSEmmanuel Vadot 40*b2d2a78aSEmmanuel Vadot ref-supply: 41*b2d2a78aSEmmanuel Vadot description: 42*b2d2a78aSEmmanuel Vadot Reference Input/Output. The voltage at the REF pin sets the full-scale 43*b2d2a78aSEmmanuel Vadot range of all channels. If not provided the internal reference is used and 44*b2d2a78aSEmmanuel Vadot also provided on the VREF pin. 45*b2d2a78aSEmmanuel Vadot 46*b2d2a78aSEmmanuel Vadot reset-gpios: 47*b2d2a78aSEmmanuel Vadot description: 48*b2d2a78aSEmmanuel Vadot Active-low Asynchronous Clear Input. A logic low at this level-triggered 49*b2d2a78aSEmmanuel Vadot input clears the part to the reset code and range determined by the 50*b2d2a78aSEmmanuel Vadot hardwired option chosen using the MSPAN pins. The control registers are 51*b2d2a78aSEmmanuel Vadot cleared to zero. 52*b2d2a78aSEmmanuel Vadot maxItems: 1 53*b2d2a78aSEmmanuel Vadot 54*b2d2a78aSEmmanuel Vadot adi,manual-span-operation-config: 55*b2d2a78aSEmmanuel Vadot description: 56*b2d2a78aSEmmanuel Vadot This property must mimic the MSPAN pin configurations. By tying the MSPAN 57*b2d2a78aSEmmanuel Vadot pins (MSP2, MSP1 and MSP0) to GND and/or VCC, any output range can be 58*b2d2a78aSEmmanuel Vadot hardware-configured with different mid-scale or zero-scale reset options. 59*b2d2a78aSEmmanuel Vadot The hardware configuration is latched during power on reset for proper 60*b2d2a78aSEmmanuel Vadot operation. 61*b2d2a78aSEmmanuel Vadot 0 - MPS2=GND, MPS1=GND, MSP0=GND (+-10V, reset to 0V) 62*b2d2a78aSEmmanuel Vadot 1 - MPS2=GND, MPS1=GND, MSP0=VCC (+-5V, reset to 0V) 63*b2d2a78aSEmmanuel Vadot 2 - MPS2=GND, MPS1=VCC, MSP0=GND (+-2.5V, reset to 0V) 64*b2d2a78aSEmmanuel Vadot 3 - MPS2=GND, MPS1=VCC, MSP0=VCC (0V to 10, reset to 0V) 65*b2d2a78aSEmmanuel Vadot 4 - MPS2=VCC, MPS1=GND, MSP0=GND (0V to 10V, reset to 5V) 66*b2d2a78aSEmmanuel Vadot 5 - MPS2=VCC, MPS1=GND, MSP0=VCC (0V to 5V, reset to 0V) 67*b2d2a78aSEmmanuel Vadot 6 - MPS2=VCC, MPS1=VCC, MSP0=GND (0V to 5V, reset to 2.5V) 68*b2d2a78aSEmmanuel Vadot 7 - MPS2=VCC, MPS1=VCC, MSP0=VCC (0V to 5V, reset to 0V, enables SoftSpan) 69*b2d2a78aSEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32 70*b2d2a78aSEmmanuel Vadot enum: [0, 1, 2, 3, 4, 5, 6, 7] 71*b2d2a78aSEmmanuel Vadot default: 7 72*b2d2a78aSEmmanuel Vadot 73*b2d2a78aSEmmanuel Vadot io-channels: 74*b2d2a78aSEmmanuel Vadot description: 75*b2d2a78aSEmmanuel Vadot ADC channel to monitor voltages and temperature at the MUXOUT pin. 76*b2d2a78aSEmmanuel Vadot maxItems: 1 77*b2d2a78aSEmmanuel Vadot 78*b2d2a78aSEmmanuel Vadot '#address-cells': 79*b2d2a78aSEmmanuel Vadot const: 1 80*b2d2a78aSEmmanuel Vadot 81*b2d2a78aSEmmanuel Vadot '#size-cells': 82*b2d2a78aSEmmanuel Vadot const: 0 83*b2d2a78aSEmmanuel Vadot 84*b2d2a78aSEmmanuel VadotpatternProperties: 85*b2d2a78aSEmmanuel Vadot "^channel@[0-3]$": 86*b2d2a78aSEmmanuel Vadot $ref: dac.yaml 87*b2d2a78aSEmmanuel Vadot type: object 88*b2d2a78aSEmmanuel Vadot additionalProperties: false 89*b2d2a78aSEmmanuel Vadot 90*b2d2a78aSEmmanuel Vadot properties: 91*b2d2a78aSEmmanuel Vadot reg: 92*b2d2a78aSEmmanuel Vadot description: The channel number representing the DAC output channel. 93*b2d2a78aSEmmanuel Vadot maximum: 3 94*b2d2a78aSEmmanuel Vadot 95*b2d2a78aSEmmanuel Vadot adi,toggle-mode: 96*b2d2a78aSEmmanuel Vadot description: 97*b2d2a78aSEmmanuel Vadot Set the channel as a toggle enabled channel. Toggle operation enables 98*b2d2a78aSEmmanuel Vadot fast switching of a DAC output between two different DAC codes without 99*b2d2a78aSEmmanuel Vadot any SPI transaction. 100*b2d2a78aSEmmanuel Vadot type: boolean 101*b2d2a78aSEmmanuel Vadot 102*b2d2a78aSEmmanuel Vadot output-range-microvolt: 103*b2d2a78aSEmmanuel Vadot description: 104*b2d2a78aSEmmanuel Vadot This property is only allowed when SoftSpan is enabled. If not present, 105*b2d2a78aSEmmanuel Vadot [0, 5000000] is the default output range. 106*b2d2a78aSEmmanuel Vadot oneOf: 107*b2d2a78aSEmmanuel Vadot - items: 108*b2d2a78aSEmmanuel Vadot - const: 0 109*b2d2a78aSEmmanuel Vadot - enum: [5000000, 10000000] 110*b2d2a78aSEmmanuel Vadot - items: 111*b2d2a78aSEmmanuel Vadot - const: -5000000 112*b2d2a78aSEmmanuel Vadot - const: 5000000 113*b2d2a78aSEmmanuel Vadot - items: 114*b2d2a78aSEmmanuel Vadot - const: -10000000 115*b2d2a78aSEmmanuel Vadot - const: 10000000 116*b2d2a78aSEmmanuel Vadot - items: 117*b2d2a78aSEmmanuel Vadot - const: -2500000 118*b2d2a78aSEmmanuel Vadot - const: 2500000 119*b2d2a78aSEmmanuel Vadot 120*b2d2a78aSEmmanuel Vadot required: 121*b2d2a78aSEmmanuel Vadot - reg 122*b2d2a78aSEmmanuel Vadot 123*b2d2a78aSEmmanuel Vadot allOf: 124*b2d2a78aSEmmanuel Vadot - if: 125*b2d2a78aSEmmanuel Vadot not: 126*b2d2a78aSEmmanuel Vadot properties: 127*b2d2a78aSEmmanuel Vadot adi,manual-span-operation-config: 128*b2d2a78aSEmmanuel Vadot const: 7 129*b2d2a78aSEmmanuel Vadot then: 130*b2d2a78aSEmmanuel Vadot patternProperties: 131*b2d2a78aSEmmanuel Vadot "^channel@[0-3]$": 132*b2d2a78aSEmmanuel Vadot properties: 133*b2d2a78aSEmmanuel Vadot output-range-microvolt: false 134*b2d2a78aSEmmanuel Vadot 135*b2d2a78aSEmmanuel Vadotrequired: 136*b2d2a78aSEmmanuel Vadot - compatible 137*b2d2a78aSEmmanuel Vadot - reg 138*b2d2a78aSEmmanuel Vadot - spi-max-frequency 139*b2d2a78aSEmmanuel Vadot - vcc-supply 140*b2d2a78aSEmmanuel Vadot - iovcc-supply 141*b2d2a78aSEmmanuel Vadot - v-pos-supply 142*b2d2a78aSEmmanuel Vadot - v-neg-supply 143*b2d2a78aSEmmanuel Vadot 144*b2d2a78aSEmmanuel VadotallOf: 145*b2d2a78aSEmmanuel Vadot - $ref: /schemas/spi/spi-peripheral-props.yaml# 146*b2d2a78aSEmmanuel Vadot 147*b2d2a78aSEmmanuel VadotadditionalProperties: false 148*b2d2a78aSEmmanuel Vadot 149*b2d2a78aSEmmanuel Vadotexamples: 150*b2d2a78aSEmmanuel Vadot - | 151*b2d2a78aSEmmanuel Vadot spi { 152*b2d2a78aSEmmanuel Vadot #address-cells = <1>; 153*b2d2a78aSEmmanuel Vadot #size-cells = <0>; 154*b2d2a78aSEmmanuel Vadot dac@0 { 155*b2d2a78aSEmmanuel Vadot compatible = "adi,ltc2664"; 156*b2d2a78aSEmmanuel Vadot reg = <0>; 157*b2d2a78aSEmmanuel Vadot spi-max-frequency = <10000000>; 158*b2d2a78aSEmmanuel Vadot 159*b2d2a78aSEmmanuel Vadot vcc-supply = <&vcc>; 160*b2d2a78aSEmmanuel Vadot iovcc-supply = <&vcc>; 161*b2d2a78aSEmmanuel Vadot ref-supply = <&vref>; 162*b2d2a78aSEmmanuel Vadot v-pos-supply = <&vpos>; 163*b2d2a78aSEmmanuel Vadot v-neg-supply = <&vneg>; 164*b2d2a78aSEmmanuel Vadot 165*b2d2a78aSEmmanuel Vadot io-channels = <&adc 0>; 166*b2d2a78aSEmmanuel Vadot 167*b2d2a78aSEmmanuel Vadot #address-cells = <1>; 168*b2d2a78aSEmmanuel Vadot #size-cells = <0>; 169*b2d2a78aSEmmanuel Vadot channel@0 { 170*b2d2a78aSEmmanuel Vadot reg = <0>; 171*b2d2a78aSEmmanuel Vadot adi,toggle-mode; 172*b2d2a78aSEmmanuel Vadot output-range-microvolt = <(-10000000) 10000000>; 173*b2d2a78aSEmmanuel Vadot }; 174*b2d2a78aSEmmanuel Vadot 175*b2d2a78aSEmmanuel Vadot channel@1 { 176*b2d2a78aSEmmanuel Vadot reg = <1>; 177*b2d2a78aSEmmanuel Vadot output-range-microvolt= <0 10000000>; 178*b2d2a78aSEmmanuel Vadot }; 179*b2d2a78aSEmmanuel Vadot }; 180*b2d2a78aSEmmanuel Vadot }; 181*b2d2a78aSEmmanuel Vadot... 182