xref: /freebsd/sys/contrib/device-tree/Bindings/iio/dac/adi,ad3552r.yaml (revision 0e8011faf58b743cc652e3b2ad0f7671227610df)
1e67e8565SEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2e67e8565SEmmanuel Vadot# Copyright 2020 Analog Devices Inc.
3e67e8565SEmmanuel Vadot%YAML 1.2
4e67e8565SEmmanuel Vadot---
5e67e8565SEmmanuel Vadot$id: http://devicetree.org/schemas/iio/dac/adi,ad3552r.yaml#
6e67e8565SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
7e67e8565SEmmanuel Vadot
8e67e8565SEmmanuel Vadottitle: Analog Devices AD2552R DAC device driver
9e67e8565SEmmanuel Vadot
10e67e8565SEmmanuel Vadotmaintainers:
11d5b0e70fSEmmanuel Vadot  - Nuno Sá <nuno.sa@analog.com>
12e67e8565SEmmanuel Vadot
13e67e8565SEmmanuel Vadotdescription: |
14e67e8565SEmmanuel Vadot  Bindings for the Analog Devices AD3552R DAC device and similar.
15e67e8565SEmmanuel Vadot  Datasheet can be found here:
16*0e8011faSEmmanuel Vadot    https://www.analog.com/media/en/technical-documentation/data-sheets/ad3541r.pdf
17e67e8565SEmmanuel Vadot    https://www.analog.com/media/en/technical-documentation/data-sheets/ad3542r.pdf
18*0e8011faSEmmanuel Vadot    https://www.analog.com/media/en/technical-documentation/data-sheets/ad3551r.pdf
19e67e8565SEmmanuel Vadot    https://www.analog.com/media/en/technical-documentation/data-sheets/ad3552r.pdf
20e67e8565SEmmanuel Vadot
21e67e8565SEmmanuel Vadotproperties:
22e67e8565SEmmanuel Vadot  compatible:
23e67e8565SEmmanuel Vadot    enum:
24*0e8011faSEmmanuel Vadot      - adi,ad3541r
25e67e8565SEmmanuel Vadot      - adi,ad3542r
26*0e8011faSEmmanuel Vadot      - adi,ad3551r
27e67e8565SEmmanuel Vadot      - adi,ad3552r
28e67e8565SEmmanuel Vadot
29e67e8565SEmmanuel Vadot  reg:
30e67e8565SEmmanuel Vadot    maxItems: 1
31e67e8565SEmmanuel Vadot
32e67e8565SEmmanuel Vadot  spi-max-frequency:
33e67e8565SEmmanuel Vadot    maximum: 30000000
34e67e8565SEmmanuel Vadot
35e67e8565SEmmanuel Vadot  reset-gpios:
36e67e8565SEmmanuel Vadot    maxItems: 1
37e67e8565SEmmanuel Vadot
38e67e8565SEmmanuel Vadot  ldac-gpios:
39e67e8565SEmmanuel Vadot    description: |
40e67e8565SEmmanuel Vadot      LDAC pin to be used as a hardware trigger to update the DAC channels.
41e67e8565SEmmanuel Vadot    maxItems: 1
42e67e8565SEmmanuel Vadot
43e67e8565SEmmanuel Vadot  vref-supply:
44e67e8565SEmmanuel Vadot    description:
45e67e8565SEmmanuel Vadot      The regulator to use as an external reference. If it does not exists the
46e67e8565SEmmanuel Vadot      internal reference will be used. External reference must be 2.5V
47e67e8565SEmmanuel Vadot
48e67e8565SEmmanuel Vadot  adi,vref-out-en:
49e67e8565SEmmanuel Vadot    description: Vref I/O driven by internal vref to 2.5V. If not set, Vref pin
50e67e8565SEmmanuel Vadot      will be floating.
51e67e8565SEmmanuel Vadot    type: boolean
52e67e8565SEmmanuel Vadot
53e67e8565SEmmanuel Vadot  adi,sdo-drive-strength:
54e67e8565SEmmanuel Vadot    description: |
55e67e8565SEmmanuel Vadot      Configure SDIO0 and SDIO1 strength levels:
56e67e8565SEmmanuel Vadot        - 0: low SDO drive strength.
57e67e8565SEmmanuel Vadot        - 1: medium low SDO drive strength.
58e67e8565SEmmanuel Vadot        - 2: medium high SDO drive strength.
59e67e8565SEmmanuel Vadot        - 3: high SDO drive strength
60e67e8565SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
61e67e8565SEmmanuel Vadot    enum: [0, 1, 2, 3]
62e67e8565SEmmanuel Vadot
63e67e8565SEmmanuel Vadot  '#address-cells':
64e67e8565SEmmanuel Vadot    const: 1
65e67e8565SEmmanuel Vadot
66e67e8565SEmmanuel Vadot  '#size-cells':
67e67e8565SEmmanuel Vadot    const: 0
68e67e8565SEmmanuel Vadot
69e67e8565SEmmanuel VadotpatternProperties:
70e67e8565SEmmanuel Vadot  "^channel@([0-1])$":
71e67e8565SEmmanuel Vadot    type: object
72e67e8565SEmmanuel Vadot    description: Configurations of the DAC Channels
73e67e8565SEmmanuel Vadot
74e67e8565SEmmanuel Vadot    additionalProperties: false
75e67e8565SEmmanuel Vadot
76e67e8565SEmmanuel Vadot    properties:
77e67e8565SEmmanuel Vadot      reg:
78e67e8565SEmmanuel Vadot        description: Channel number
79e67e8565SEmmanuel Vadot        enum: [0, 1]
80e67e8565SEmmanuel Vadot
81e67e8565SEmmanuel Vadot      adi,output-range-microvolt: true
82e67e8565SEmmanuel Vadot
83e67e8565SEmmanuel Vadot      custom-output-range-config:
84e67e8565SEmmanuel Vadot        type: object
857ef62cebSEmmanuel Vadot        additionalProperties: false
86e67e8565SEmmanuel Vadot        description: Configuration of custom range when
87e67e8565SEmmanuel Vadot          adi,output-range-microvolt is not present.
88e67e8565SEmmanuel Vadot          The formulas for calculation the output voltages are
89e67e8565SEmmanuel Vadot            Vout_fs = 2.5 + [(GainN + Offset/1024) * 2.5 * Rfbx * 1.03]
90e67e8565SEmmanuel Vadot            Vout_zs = 2.5 - [(GainP + Offset/1024) * 2.5 * Rfbx * 1.03]
91e67e8565SEmmanuel Vadot
92e67e8565SEmmanuel Vadot        properties:
93e67e8565SEmmanuel Vadot          adi,gain-offset:
94e67e8565SEmmanuel Vadot            description: Gain offset used in the above formula
95e67e8565SEmmanuel Vadot            $ref: /schemas/types.yaml#/definitions/int32
96e67e8565SEmmanuel Vadot            maximum: 511
97e67e8565SEmmanuel Vadot            minimum: -511
98e67e8565SEmmanuel Vadot
99*0e8011faSEmmanuel Vadot          adi,gain-scaling-p:
100*0e8011faSEmmanuel Vadot            description: GainP = 1 / ( 2 ^ adi,gain-scaling-p)
101e67e8565SEmmanuel Vadot            $ref: /schemas/types.yaml#/definitions/uint32
102e67e8565SEmmanuel Vadot            enum: [0, 1, 2, 3]
103e67e8565SEmmanuel Vadot
104*0e8011faSEmmanuel Vadot          adi,gain-scaling-n:
105*0e8011faSEmmanuel Vadot            description: GainN = 1 / ( 2 ^ adi,gain-scaling-n)
106e67e8565SEmmanuel Vadot            $ref: /schemas/types.yaml#/definitions/uint32
107e67e8565SEmmanuel Vadot            enum: [0, 1, 2, 3]
108e67e8565SEmmanuel Vadot
109e67e8565SEmmanuel Vadot          adi,rfb-ohms:
110e67e8565SEmmanuel Vadot            description: Feedback Resistor
111e67e8565SEmmanuel Vadot
112e67e8565SEmmanuel Vadot        required:
113e67e8565SEmmanuel Vadot          - adi,gain-offset
114*0e8011faSEmmanuel Vadot          - adi,gain-scaling-p
115*0e8011faSEmmanuel Vadot          - adi,gain-scaling-n
116e67e8565SEmmanuel Vadot          - adi,rfb-ohms
117e67e8565SEmmanuel Vadot
118e67e8565SEmmanuel Vadot    required:
119e67e8565SEmmanuel Vadot      - reg
120e67e8565SEmmanuel Vadot
121e67e8565SEmmanuel Vadot    oneOf:
122e67e8565SEmmanuel Vadot      # If adi,output-range-microvolt is missing,
123e67e8565SEmmanuel Vadot      # custom-output-range-config must be used
124e67e8565SEmmanuel Vadot      - required:
125e67e8565SEmmanuel Vadot          - adi,output-range-microvolt
126e67e8565SEmmanuel Vadot
127e67e8565SEmmanuel Vadot      - required:
128e67e8565SEmmanuel Vadot          - custom-output-range-config
129e67e8565SEmmanuel Vadot
130e67e8565SEmmanuel VadotallOf:
131e67e8565SEmmanuel Vadot  - if:
132e67e8565SEmmanuel Vadot      properties:
133e67e8565SEmmanuel Vadot        compatible:
134e67e8565SEmmanuel Vadot          contains:
135*0e8011faSEmmanuel Vadot            enum:
136*0e8011faSEmmanuel Vadot              - adi,ad3541r
137*0e8011faSEmmanuel Vadot              - adi,ad3542r
138e67e8565SEmmanuel Vadot    then:
139e67e8565SEmmanuel Vadot      patternProperties:
140e67e8565SEmmanuel Vadot        "^channel@([0-1])$":
141e67e8565SEmmanuel Vadot          type: object
142e67e8565SEmmanuel Vadot          properties:
143e67e8565SEmmanuel Vadot            adi,output-range-microvolt:
144e67e8565SEmmanuel Vadot              description: |
145e67e8565SEmmanuel Vadot                Voltage output range of the channel as <minimum, maximum>
146e67e8565SEmmanuel Vadot                Required connections:
147e67e8565SEmmanuel Vadot                  Rfb1x for: 0 to 2.5 V; 0 to 3V; 0 to 5 V;
1487d0873ebSEmmanuel Vadot                  Rfb2x for: 0 to 10 V; -2.5 to 7.5V; -5 to 5 V;
149e67e8565SEmmanuel Vadot              oneOf:
150e67e8565SEmmanuel Vadot                - items:
151e67e8565SEmmanuel Vadot                    - const: 0
152e67e8565SEmmanuel Vadot                    - enum: [2500000, 3000000, 5000000, 10000000]
153e67e8565SEmmanuel Vadot                - items:
154e67e8565SEmmanuel Vadot                    - const: -2500000
155e67e8565SEmmanuel Vadot                    - const: 7500000
156e67e8565SEmmanuel Vadot                - items:
157e67e8565SEmmanuel Vadot                    - const: -5000000
158e67e8565SEmmanuel Vadot                    - const: 5000000
159e67e8565SEmmanuel Vadot
160e67e8565SEmmanuel Vadot          required:
161e67e8565SEmmanuel Vadot            - adi,output-range-microvolt
162e67e8565SEmmanuel Vadot
163e67e8565SEmmanuel Vadot  - if:
164e67e8565SEmmanuel Vadot      properties:
165e67e8565SEmmanuel Vadot        compatible:
166e67e8565SEmmanuel Vadot          contains:
167*0e8011faSEmmanuel Vadot            enum:
168*0e8011faSEmmanuel Vadot              - adi,ad3551r
169*0e8011faSEmmanuel Vadot              - adi,ad3552r
170e67e8565SEmmanuel Vadot    then:
171e67e8565SEmmanuel Vadot      patternProperties:
172e67e8565SEmmanuel Vadot        "^channel@([0-1])$":
173e67e8565SEmmanuel Vadot          type: object
174e67e8565SEmmanuel Vadot          properties:
175e67e8565SEmmanuel Vadot            adi,output-range-microvolt:
176e67e8565SEmmanuel Vadot              description: |
177e67e8565SEmmanuel Vadot                Voltage output range of the channel as <minimum, maximum>
178e67e8565SEmmanuel Vadot                Required connections:
179e67e8565SEmmanuel Vadot                  Rfb1x for: 0 to 2.5 V; 0 to 5 V;
180e67e8565SEmmanuel Vadot                  Rfb2x for: 0 to 10 V; -5 to 5 V;
181e67e8565SEmmanuel Vadot                  Rfb4x for: -10 to 10V
182e67e8565SEmmanuel Vadot              oneOf:
183e67e8565SEmmanuel Vadot                - items:
184e67e8565SEmmanuel Vadot                    - const: 0
185e67e8565SEmmanuel Vadot                    - enum: [2500000, 5000000, 10000000]
186e67e8565SEmmanuel Vadot                - items:
187e67e8565SEmmanuel Vadot                    - const: -5000000
188e67e8565SEmmanuel Vadot                    - const: 5000000
189e67e8565SEmmanuel Vadot                - items:
190e67e8565SEmmanuel Vadot                    - const: -10000000
191e67e8565SEmmanuel Vadot                    - const: 10000000
192e67e8565SEmmanuel Vadot
193*0e8011faSEmmanuel Vadot  - if:
194*0e8011faSEmmanuel Vadot      properties:
195*0e8011faSEmmanuel Vadot        compatible:
196*0e8011faSEmmanuel Vadot          contains:
197*0e8011faSEmmanuel Vadot            enum:
198*0e8011faSEmmanuel Vadot              - adi,ad3541r
199*0e8011faSEmmanuel Vadot              - adi,ad3551r
200*0e8011faSEmmanuel Vadot    then:
201*0e8011faSEmmanuel Vadot      properties:
202*0e8011faSEmmanuel Vadot        channel@1: false
203*0e8011faSEmmanuel Vadot        channel@0:
204*0e8011faSEmmanuel Vadot          properties:
205*0e8011faSEmmanuel Vadot            reg:
206*0e8011faSEmmanuel Vadot              const: 0
207*0e8011faSEmmanuel Vadot
208e67e8565SEmmanuel Vadotrequired:
209e67e8565SEmmanuel Vadot  - compatible
210e67e8565SEmmanuel Vadot  - reg
211e67e8565SEmmanuel Vadot  - spi-max-frequency
212e67e8565SEmmanuel Vadot
213e67e8565SEmmanuel VadotadditionalProperties: false
214e67e8565SEmmanuel Vadot
215e67e8565SEmmanuel Vadotexamples:
216e67e8565SEmmanuel Vadot  - |
217e67e8565SEmmanuel Vadot    spi {
218e67e8565SEmmanuel Vadot        #address-cells = <1>;
219e67e8565SEmmanuel Vadot        #size-cells = <0>;
220e67e8565SEmmanuel Vadot        ad3552r@0 {
221e67e8565SEmmanuel Vadot            compatible = "adi,ad3552r";
222e67e8565SEmmanuel Vadot            reg = <0>;
223e67e8565SEmmanuel Vadot            spi-max-frequency = <20000000>;
224e67e8565SEmmanuel Vadot            #address-cells = <1>;
225e67e8565SEmmanuel Vadot            #size-cells = <0>;
226e67e8565SEmmanuel Vadot            channel@0 {
227e67e8565SEmmanuel Vadot                reg = <0>;
228e67e8565SEmmanuel Vadot                adi,output-range-microvolt = <0 10000000>;
229e67e8565SEmmanuel Vadot            };
230e67e8565SEmmanuel Vadot            channel@1 {
231e67e8565SEmmanuel Vadot                reg = <1>;
232e67e8565SEmmanuel Vadot                custom-output-range-config {
233e67e8565SEmmanuel Vadot                    adi,gain-offset = <5>;
234*0e8011faSEmmanuel Vadot                    adi,gain-scaling-p = <1>;
235*0e8011faSEmmanuel Vadot                    adi,gain-scaling-n = <2>;
236e67e8565SEmmanuel Vadot                    adi,rfb-ohms = <1>;
237e67e8565SEmmanuel Vadot                };
238e67e8565SEmmanuel Vadot            };
239e67e8565SEmmanuel Vadot        };
240e67e8565SEmmanuel Vadot    };
241e67e8565SEmmanuel Vadot...
242