blob: 51612dc22748fcbfc0805877abf7a9c91fe0a88e [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001# 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
Tom Rini6bb92fc2024-05-20 09:54:58 -06007title: Dialog DA906{3L,3,2,1} Power Management Integrated Circuit (PMIC)
Tom Rini53633a82024-02-29 12:33:36 -05008
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).
Tom Rini6bb92fc2024-05-20 09:54:58 -060020 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
Tom Rini53633a82024-02-29 12:33:36 -050025
26properties:
27 compatible:
28 enum:
Tom Rini6bb92fc2024-05-20 09:54:58 -060029 - dlg,da9061
30 - dlg,da9062
Tom Rini53633a82024-02-29 12:33:36 -050031 - 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
Tom Rini6bb92fc2024-05-20 09:54:58 -060045 gpio-controller: true
Tom Rini53633a82024-02-29 12:33:36 -050046
Tom Rini6bb92fc2024-05-20 09:54:58 -060047 "#gpio-cells":
48 const: 2
49
50 gpio:
Tom Rini53633a82024-02-29 12:33:36 -050051 type: object
Tom Rini6bb92fc2024-05-20 09:54:58 -060052 additionalProperties: false
Tom Rini53633a82024-02-29 12:33:36 -050053 properties:
54 compatible:
Tom Rini6bb92fc2024-05-20 09:54:58 -060055 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
Tom Rini53633a82024-02-29 12:33:36 -050067
68 rtc:
69 type: object
70 $ref: /schemas/rtc/rtc.yaml#
71 unevaluatedProperties: false
72 properties:
73 compatible:
Tom Rini6bb92fc2024-05-20 09:54:58 -060074 enum:
75 - dlg,da9062-rtc
76 - dlg,da9063-rtc
Tom Rini53633a82024-02-29 12:33:36 -050077
Tom Rini6bb92fc2024-05-20 09:54:58 -060078 thermal:
79 $ref: /schemas/thermal/dlg,da9062-thermal.yaml
Tom Rini53633a82024-02-29 12:33:36 -050080
Tom Rini6bb92fc2024-05-20 09:54:58 -060081 watchdog:
82 $ref: /schemas/watchdog/dlg,da9062-watchdog.yaml
Tom Rini53633a82024-02-29 12:33:36 -050083
Tom Rini6bb92fc2024-05-20 09:54:58 -060084patternProperties:
85 "^(.+-hog(-[0-9]+)?)$":
Tom Rini53633a82024-02-29 12:33:36 -050086 type: object
Tom Rini6bb92fc2024-05-20 09:54:58 -060087
88 required:
89 - gpio-hog
Tom Rini53633a82024-02-29 12:33:36 -050090
91required:
92 - compatible
93 - reg
Tom Rini6bb92fc2024-05-20 09:54:58 -060094
95allOf:
96 - if:
97 properties:
98 compatible:
99 contains:
100 enum:
101 - dlg,da9063
102 - dlg,da9063l
103 then:
104 properties:
105 gpio-controller: false
106 "#gpio-cells": false
107 gpio: false
108 regulators:
109 patternProperties:
110 "^buck[1-4]$": false
111 thermal: false
112 required:
113 - interrupts
114 - interrupt-controller
115 - '#interrupt-cells'
116
117 - if:
118 properties:
119 compatible:
120 contains:
121 enum:
122 - dlg,da9062
123 then:
124 properties:
125 regulators:
126 patternProperties:
127 "^(ldo([5-9]|10|11)|bcore([1-2]|s-merged)|b(pro|mem|io|peri)|bmem-bio-merged)$": false
128 required:
129 - gpio
130 - onkey
131 - rtc
132 - thermal
133 - watchdog
134
135 - if:
136 properties:
137 compatible:
138 contains:
139 enum:
140 - dlg,da9061
141 then:
142 properties:
143 gpio-controller: false
144 "#gpio-cells": false
145 gpio: false
146 regulators:
147 patternProperties:
148 "^(ldo([5-9]|10|11)|bcore([1-2]|s-merged)|b(pro|mem|io|peri)|bmem-bio-merged|buck4)$": false
149 rtc: false
150 required:
151 - onkey
152 - thermal
153 - watchdog
Tom Rini53633a82024-02-29 12:33:36 -0500154
155additionalProperties: false
156
157examples:
158 - |
159 #include <dt-bindings/interrupt-controller/irq.h>
160 i2c {
161 #address-cells = <1>;
162 #size-cells = <0>;
163 pmic@58 {
164 compatible = "dlg,da9063";
165 reg = <0x58>;
Tom Rini53633a82024-02-29 12:33:36 -0500166 interrupt-parent = <&gpio6>;
167 interrupts = <11 IRQ_TYPE_LEVEL_LOW>;
168 interrupt-controller;
Tom Rini6bb92fc2024-05-20 09:54:58 -0600169 #interrupt-cells = <2>;
Tom Rini53633a82024-02-29 12:33:36 -0500170
171 rtc {
172 compatible = "dlg,da9063-rtc";
173 };
174
175 watchdog {
176 compatible = "dlg,da9063-watchdog";
177 };
178
179 onkey {
180 compatible = "dlg,da9063-onkey";
181 dlg,disable-key-power;
182 };
183
184 regulators {
185 bcore1 {
186 regulator-name = "BCORE1";
187 regulator-min-microvolt = <300000>;
188 regulator-max-microvolt = <1570000>;
189 regulator-min-microamp = <500000>;
190 regulator-max-microamp = <2000000>;
191 regulator-boot-on;
192 };
193 ldo6 {
194 /* UNUSED */
195 regulator-name = "LDO_6";
196 regulator-uv-protection-microvolt = <0>;
197 regulator-ov-protection-microvolt = <0>;
198 };
199 ldo11 {
200 regulator-name = "LDO_11";
201 regulator-min-microvolt = <900000>;
202 regulator-max-microvolt = <900000>;
203 regulator-uv-protection-microvolt = <1>;
204 regulator-ov-protection-microvolt = <1>;
205 regulator-always-on;
206 };
Tom Rini6bb92fc2024-05-20 09:54:58 -0600207 };
208 };
209 };
210
211 - |
212 #include <dt-bindings/interrupt-controller/irq.h>
213 #include <dt-bindings/regulator/dlg,da9063-regulator.h>
214 i2c {
215 #address-cells = <1>;
216 #size-cells = <0>;
217 pmic@58 {
218 compatible = "dlg,da9062";
219 reg = <0x58>;
220 gpio-controller;
221 #gpio-cells = <2>;
222
223 sd0-pwr-sel-hog {
224 gpio-hog;
225 gpios = <1 0>;
226 input;
227 line-name = "SD0_PWR_SEL";
228 };
229
230 sd1-pwr-sel-hog {
231 gpio-hog;
232 gpios = <2 0>;
233 input;
234 line-name = "SD1_PWR_SEL";
235 };
236
237 sw-et0-en-hog {
238 gpio-hog;
239 gpios = <3 0>;
240 input;
241 line-name = "SW_ET0_EN#";
242 };
243
244 pmic-good-hog {
245 gpio-hog;
246 gpios = <4 0>;
247 output-high;
248 line-name = "PMIC_PGOOD";
249 };
250
251 gpio {
252 compatible = "dlg,da9062-gpio";
253 };
254
255 onkey {
256 compatible = "dlg,da9062-onkey";
257 };
258
259 regulators {
260 buck1 {
261 regulator-name = "vdd_arm";
262 regulator-min-microvolt = <925000>;
263 regulator-max-microvolt = <1380000>;
264 regulator-initial-mode = <DA9063_BUCK_MODE_SYNC>;
265 regulator-always-on;
266 };
267 buck2 {
268 regulator-name = "vdd_soc";
269 regulator-min-microvolt = <1150000>;
270 regulator-max-microvolt = <1380000>;
271 regulator-initial-mode = <DA9063_BUCK_MODE_SYNC>;
272 regulator-always-on;
273 };
274 buck3 {
275 regulator-name = "vdd_ddr3";
276 regulator-min-microvolt = <1500000>;
277 regulator-max-microvolt = <1500000>;
278 regulator-initial-mode = <DA9063_BUCK_MODE_SYNC>;
279 regulator-always-on;
280 };
281 buck4 {
282 regulator-name = "vdd_eth";
283 regulator-min-microvolt = <1200000>;
284 regulator-max-microvolt = <1200000>;
285 regulator-initial-mode = <DA9063_BUCK_MODE_SYNC>;
286 regulator-always-on;
287 };
288 ldo1 {
289 regulator-name = "vdd_snvs";
290 regulator-min-microvolt = <3000000>;
291 regulator-max-microvolt = <3000000>;
292 regulator-always-on;
293 };
294 ldo2 {
295 regulator-name = "vdd_high";
296 regulator-min-microvolt = <3000000>;
297 regulator-max-microvolt = <3000000>;
298 regulator-always-on;
299 };
300 ldo3 {
301 regulator-name = "vdd_eth_io";
302 regulator-min-microvolt = <2500000>;
303 regulator-max-microvolt = <2500000>;
304 };
305 ldo4 {
306 regulator-name = "vdd_emmc";
307 regulator-min-microvolt = <1800000>;
308 regulator-max-microvolt = <1800000>;
309 regulator-always-on;
310 };
311 };
312
313 rtc {
314 compatible = "dlg,da9062-rtc";
315 };
316
317 thermal {
318 compatible = "dlg,da9062-thermal";
319 };
320
321 watchdog {
322 compatible = "dlg,da9062-watchdog";
323 dlg,use-sw-pm;
Tom Rini53633a82024-02-29 12:33:36 -0500324 };
325 };
326 };
327...