xref: /linux/Documentation/devicetree/bindings/iio/dac/microchip,mcp47feb02.yaml (revision c17ee635fd3a482b2ad2bf5e269755c2eae5f25e)
1*4ba12d30SAriana Lazar# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2*4ba12d30SAriana Lazar%YAML 1.2
3*4ba12d30SAriana Lazar---
4*4ba12d30SAriana Lazar$id: http://devicetree.org/schemas/iio/dac/microchip,mcp47feb02.yaml#
5*4ba12d30SAriana Lazar$schema: http://devicetree.org/meta-schemas/core.yaml#
6*4ba12d30SAriana Lazar
7*4ba12d30SAriana Lazartitle: Microchip MCP47F(E/V)B(0/1/2)(1/2/4/8) DAC with I2C Interface Families
8*4ba12d30SAriana Lazar
9*4ba12d30SAriana Lazarmaintainers:
10*4ba12d30SAriana Lazar  - Ariana Lazar <ariana.lazar@microchip.com>
11*4ba12d30SAriana Lazar
12*4ba12d30SAriana Lazardescription: |
13*4ba12d30SAriana Lazar  Datasheet for MCP47FEB01, MCP47FEB11, MCP47FEB21, MCP47FEB02, MCP47FEB12,
14*4ba12d30SAriana Lazar  MCP47FEB22 can be found here:
15*4ba12d30SAriana Lazar    https://ww1.microchip.com/downloads/aemDocuments/documents/OTH/ProductDocuments/DataSheets/20005375A.pdf
16*4ba12d30SAriana Lazar  Datasheet for MCP47FVB01, MCP47FVB11, MCP47FVB21, MCP47FVB02, MCP47FVB12,
17*4ba12d30SAriana Lazar  MCP47FVB22 can be found here:
18*4ba12d30SAriana Lazar    https://ww1.microchip.com/downloads/aemDocuments/documents/OTH/ProductDocuments/DataSheets/20005405A.pdf
19*4ba12d30SAriana Lazar  Datasheet for MCP47FEB04, MCP47FEB14, MCP47FEB24, MCP47FEB08, MCP47FEB18,
20*4ba12d30SAriana Lazar  MCP47FEB28, MCP47FVB04, MCP47FVB14, MCP47FVB24, MCP47FVB08, MCP47FVB18,
21*4ba12d30SAriana Lazar  MCP47FVB28 can be found here:
22*4ba12d30SAriana Lazar    https://ww1.microchip.com/downloads/aemDocuments/documents/MSLD/ProductDocuments/DataSheets/MCP47FXBX48-Data-Sheet-DS200006368A.pdf
23*4ba12d30SAriana Lazar
24*4ba12d30SAriana Lazar  +------------+--------------+-------------+-------------+------------+
25*4ba12d30SAriana Lazar  | Device     |  Resolution  |   Channels  | Vref number | Memory     |
26*4ba12d30SAriana Lazar  |------------|--------------|-------------|-------------|------------|
27*4ba12d30SAriana Lazar  | MCP47FEB01 |     8-bit    |      1      |      1      |   EEPROM   |
28*4ba12d30SAriana Lazar  | MCP47FEB11 |    10-bit    |      1      |      1      |   EEPROM   |
29*4ba12d30SAriana Lazar  | MCP47FEB21 |    12-bit    |      1      |      1      |   EEPROM   |
30*4ba12d30SAriana Lazar  |------------|--------------|-------------|-------------|------------|
31*4ba12d30SAriana Lazar  | MCP47FEB02 |     8-bit    |      2      |      1      |   EEPROM   |
32*4ba12d30SAriana Lazar  | MCP47FEB12 |    10-bit    |      2      |      1      |   EEPROM   |
33*4ba12d30SAriana Lazar  | MCP47FEB22 |    12-bit    |      2      |      1      |   EEPROM   |
34*4ba12d30SAriana Lazar  |------------|--------------|-------------|-------------|------------|
35*4ba12d30SAriana Lazar  | MCP47FVB01 |     8-bit    |      1      |      1      |      RAM   |
36*4ba12d30SAriana Lazar  | MCP47FVB11 |    10-bit    |      1      |      1      |      RAM   |
37*4ba12d30SAriana Lazar  | MCP47FVB21 |    12-bit    |      1      |      1      |      RAM   |
38*4ba12d30SAriana Lazar  |------------|--------------|-------------|-------------|------------|
39*4ba12d30SAriana Lazar  | MCP47FVB02 |     8-bit    |      2      |      1      |      RAM   |
40*4ba12d30SAriana Lazar  | MCP47FVB12 |    10-bit    |      2      |      1      |      RAM   |
41*4ba12d30SAriana Lazar  | MCP47FVB22 |    12-bit    |      2      |      1      |      RAM   |
42*4ba12d30SAriana Lazar  |------------|--------------|-------------|-------------|------------|
43*4ba12d30SAriana Lazar  | MCP47FVB04 |     8-bit    |      4      |      2      |      RAM   |
44*4ba12d30SAriana Lazar  | MCP47FVB14 |    10-bit    |      4      |      2      |      RAM   |
45*4ba12d30SAriana Lazar  | MCP47FVB24 |    12-bit    |      4      |      2      |      RAM   |
46*4ba12d30SAriana Lazar  |------------|--------------|-------------|-------------|------------|
47*4ba12d30SAriana Lazar  | MCP47FVB08 |     8-bit    |      8      |      2      |      RAM   |
48*4ba12d30SAriana Lazar  | MCP47FVB18 |    10-bit    |      8      |      2      |      RAM   |
49*4ba12d30SAriana Lazar  | MCP47FVB28 |    12-bit    |      8      |      2      |      RAM   |
50*4ba12d30SAriana Lazar  |------------|--------------|-------------|-------------|------------|
51*4ba12d30SAriana Lazar  | MCP47FEB04 |     8-bit    |      4      |      2      |   EEPROM   |
52*4ba12d30SAriana Lazar  | MCP47FEB14 |    10-bit    |      4      |      2      |   EEPROM   |
53*4ba12d30SAriana Lazar  | MCP47FEB24 |    12-bit    |      4      |      2      |   EEPROM   |
54*4ba12d30SAriana Lazar  |------------|--------------|-------------|-------------|------------|
55*4ba12d30SAriana Lazar  | MCP47FEB08 |     8-bit    |      8      |      2      |   EEPROM   |
56*4ba12d30SAriana Lazar  | MCP47FEB18 |    10-bit    |      8      |      2      |   EEPROM   |
57*4ba12d30SAriana Lazar  | MCP47FEB28 |    12-bit    |      8      |      2      |   EEPROM   |
58*4ba12d30SAriana Lazar  +------------+--------------+-------------+-------------+------------+
59*4ba12d30SAriana Lazar
60*4ba12d30SAriana Lazarproperties:
61*4ba12d30SAriana Lazar  compatible:
62*4ba12d30SAriana Lazar    enum:
63*4ba12d30SAriana Lazar      - microchip,mcp47feb01
64*4ba12d30SAriana Lazar      - microchip,mcp47feb11
65*4ba12d30SAriana Lazar      - microchip,mcp47feb21
66*4ba12d30SAriana Lazar      - microchip,mcp47feb02
67*4ba12d30SAriana Lazar      - microchip,mcp47feb12
68*4ba12d30SAriana Lazar      - microchip,mcp47feb22
69*4ba12d30SAriana Lazar      - microchip,mcp47fvb01
70*4ba12d30SAriana Lazar      - microchip,mcp47fvb11
71*4ba12d30SAriana Lazar      - microchip,mcp47fvb21
72*4ba12d30SAriana Lazar      - microchip,mcp47fvb02
73*4ba12d30SAriana Lazar      - microchip,mcp47fvb12
74*4ba12d30SAriana Lazar      - microchip,mcp47fvb22
75*4ba12d30SAriana Lazar      - microchip,mcp47fvb04
76*4ba12d30SAriana Lazar      - microchip,mcp47fvb14
77*4ba12d30SAriana Lazar      - microchip,mcp47fvb24
78*4ba12d30SAriana Lazar      - microchip,mcp47fvb08
79*4ba12d30SAriana Lazar      - microchip,mcp47fvb18
80*4ba12d30SAriana Lazar      - microchip,mcp47fvb28
81*4ba12d30SAriana Lazar      - microchip,mcp47feb04
82*4ba12d30SAriana Lazar      - microchip,mcp47feb14
83*4ba12d30SAriana Lazar      - microchip,mcp47feb24
84*4ba12d30SAriana Lazar      - microchip,mcp47feb08
85*4ba12d30SAriana Lazar      - microchip,mcp47feb18
86*4ba12d30SAriana Lazar      - microchip,mcp47feb28
87*4ba12d30SAriana Lazar
88*4ba12d30SAriana Lazar  reg:
89*4ba12d30SAriana Lazar    maxItems: 1
90*4ba12d30SAriana Lazar
91*4ba12d30SAriana Lazar  "#address-cells":
92*4ba12d30SAriana Lazar    const: 1
93*4ba12d30SAriana Lazar
94*4ba12d30SAriana Lazar  "#size-cells":
95*4ba12d30SAriana Lazar    const: 0
96*4ba12d30SAriana Lazar
97*4ba12d30SAriana Lazar  vdd-supply:
98*4ba12d30SAriana Lazar    description:
99*4ba12d30SAriana Lazar      Provides power to the chip and it could be used as reference voltage. The
100*4ba12d30SAriana Lazar      voltage is used to calculate scale. For parts without EEPROM at powerup
101*4ba12d30SAriana Lazar      this will be the selected as voltage reference.
102*4ba12d30SAriana Lazar
103*4ba12d30SAriana Lazar  vref-supply:
104*4ba12d30SAriana Lazar    description: |
105*4ba12d30SAriana Lazar      Vref pin (it could be found as Vref0 into the datasheet) may be used as a
106*4ba12d30SAriana Lazar      voltage reference when this supply is specified. The internal reference
107*4ba12d30SAriana Lazar      will be taken into account for voltage reference besides VDD if this supply
108*4ba12d30SAriana Lazar      does not exist.
109*4ba12d30SAriana Lazar
110*4ba12d30SAriana Lazar      This supply will be voltage reference for the following outputs:
111*4ba12d30SAriana Lazar        - for single-channel device: Vout0;
112*4ba12d30SAriana Lazar        - for dual-channel device: Vout0, Vout1;
113*4ba12d30SAriana Lazar        - for quad-channel device: Vout0, Vout2;
114*4ba12d30SAriana Lazar        - for octal-channel device: Vout0, Vout2, Vout6, Vout8;
115*4ba12d30SAriana Lazar
116*4ba12d30SAriana Lazar  vref1-supply:
117*4ba12d30SAriana Lazar    description: |
118*4ba12d30SAriana Lazar      Vref1 pin may be used as a voltage reference when this supply is specified.
119*4ba12d30SAriana Lazar      The internal reference will be taken into account for voltage reference
120*4ba12d30SAriana Lazar      beside VDD if this supply does not exist.
121*4ba12d30SAriana Lazar
122*4ba12d30SAriana Lazar      This supply will be voltage reference for the following outputs:
123*4ba12d30SAriana Lazar        - for quad-channel device: Vout1, Vout3;
124*4ba12d30SAriana Lazar        - for octal-channel device: Vout1, Vout3, Vout5, Vout7;
125*4ba12d30SAriana Lazar
126*4ba12d30SAriana Lazar  lat-gpios:
127*4ba12d30SAriana Lazar    description:
128*4ba12d30SAriana Lazar      LAT pin to be used as a hardware trigger to synchronously update the DAC
129*4ba12d30SAriana Lazar      channels. The pin is active Low. It could be also found as LAT0 in
130*4ba12d30SAriana Lazar      datasheet.
131*4ba12d30SAriana Lazar    maxItems: 1
132*4ba12d30SAriana Lazar
133*4ba12d30SAriana Lazar  lat1-gpios:
134*4ba12d30SAriana Lazar    description:
135*4ba12d30SAriana Lazar      LAT1 pin to be used as a hardware trigger to synchronously update the odd
136*4ba12d30SAriana Lazar      DAC channels on devices with 4 and 8 channels. The pin is active Low.
137*4ba12d30SAriana Lazar    maxItems: 1
138*4ba12d30SAriana Lazar
139*4ba12d30SAriana Lazar  microchip,vref-buffered:
140*4ba12d30SAriana Lazar    type: boolean
141*4ba12d30SAriana Lazar    description:
142*4ba12d30SAriana Lazar      Enable buffering of the external Vref/Vref0 pin in cases where the
143*4ba12d30SAriana Lazar      external reference voltage does not have sufficient current capability in
144*4ba12d30SAriana Lazar      order not to drop its voltage when connected to the internal resistor
145*4ba12d30SAriana Lazar      ladder circuit.
146*4ba12d30SAriana Lazar
147*4ba12d30SAriana Lazar  microchip,vref1-buffered:
148*4ba12d30SAriana Lazar    type: boolean
149*4ba12d30SAriana Lazar    description:
150*4ba12d30SAriana Lazar      Enable buffering of the external Vref1 pin in cases where the external
151*4ba12d30SAriana Lazar      reference voltage does not have sufficient current capability in order not
152*4ba12d30SAriana Lazar      to drop its voltage when connected to the internal resistor ladder
153*4ba12d30SAriana Lazar      circuit.
154*4ba12d30SAriana Lazar
155*4ba12d30SAriana LazarpatternProperties:
156*4ba12d30SAriana Lazar  "^channel@[0-7]$":
157*4ba12d30SAriana Lazar    $ref: dac.yaml
158*4ba12d30SAriana Lazar    type: object
159*4ba12d30SAriana Lazar    description: Voltage output channel.
160*4ba12d30SAriana Lazar
161*4ba12d30SAriana Lazar    properties:
162*4ba12d30SAriana Lazar      reg:
163*4ba12d30SAriana Lazar        description: The channel number.
164*4ba12d30SAriana Lazar        minItems: 1
165*4ba12d30SAriana Lazar        maxItems: 8
166*4ba12d30SAriana Lazar
167*4ba12d30SAriana Lazar      label:
168*4ba12d30SAriana Lazar        description: Unique name to identify which channel this is.
169*4ba12d30SAriana Lazar
170*4ba12d30SAriana Lazar    required:
171*4ba12d30SAriana Lazar      - reg
172*4ba12d30SAriana Lazar
173*4ba12d30SAriana Lazar    unevaluatedProperties: false
174*4ba12d30SAriana Lazar
175*4ba12d30SAriana Lazarrequired:
176*4ba12d30SAriana Lazar  - compatible
177*4ba12d30SAriana Lazar  - reg
178*4ba12d30SAriana Lazar  - vdd-supply
179*4ba12d30SAriana Lazar
180*4ba12d30SAriana LazarallOf:
181*4ba12d30SAriana Lazar  - if:
182*4ba12d30SAriana Lazar      properties:
183*4ba12d30SAriana Lazar        compatible:
184*4ba12d30SAriana Lazar          contains:
185*4ba12d30SAriana Lazar            enum:
186*4ba12d30SAriana Lazar              - microchip,mcp47feb01
187*4ba12d30SAriana Lazar              - microchip,mcp47feb11
188*4ba12d30SAriana Lazar              - microchip,mcp47feb21
189*4ba12d30SAriana Lazar              - microchip,mcp47fvb01
190*4ba12d30SAriana Lazar              - microchip,mcp47fvb11
191*4ba12d30SAriana Lazar              - microchip,mcp47fvb21
192*4ba12d30SAriana Lazar    then:
193*4ba12d30SAriana Lazar      properties:
194*4ba12d30SAriana Lazar        lat1-gpios: false
195*4ba12d30SAriana Lazar        vref1-supply: false
196*4ba12d30SAriana Lazar        microchip,vref1-buffered: false
197*4ba12d30SAriana Lazar        channel@0:
198*4ba12d30SAriana Lazar          properties:
199*4ba12d30SAriana Lazar            reg:
200*4ba12d30SAriana Lazar              const: 0
201*4ba12d30SAriana Lazar      patternProperties:
202*4ba12d30SAriana Lazar        "^channel@[1-7]$": false
203*4ba12d30SAriana Lazar  - if:
204*4ba12d30SAriana Lazar      properties:
205*4ba12d30SAriana Lazar        compatible:
206*4ba12d30SAriana Lazar          contains:
207*4ba12d30SAriana Lazar            enum:
208*4ba12d30SAriana Lazar              - microchip,mcp47feb02
209*4ba12d30SAriana Lazar              - microchip,mcp47feb12
210*4ba12d30SAriana Lazar              - microchip,mcp47feb22
211*4ba12d30SAriana Lazar              - microchip,mcp47fvb02
212*4ba12d30SAriana Lazar              - microchip,mcp47fvb12
213*4ba12d30SAriana Lazar              - microchip,mcp47fvb22
214*4ba12d30SAriana Lazar    then:
215*4ba12d30SAriana Lazar      properties:
216*4ba12d30SAriana Lazar        lat1-gpios: false
217*4ba12d30SAriana Lazar        vref1-supply: false
218*4ba12d30SAriana Lazar        microchip,vref1-buffered: false
219*4ba12d30SAriana Lazar      patternProperties:
220*4ba12d30SAriana Lazar        "^channel@[0-1]$":
221*4ba12d30SAriana Lazar          properties:
222*4ba12d30SAriana Lazar            reg:
223*4ba12d30SAriana Lazar              enum: [0, 1]
224*4ba12d30SAriana Lazar        "^channel@[2-7]$": false
225*4ba12d30SAriana Lazar  - if:
226*4ba12d30SAriana Lazar      properties:
227*4ba12d30SAriana Lazar        compatible:
228*4ba12d30SAriana Lazar          contains:
229*4ba12d30SAriana Lazar            enum:
230*4ba12d30SAriana Lazar              - microchip,mcp47fvb04
231*4ba12d30SAriana Lazar              - microchip,mcp47fvb14
232*4ba12d30SAriana Lazar              - microchip,mcp47fvb24
233*4ba12d30SAriana Lazar              - microchip,mcp47feb04
234*4ba12d30SAriana Lazar              - microchip,mcp47feb14
235*4ba12d30SAriana Lazar              - microchip,mcp47feb24
236*4ba12d30SAriana Lazar    then:
237*4ba12d30SAriana Lazar      patternProperties:
238*4ba12d30SAriana Lazar        "^channel@[0-3]$":
239*4ba12d30SAriana Lazar          properties:
240*4ba12d30SAriana Lazar            reg:
241*4ba12d30SAriana Lazar              enum: [0, 1, 2, 3]
242*4ba12d30SAriana Lazar        "^channel@[4-7]$": false
243*4ba12d30SAriana Lazar  - if:
244*4ba12d30SAriana Lazar      properties:
245*4ba12d30SAriana Lazar        compatible:
246*4ba12d30SAriana Lazar          contains:
247*4ba12d30SAriana Lazar            enum:
248*4ba12d30SAriana Lazar              - microchip,mcp47fvb08
249*4ba12d30SAriana Lazar              - microchip,mcp47fvb18
250*4ba12d30SAriana Lazar              - microchip,mcp47fvb28
251*4ba12d30SAriana Lazar              - microchip,mcp47feb08
252*4ba12d30SAriana Lazar              - microchip,mcp47feb18
253*4ba12d30SAriana Lazar              - microchip,mcp47feb28
254*4ba12d30SAriana Lazar    then:
255*4ba12d30SAriana Lazar      patternProperties:
256*4ba12d30SAriana Lazar        "^channel@[0-7]$":
257*4ba12d30SAriana Lazar          properties:
258*4ba12d30SAriana Lazar            reg:
259*4ba12d30SAriana Lazar              enum: [0, 1, 2, 3, 4, 5, 6, 7]
260*4ba12d30SAriana Lazar  - if:
261*4ba12d30SAriana Lazar      not:
262*4ba12d30SAriana Lazar        required:
263*4ba12d30SAriana Lazar          - vref-supply
264*4ba12d30SAriana Lazar    then:
265*4ba12d30SAriana Lazar      properties:
266*4ba12d30SAriana Lazar        microchip,vref-buffered: false
267*4ba12d30SAriana Lazar  - if:
268*4ba12d30SAriana Lazar      not:
269*4ba12d30SAriana Lazar        required:
270*4ba12d30SAriana Lazar          - vref1-supply
271*4ba12d30SAriana Lazar    then:
272*4ba12d30SAriana Lazar      properties:
273*4ba12d30SAriana Lazar        microchip,vref1-buffered: false
274*4ba12d30SAriana Lazar
275*4ba12d30SAriana LazaradditionalProperties: false
276*4ba12d30SAriana Lazar
277*4ba12d30SAriana Lazarexamples:
278*4ba12d30SAriana Lazar  - |
279*4ba12d30SAriana Lazar    i2c {
280*4ba12d30SAriana Lazar
281*4ba12d30SAriana Lazar        #address-cells = <1>;
282*4ba12d30SAriana Lazar        #size-cells = <0>;
283*4ba12d30SAriana Lazar        dac@0 {
284*4ba12d30SAriana Lazar          compatible = "microchip,mcp47feb02";
285*4ba12d30SAriana Lazar          reg = <0>;
286*4ba12d30SAriana Lazar          vdd-supply = <&vdac_vdd>;
287*4ba12d30SAriana Lazar          vref-supply = <&vref_reg>;
288*4ba12d30SAriana Lazar
289*4ba12d30SAriana Lazar          #address-cells = <1>;
290*4ba12d30SAriana Lazar          #size-cells = <0>;
291*4ba12d30SAriana Lazar          channel@0 {
292*4ba12d30SAriana Lazar            reg = <0>;
293*4ba12d30SAriana Lazar            label = "Adjustable_voltage_ch0";
294*4ba12d30SAriana Lazar          };
295*4ba12d30SAriana Lazar
296*4ba12d30SAriana Lazar          channel@1 {
297*4ba12d30SAriana Lazar            reg = <0x1>;
298*4ba12d30SAriana Lazar            label = "Adjustable_voltage_ch1";
299*4ba12d30SAriana Lazar          };
300*4ba12d30SAriana Lazar      };
301*4ba12d30SAriana Lazar    };
302*4ba12d30SAriana Lazar...
303