xref: /freebsd/sys/contrib/device-tree/Bindings/iio/dac/adi,ltc2664.yaml (revision b2d2a78ad80ec68d4a17f5aef97d21686cb1e29b)
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