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