Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/mfd/dlg,da9063.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Dialog DA906{3L,3,2,1} Power Management Integrated Circuit (PMIC)
8
9maintainers:
10 - Steve Twiss <stwiss.opensource@diasemi.com>
11
12description: |
13 For device-tree bindings of other sub-modules refer to the binding documents
14 under the respective sub-system directories.
15 Using regulator-{uv,ov}-{warn,error,protection}-microvolt requires special
16 handling: First, when GP_FB2 is used, it must be ensured that there is no
17 moment where all voltage monitors are disabled. Next, as da9063 only supports
18 UV *and* OV monitoring, both must be set to the same severity and value
19 (0: disable, 1: enable).
20 Product information for the DA906{3L,3,2,1} devices can be found here:
21 - https://www.dialog-semiconductor.com/products/da9063l
22 - https://www.dialog-semiconductor.com/products/da9063
23 - https://www.dialog-semiconductor.com/products/da9062
24 - https://www.dialog-semiconductor.com/products/da9061
25
26properties:
27 compatible:
28 enum:
29 - dlg,da9061
30 - dlg,da9062
31 - dlg,da9063
32 - dlg,da9063l
33
34 reg:
35 maxItems: 1
36
37 interrupts:
38 maxItems: 1
39
40 interrupt-controller: true
41
42 "#interrupt-cells":
43 const: 2
44
45 gpio-controller: true
46
47 "#gpio-cells":
48 const: 2
49
50 gpio:
51 type: object
52 additionalProperties: false
53 properties:
54 compatible:
55 const: dlg,da9062-gpio
56
57 onkey:
58 $ref: /schemas/input/dlg,da9062-onkey.yaml
59
60 regulators:
61 type: object
62 additionalProperties: false
63 patternProperties:
64 "^(ldo([1-9]|1[01])|bcore([1-2]|s-merged)|b(pro|mem|io|peri)|bmem-bio-merged|buck[1-4])$":
65 $ref: /schemas/regulator/regulator.yaml
66 unevaluatedProperties: false
67
68 rtc:
69 type: object
70 $ref: /schemas/rtc/rtc.yaml#
71 unevaluatedProperties: false
72 properties:
73 compatible:
74 enum:
75 - dlg,da9062-rtc
76 - dlg,da9063-rtc
77
78 thermal:
79 $ref: /schemas/thermal/dlg,da9062-thermal.yaml
80
81 watchdog:
82 $ref: /schemas/watchdog/dlg,da9062-watchdog.yaml
83
84 wakeup-source: true
85
86patternProperties:
87 "^(.+-hog(-[0-9]+)?)$":
88 type: object
89
90 required:
91 - gpio-hog
92
93required:
94 - compatible
95 - reg
96
97allOf:
98 - if:
99 properties:
100 compatible:
101 contains:
102 enum:
103 - dlg,da9063
104 - dlg,da9063l
105 then:
106 properties:
107 gpio-controller: false
108 "#gpio-cells": false
109 gpio: false
110 regulators:
111 patternProperties:
112 "^buck[1-4]$": false
113 thermal: false
114 required:
115 - interrupts
116 - interrupt-controller
117 - '#interrupt-cells'
118
119 - if:
120 properties:
121 compatible:
122 contains:
123 enum:
124 - dlg,da9062
125 then:
126 properties:
127 regulators:
128 patternProperties:
129 "^(ldo([5-9]|10|11)|bcore([1-2]|s-merged)|b(pro|mem|io|peri)|bmem-bio-merged)$": false
130 required:
131 - gpio
132 - onkey
133 - rtc
134 - thermal
135 - watchdog
136
137 - if:
138 properties:
139 compatible:
140 contains:
141 enum:
142 - dlg,da9061
143 then:
144 properties:
145 gpio-controller: false
146 "#gpio-cells": false
147 gpio: false
148 regulators:
149 patternProperties:
150 "^(ldo([5-9]|10|11)|bcore([1-2]|s-merged)|b(pro|mem|io|peri)|bmem-bio-merged|buck4)$": false
151 rtc: false
152 required:
153 - onkey
154 - thermal
155 - watchdog
156
157additionalProperties: false
158
159examples:
160 - |
161 #include <dt-bindings/interrupt-controller/irq.h>
162 i2c {
163 #address-cells = <1>;
164 #size-cells = <0>;
165 pmic@58 {
166 compatible = "dlg,da9063";
167 reg = <0x58>;
168 interrupt-parent = <&gpio6>;
169 interrupts = <11 IRQ_TYPE_LEVEL_LOW>;
170 interrupt-controller;
171 #interrupt-cells = <2>;
172
173 rtc {
174 compatible = "dlg,da9063-rtc";
175 };
176
177 watchdog {
178 compatible = "dlg,da9063-watchdog";
179 };
180
181 onkey {
182 compatible = "dlg,da9063-onkey";
183 dlg,disable-key-power;
184 };
185
186 regulators {
187 bcore1 {
188 regulator-name = "BCORE1";
189 regulator-min-microvolt = <300000>;
190 regulator-max-microvolt = <1570000>;
191 regulator-min-microamp = <500000>;
192 regulator-max-microamp = <2000000>;
193 regulator-boot-on;
194 };
195 ldo6 {
196 /* UNUSED */
197 regulator-name = "LDO_6";
198 regulator-uv-protection-microvolt = <0>;
199 regulator-ov-protection-microvolt = <0>;
200 };
201 ldo11 {
202 regulator-name = "LDO_11";
203 regulator-min-microvolt = <900000>;
204 regulator-max-microvolt = <900000>;
205 regulator-uv-protection-microvolt = <1>;
206 regulator-ov-protection-microvolt = <1>;
207 regulator-always-on;
208 };
209 };
210 };
211 };
212
213 - |
214 #include <dt-bindings/interrupt-controller/irq.h>
215 #include <dt-bindings/regulator/dlg,da9063-regulator.h>
216 i2c {
217 #address-cells = <1>;
218 #size-cells = <0>;
219 pmic@58 {
220 compatible = "dlg,da9062";
221 reg = <0x58>;
222 gpio-controller;
223 #gpio-cells = <2>;
224
225 sd0-pwr-sel-hog {
226 gpio-hog;
227 gpios = <1 0>;
228 input;
229 line-name = "SD0_PWR_SEL";
230 };
231
232 sd1-pwr-sel-hog {
233 gpio-hog;
234 gpios = <2 0>;
235 input;
236 line-name = "SD1_PWR_SEL";
237 };
238
239 sw-et0-en-hog {
240 gpio-hog;
241 gpios = <3 0>;
242 input;
243 line-name = "SW_ET0_EN#";
244 };
245
246 pmic-good-hog {
247 gpio-hog;
248 gpios = <4 0>;
249 output-high;
250 line-name = "PMIC_PGOOD";
251 };
252
253 gpio {
254 compatible = "dlg,da9062-gpio";
255 };
256
257 onkey {
258 compatible = "dlg,da9062-onkey";
259 };
260
261 regulators {
262 buck1 {
263 regulator-name = "vdd_arm";
264 regulator-min-microvolt = <925000>;
265 regulator-max-microvolt = <1380000>;
266 regulator-initial-mode = <DA9063_BUCK_MODE_SYNC>;
267 regulator-always-on;
268 };
269 buck2 {
270 regulator-name = "vdd_soc";
271 regulator-min-microvolt = <1150000>;
272 regulator-max-microvolt = <1380000>;
273 regulator-initial-mode = <DA9063_BUCK_MODE_SYNC>;
274 regulator-always-on;
275 };
276 buck3 {
277 regulator-name = "vdd_ddr3";
278 regulator-min-microvolt = <1500000>;
279 regulator-max-microvolt = <1500000>;
280 regulator-initial-mode = <DA9063_BUCK_MODE_SYNC>;
281 regulator-always-on;
282 };
283 buck4 {
284 regulator-name = "vdd_eth";
285 regulator-min-microvolt = <1200000>;
286 regulator-max-microvolt = <1200000>;
287 regulator-initial-mode = <DA9063_BUCK_MODE_SYNC>;
288 regulator-always-on;
289 };
290 ldo1 {
291 regulator-name = "vdd_snvs";
292 regulator-min-microvolt = <3000000>;
293 regulator-max-microvolt = <3000000>;
294 regulator-always-on;
295 };
296 ldo2 {
297 regulator-name = "vdd_high";
298 regulator-min-microvolt = <3000000>;
299 regulator-max-microvolt = <3000000>;
300 regulator-always-on;
301 };
302 ldo3 {
303 regulator-name = "vdd_eth_io";
304 regulator-min-microvolt = <2500000>;
305 regulator-max-microvolt = <2500000>;
306 };
307 ldo4 {
308 regulator-name = "vdd_emmc";
309 regulator-min-microvolt = <1800000>;
310 regulator-max-microvolt = <1800000>;
311 regulator-always-on;
312 };
313 };
314
315 rtc {
316 compatible = "dlg,da9062-rtc";
317 };
318
319 thermal {
320 compatible = "dlg,da9062-thermal";
321 };
322
323 watchdog {
324 compatible = "dlg,da9062-watchdog";
325 dlg,use-sw-pm;
326 };
327 };
328 };
329...