]> git.ipfire.org Git - thirdparty/u-boot.git/blob - Bindings/regulator/maxim,max8997.yaml
Squashed 'dts/upstream/' content from commit aaba2d45dc2a
[thirdparty/u-boot.git] / Bindings / regulator / maxim,max8997.yaml
1 # SPDX-License-Identifier: GPL-2.0-only
2 %YAML 1.2
3 ---
4 $id: http://devicetree.org/schemas/regulator/maxim,max8997.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: Maxim MAX8997 Power Management IC
8
9 maintainers:
10 - Krzysztof Kozlowski <krzk@kernel.org>
11
12 description: |
13 The Maxim MAX8997 is a Power Management IC which includes voltage and current
14 regulators, charger controller with fuel gauge, RTC, clock outputs, haptic
15 motor driver, flash LED driver and Micro-USB Interface Controller.
16
17 The binding here is not complete and describes only regulator and charger
18 controller parts.
19
20 properties:
21 compatible:
22 const: maxim,max8997-pmic
23
24 charger-supply:
25 description: |
26 Regulator node for charging current.
27
28 interrupts:
29 items:
30 - description: irq1 interrupt
31 - description: alert interrupt
32
33 max8997,pmic-buck1-dvs-voltage:
34 $ref: /schemas/types.yaml#/definitions/uint32-array
35 minItems: 1
36 maxItems: 8
37 description: |
38 A set of 8 voltage values in micro-volt (uV) units for buck1 when
39 changing voltage using GPIO DVS.
40 If none of max8997,pmic-buck[1/2/5]-uses-gpio-dvs optional property is
41 specified, the max8997,pmic-buck[1/2/5]-dvs-voltage property should
42 specify at least one voltage level (which would be a safe operating
43 voltage).
44
45 max8997,pmic-buck2-dvs-voltage:
46 $ref: /schemas/types.yaml#/definitions/uint32-array
47 minItems: 1
48 maxItems: 8
49 description: |
50 A set of 8 voltage values in micro-volt (uV) units for buck2 when
51 changing voltage using GPIO DVS.
52 If none of max8997,pmic-buck[1/2/5]-uses-gpio-dvs optional property is
53 specified, the max8997,pmic-buck[1/2/5]-dvs-voltage property should
54 specify at least one voltage level (which would be a safe operating
55 voltage).
56
57 max8997,pmic-buck5-dvs-voltage:
58 $ref: /schemas/types.yaml#/definitions/uint32-array
59 minItems: 1
60 maxItems: 8
61 description: |
62 A set of 8 voltage values in micro-volt (uV) units for buck5 when
63 changing voltage using GPIO DVS.
64 If none of max8997,pmic-buck[1/2/5]-uses-gpio-dvs optional property is
65 specified, the max8997,pmic-buck[1/2/5]-dvs-voltage property should
66 specify at least one voltage level (which would be a safe operating
67 voltage).
68
69 max8997,pmic-buck1-uses-gpio-dvs:
70 type: boolean
71 description: |
72 buck1 can be controlled by GPIO DVS.
73
74 max8997,pmic-buck2-uses-gpio-dvs:
75 type: boolean
76 description: |
77 buck2 can be controlled by GPIO DVS.
78
79 max8997,pmic-buck5-uses-gpio-dvs:
80 type: boolean
81 description: |
82 buck5 can be controlled by GPIO DVS.
83
84 max8997,pmic-buck125-default-dvs-idx:
85 $ref: /schemas/types.yaml#/definitions/uint32
86 minimum: 0
87 maximum: 7
88 default: 0
89 description: |
90 Default voltage setting selected from the possible 8 options selectable
91 by the dvs gpios. The value of this property should be between 0 and 7.
92 If not specified or if out of range, the default value of this property
93 is set to 0.
94
95 max8997,pmic-buck125-dvs-gpios:
96 minItems: 3
97 maxItems: 3
98 description: |
99 GPIO specifiers for three host gpio's used for DVS.
100
101 max8997,pmic-ignore-gpiodvs-side-effect:
102 type: boolean
103 description: |
104 When GPIO-DVS mode is used for multiple bucks, changing the voltage value
105 of one of the bucks may affect that of another buck, which is the side
106 effect of the change (set_voltage). Use this property to ignore such
107 side effects and change the voltage.
108
109 reg:
110 maxItems: 1
111
112 regulators:
113 type: object
114 additionalProperties: false
115 description:
116 List of child nodes that specify the regulators.
117
118 patternProperties:
119 # 1-18 and 21 LDOs
120 "^LDO([1-9]|1[0-8]|21)$":
121 type: object
122 $ref: regulator.yaml#
123 description:
124 Properties for single LDO regulator.
125
126 properties:
127 regulator-name: true
128
129 required:
130 - regulator-name
131
132 unevaluatedProperties: false
133
134 # 7 bucks
135 "^BUCK[1-7]$":
136 type: object
137 $ref: regulator.yaml#
138 description:
139 Properties for single BUCK regulator.
140
141 properties:
142 regulator-name: true
143
144 required:
145 - regulator-name
146
147 unevaluatedProperties: false
148
149 "^EN32KHZ_[AC]P$":
150 type: object
151 $ref: regulator.yaml#
152 description:
153 32768 Hz clock output (modelled as regulator)
154
155 properties:
156 regulator-name: true
157 regulator-always-on: true
158 regulator-boot-on: true
159
160 required:
161 - regulator-name
162
163 additionalProperties: false
164
165 properties:
166 CHARGER:
167 type: object
168 $ref: regulator.yaml#
169 description: main battery charger current control
170
171 properties:
172 regulator-name: true
173
174 required:
175 - regulator-name
176
177 unevaluatedProperties: false
178
179 CHARGER_CV:
180 type: object
181 $ref: regulator.yaml#
182 description: main battery charger voltage control
183
184 properties:
185 regulator-name: true
186
187 required:
188 - regulator-name
189
190 unevaluatedProperties: false
191
192 CHARGER_TOPOFF:
193 type: object
194 $ref: regulator.yaml#
195 description: end of charge current threshold level
196
197 properties:
198 regulator-name: true
199
200 required:
201 - regulator-name
202
203 unevaluatedProperties: false
204
205 ENVICHG:
206 type: object
207 $ref: regulator.yaml#
208 description: |
209 Battery Charging Current Monitor Output. This is a fixed voltage type
210 regulator
211 properties:
212 regulator-name: true
213
214 required:
215 - regulator-name
216
217 unevaluatedProperties: false
218
219 ESAFEOUT1:
220 type: object
221 $ref: regulator.yaml#
222 description: LDO19
223
224 properties:
225 regulator-name: true
226
227 required:
228 - regulator-name
229
230 unevaluatedProperties: false
231
232 ESAFEOUT2:
233 type: object
234 $ref: regulator.yaml#
235 description: LDO20
236
237 properties:
238 regulator-name: true
239
240 required:
241 - regulator-name
242
243 unevaluatedProperties: false
244
245 required:
246 - compatible
247 - max8997,pmic-buck1-dvs-voltage
248 - max8997,pmic-buck2-dvs-voltage
249 - max8997,pmic-buck5-dvs-voltage
250 - reg
251 - regulators
252
253 dependencies:
254 max8997,pmic-buck1-uses-gpio-dvs: [ 'max8997,pmic-buck125-dvs-gpios' ]
255 max8997,pmic-buck2-uses-gpio-dvs: [ 'max8997,pmic-buck125-dvs-gpios' ]
256 max8997,pmic-buck5-uses-gpio-dvs: [ 'max8997,pmic-buck125-dvs-gpios' ]
257
258 additionalProperties: false
259
260 if:
261 anyOf:
262 - required:
263 - max8997,pmic-buck1-uses-gpio-dvs
264 - required:
265 - max8997,pmic-buck2-uses-gpio-dvs
266 - required:
267 - max8997,pmic-buck5-uses-gpio-dvs
268 then:
269 properties:
270 max8997,pmic-buck1-dvs-voltage:
271 minItems: 8
272 maxItems: 8
273 max8997,pmic-buck2-dvs-voltage:
274 minItems: 8
275 maxItems: 8
276 max8997,pmic-buck5-dvs-voltage:
277 minItems: 8
278 maxItems: 8
279
280 examples:
281 - |
282 #include <dt-bindings/gpio/gpio.h>
283 #include <dt-bindings/interrupt-controller/irq.h>
284
285 i2c {
286 #address-cells = <1>;
287 #size-cells = <0>;
288
289 pmic@66 {
290 compatible = "maxim,max8997-pmic";
291 reg = <0x66>;
292
293 interrupts-extended = <&gpx0 7 IRQ_TYPE_LEVEL_LOW>,
294 <&gpx2 3 IRQ_TYPE_EDGE_FALLING>;
295
296 max8997,pmic-buck1-uses-gpio-dvs;
297 max8997,pmic-buck2-uses-gpio-dvs;
298 max8997,pmic-buck5-uses-gpio-dvs;
299
300 max8997,pmic-ignore-gpiodvs-side-effect;
301 max8997,pmic-buck125-default-dvs-idx = <0>;
302
303 max8997,pmic-buck125-dvs-gpios = <&gpx0 5 GPIO_ACTIVE_HIGH>,
304 <&gpx0 6 GPIO_ACTIVE_HIGH>,
305 <&gpl0 0 GPIO_ACTIVE_HIGH>;
306
307 max8997,pmic-buck1-dvs-voltage = <1350000>, <1300000>,
308 <1250000>, <1200000>,
309 <1150000>, <1100000>,
310 <1000000>, <950000>;
311
312 max8997,pmic-buck2-dvs-voltage = <1100000>, <1000000>,
313 <950000>, <900000>,
314 <1100000>, <1000000>,
315 <950000>, <900000>;
316
317 max8997,pmic-buck5-dvs-voltage = <1200000>, <1200000>,
318 <1200000>, <1200000>,
319 <1200000>, <1200000>,
320 <1200000>, <1200000>;
321
322 pinctrl-0 = <&max8997_irq>, <&otg_gp>, <&usb_sel>;
323 pinctrl-names = "default";
324
325 charger-supply = <&charger_reg>;
326
327 regulators {
328 LDO1 {
329 regulator-name = "VADC_3.3V_C210";
330 regulator-min-microvolt = <3300000>;
331 regulator-max-microvolt = <3300000>;
332 regulator-always-on;
333 };
334
335 LDO2 {
336 regulator-name = "VALIVE_1.1V_C210";
337 regulator-min-microvolt = <1100000>;
338 regulator-max-microvolt = <1100000>;
339 regulator-always-on;
340 };
341
342 BUCK1 {
343 regulator-name = "VARM_1.2V_C210";
344 regulator-min-microvolt = <65000>;
345 regulator-max-microvolt = <2225000>;
346 regulator-always-on;
347 };
348
349 // ...
350
351 BUCK7 {
352 regulator-name = "VCC_SUB_2.0V";
353 regulator-min-microvolt = <2000000>;
354 regulator-max-microvolt = <2000000>;
355 regulator-always-on;
356 };
357
358 ESAFEOUT1 {
359 regulator-name = "SAFEOUT1";
360 };
361
362 ESAFEOUT2 {
363 regulator-name = "SAFEOUT2";
364 regulator-boot-on;
365 };
366
367 EN32KHZ_AP {
368 regulator-name = "EN32KHZ_AP";
369 regulator-always-on;
370 };
371
372 EN32KHZ_CP {
373 regulator-name = "EN32KHZ_CP";
374 regulator-always-on;
375 };
376
377 CHARGER {
378 regulator-name = "CHARGER";
379 regulator-min-microamp = <200000>;
380 regulator-max-microamp = <950000>;
381 };
382
383 CHARGER_CV {
384 regulator-name = "CHARGER_CV";
385 regulator-min-microvolt = <4200000>;
386 regulator-max-microvolt = <4200000>;
387 regulator-always-on;
388 };
389
390 CHARGER_TOPOFF {
391 regulator-name = "CHARGER_TOPOFF";
392 regulator-min-microamp = <200000>;
393 regulator-max-microamp = <200000>;
394 regulator-always-on;
395 };
396 };
397 };
398 };
399
400 - |
401 #include <dt-bindings/interrupt-controller/irq.h>
402
403 i2c {
404 #address-cells = <1>;
405 #size-cells = <0>;
406
407 pmic@66 {
408 compatible = "maxim,max8997-pmic";
409 reg = <0x66>;
410
411 interrupt-parent = <&gpx0>;
412 interrupts = <4 IRQ_TYPE_LEVEL_LOW>,
413 <3 IRQ_TYPE_EDGE_FALLING>;
414 pinctrl-names = "default";
415 pinctrl-0 = <&max8997_irq>;
416
417 max8997,pmic-buck1-dvs-voltage = <1350000>;
418 max8997,pmic-buck2-dvs-voltage = <1100000>;
419 max8997,pmic-buck5-dvs-voltage = <1200000>;
420
421 regulators {
422 LDO1 {
423 regulator-name = "VDD_ABB_3.3V";
424 regulator-min-microvolt = <3300000>;
425 regulator-max-microvolt = <3300000>;
426 };
427
428 // ...
429
430 BUCK1 {
431 regulator-name = "VDD_ARM_1.2V";
432 regulator-min-microvolt = <950000>;
433 regulator-max-microvolt = <1350000>;
434 regulator-always-on;
435 regulator-boot-on;
436 };
437
438 // ...
439
440 EN32KHZ_AP {
441 regulator-name = "EN32KHZ_AP";
442 regulator-always-on;
443 };
444 };
445 };
446 };