xref: /linux/Documentation/devicetree/bindings/iio/dac/adi,ltc2664.yaml (revision c532de5a67a70f8533d495f8f2aaa9a0491c3ad0)
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
7title: Analog Devices LTC2664 DAC
8
9maintainers:
10  - Michael Hennerich <michael.hennerich@analog.com>
11  - Kim Seer Paller <kimseer.paller@analog.com>
12
13description: |
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
17properties:
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
84patternProperties:
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
135required:
136  - compatible
137  - reg
138  - spi-max-frequency
139  - vcc-supply
140  - iovcc-supply
141  - v-pos-supply
142  - v-neg-supply
143
144allOf:
145  - $ref: /schemas/spi/spi-peripheral-props.yaml#
146
147additionalProperties: false
148
149examples:
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...
182