blob: b039773c44653ae8cd5c2b9fdeccbd304ad2c9e5 [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001// SPDX-License-Identifier: BSD-3-Clause
2/*
3 * Copyright (C) 2021, Microsoft Corporation
4 */
5
6/dts-v1/;
7
8#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
9#include <dt-bindings/gpio/gpio.h>
10#include "sm8150.dtsi"
11#include "pm8150.dtsi"
12#include "pm8150b.dtsi"
13#include "pm8150l.dtsi"
14
15/ {
16 model = "Microsoft Surface Duo";
17 compatible = "microsoft,surface-duo", "qcom,sm8150";
18 chassis-type = "handset";
19
20 aliases {
21 serial0 = &uart2;
22 };
23
24 chosen {
25 stdout-path = "serial0:115200n8";
26 };
27
28 vph_pwr: vph-pwr-regulator {
29 compatible = "regulator-fixed";
30 regulator-name = "vph_pwr";
31 regulator-min-microvolt = <3700000>;
32 regulator-max-microvolt = <3700000>;
33 };
34
35 /*
36 * Apparently RPMh does not provide support for PM8150 S4 because it
37 * is always-on; model it as a fixed regulator.
38 */
39 vreg_s4a_1p8: pm8150-s4 {
40 compatible = "regulator-fixed";
41 regulator-name = "vreg_s4a_1p8";
42
43 regulator-min-microvolt = <1800000>;
44 regulator-max-microvolt = <1800000>;
45
46 regulator-always-on;
47 regulator-boot-on;
48
49 vin-supply = <&vph_pwr>;
50 };
51
52 gpio-keys {
53 compatible = "gpio-keys";
54
55 key-vol-up {
56 label = "Volume Up";
57 gpios = <&pm8150_gpios 6 GPIO_ACTIVE_LOW>;
58 linux,code = <KEY_VOLUMEUP>;
59 };
60 };
61};
62
63&apps_rsc {
64 regulators-0 {
65 compatible = "qcom,pm8150-rpmh-regulators";
66 qcom,pmic-id = "a";
67
68 vdd-s1-supply = <&vph_pwr>;
69 vdd-s2-supply = <&vph_pwr>;
70 vdd-s3-supply = <&vph_pwr>;
71 vdd-s4-supply = <&vph_pwr>;
72 vdd-s5-supply = <&vph_pwr>;
73 vdd-s6-supply = <&vph_pwr>;
74 vdd-s7-supply = <&vph_pwr>;
75 vdd-s8-supply = <&vph_pwr>;
76 vdd-s9-supply = <&vph_pwr>;
77 vdd-s10-supply = <&vph_pwr>;
78
79 vdd-l1-l8-l11-supply = <&vreg_s6a_0p9>;
80 vdd-l2-l10-supply = <&vreg_bob>;
81 vdd-l3-l4-l5-l18-supply = <&vreg_s6a_0p9>;
82 vdd-l6-l9-supply = <&vreg_s8c_1p3>;
83 vdd-l7-l12-l14-l15-supply = <&vreg_s5a_2p0>;
84 vdd-l13-l16-l17-supply = <&vreg_bob>;
85
86 vreg_s5a_2p0: smps5 {
87 regulator-min-microvolt = <1904000>;
88 regulator-max-microvolt = <2000000>;
89 };
90
91 vreg_s6a_0p9: smps6 {
92 regulator-min-microvolt = <920000>;
93 regulator-max-microvolt = <1128000>;
94 };
95
96 vdda_wcss_pll:
97 vreg_l1a_0p75: ldo1 {
98 regulator-min-microvolt = <752000>;
99 regulator-max-microvolt = <752000>;
100 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
101 };
102
103 vdd_pdphy:
104 vdda_usb_hs_3p1:
105 vreg_l2a_3p1: ldo2 {
106 regulator-min-microvolt = <3072000>;
107 regulator-max-microvolt = <3072000>;
108 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
109 };
110
111 vreg_l3a_0p8: ldo3 {
112 regulator-min-microvolt = <480000>;
113 regulator-max-microvolt = <932000>;
114 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
115 };
116
117 vdd_usb_hs_core:
118 vdda_csi_0_0p9:
119 vdda_csi_1_0p9:
120 vdda_csi_2_0p9:
121 vdda_csi_3_0p9:
122 vdda_dsi_0_0p9:
123 vdda_dsi_1_0p9:
124 vdda_dsi_0_pll_0p9:
125 vdda_dsi_1_pll_0p9:
126 vdda_pcie_1ln_core:
127 vdda_pcie_2ln_core:
128 vdda_pll_hv_cc_ebi01:
129 vdda_pll_hv_cc_ebi23:
130 vdda_qrefs_0p875_5:
131 vdda_sp_sensor:
132 vdda_ufs_2ln_core_1:
133 vdda_ufs_2ln_core_2:
134 vdda_usb_ss_dp_core_1:
135 vdda_usb_ss_dp_core_2:
136 vdda_qlink_lv:
137 vdda_qlink_lv_ck:
138 vreg_l5a_0p875: ldo5 {
139 regulator-min-microvolt = <880000>;
140 regulator-max-microvolt = <880000>;
141 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
142 };
143
144 vreg_l6a_1p2: ldo6 {
145 regulator-min-microvolt = <1200000>;
146 regulator-max-microvolt = <1200000>;
147 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
148 };
149
150 vreg_l7a_1p8: ldo7 {
151 regulator-min-microvolt = <1800000>;
152 regulator-max-microvolt = <1800000>;
153 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
154 };
155
156 vddpx_10:
157 vreg_l9a_1p2: ldo9 {
158 regulator-min-microvolt = <1200000>;
159 regulator-max-microvolt = <1200000>;
160 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
161 };
162
163 vreg_l10a_2p5: ldo10 {
164 regulator-min-microvolt = <2504000>;
165 regulator-max-microvolt = <2960000>;
166 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
167 };
168
169 vreg_l11a_0p8: ldo11 {
170 regulator-min-microvolt = <800000>;
171 regulator-max-microvolt = <800000>;
172 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
173 };
174
175 vdd_qfprom:
176 vdd_qfprom_sp:
177 vdda_apc_cs_1p8:
178 vdda_gfx_cs_1p8:
179 vdda_usb_hs_1p8:
180 vdda_qrefs_vref_1p8:
181 vddpx_10_a:
182 vreg_l12a_1p8: ldo12 {
183 regulator-min-microvolt = <1800000>;
184 regulator-max-microvolt = <1800000>;
185 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
186 };
187
188 vreg_l13a_2p7: ldo13 {
189 regulator-min-microvolt = <2704000>;
190 regulator-max-microvolt = <2704000>;
191 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
192 };
193
194 vreg_l14a_1p8: ldo14 {
195 regulator-min-microvolt = <1800000>;
196 regulator-max-microvolt = <1880000>;
197 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
198 };
199
200 vreg_l15a_1p7: ldo15 {
201 regulator-min-microvolt = <1704000>;
202 regulator-max-microvolt = <1704000>;
203 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
204 };
205
206 vreg_l16a_2p7: ldo16 {
207 regulator-min-microvolt = <2704000>;
208 regulator-max-microvolt = <2960000>;
209 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
210 };
211
212 vreg_l17a_3p0: ldo17 {
213 regulator-min-microvolt = <2856000>;
214 regulator-max-microvolt = <3008000>;
215 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
216 };
217 };
218
219 regulators-1 {
220 compatible = "qcom,pm8150l-rpmh-regulators";
221 qcom,pmic-id = "c";
222
223 vdd-s1-supply = <&vph_pwr>;
224 vdd-s2-supply = <&vph_pwr>;
225 vdd-s3-supply = <&vph_pwr>;
226 vdd-s4-supply = <&vph_pwr>;
227 vdd-s5-supply = <&vph_pwr>;
228 vdd-s6-supply = <&vph_pwr>;
229 vdd-s7-supply = <&vph_pwr>;
230 vdd-s8-supply = <&vph_pwr>;
231
232 vdd-l1-l8-supply = <&vreg_s4a_1p8>;
233 vdd-l2-l3-supply = <&vreg_s8c_1p3>;
234 vdd-l4-l5-l6-supply = <&vreg_bob>;
235 vdd-l7-l11-supply = <&vreg_bob>;
236 vdd-l9-l10-supply = <&vreg_bob>;
237
238 vdd-bob-supply = <&vph_pwr>;
239 vdd-flash-supply = <&vreg_bob>;
240 vdd-rgb-supply = <&vreg_bob>;
241
242 vreg_bob: bob {
243 regulator-min-microvolt = <3008000>;
244 regulator-max-microvolt = <4000000>;
245 regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
246 regulator-allow-bypass;
247 };
248
249 vreg_s8c_1p3: smps8 {
250 regulator-min-microvolt = <1352000>;
251 regulator-max-microvolt = <1352000>;
252 };
253
254 vreg_l1c_1p8: ldo1 {
255 regulator-min-microvolt = <1800000>;
256 regulator-max-microvolt = <1800000>;
257 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
258 };
259
260 vdda_wcss_adcdac_1:
261 vdda_wcss_adcdac_22:
262 vreg_l2c_1p3: ldo2 {
263 regulator-min-microvolt = <1304000>;
264 regulator-max-microvolt = <1304000>;
265 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
266 };
267
268 vdda_hv_ebi0:
269 vdda_hv_ebi1:
270 vdda_hv_ebi2:
271 vdda_hv_ebi3:
272 vdda_hv_refgen0:
273 vdda_qlink_hv_ck:
274 vreg_l3c_1p2: ldo3 {
275 regulator-min-microvolt = <1200000>;
276 regulator-max-microvolt = <1200000>;
277 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
278 };
279
280 vddpx_5:
281 vreg_l4c_1p8: ldo4 {
282 regulator-min-microvolt = <1704000>;
283 regulator-max-microvolt = <2928000>;
284 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
285 };
286
287 vddpx_6:
288 vreg_l5c_1p8: ldo5 {
289 regulator-min-microvolt = <1704000>;
290 regulator-max-microvolt = <2928000>;
291 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
292 };
293
294 vddpx_2:
295 vreg_l6c_2p9: ldo6 {
296 regulator-min-microvolt = <1800000>;
297 regulator-max-microvolt = <2960000>;
298 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
299 };
300
301 vreg_l7c_3p0: ldo7 {
302 regulator-min-microvolt = <2856000>;
303 regulator-max-microvolt = <3104000>;
304 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
305 };
306
307 vreg_l8c_1p8: ldo8 {
308 regulator-min-microvolt = <1800000>;
309 regulator-max-microvolt = <1800000>;
310 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
311 };
312
313 vreg_l9c_2p9: ldo9 {
314 regulator-min-microvolt = <2704000>;
315 regulator-max-microvolt = <2960000>;
316 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
317 };
318
319 vreg_l10c_3p3: ldo10 {
320 regulator-min-microvolt = <3000000>;
321 regulator-max-microvolt = <3312000>;
322 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
323 };
324
325 vreg_l11c_3p3: ldo11 {
326 regulator-min-microvolt = <3000000>;
327 regulator-max-microvolt = <3312000>;
328 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
329 };
330 };
331
332 regulators-2 {
333 compatible = "qcom,pm8009-rpmh-regulators";
334 qcom,pmic-id = "f";
335
336 vdd-s1-supply = <&vph_pwr>;
337 vdd-s2-supply = <&vreg_bob>;
338
339 vdd-l2-supply = <&vreg_s8c_1p3>;
340 vdd-l5-l6-supply = <&vreg_bob>;
341
342 vreg_l2f_1p2: ldo2 {
343 regulator-min-microvolt = <1200000>;
344 regulator-max-microvolt = <1200000>;
345 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
346 };
347
348 vreg_l5f_2p85: ldo5 {
349 regulator-min-microvolt = <2800000>;
350 regulator-max-microvolt = <2800000>;
351 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
352 };
353
354 vreg_l6f_2p85: ldo6 {
355 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
356 regulator-min-microvolt = <2856000>;
357 regulator-max-microvolt = <2856000>;
358 };
359 };
360};
361
362&i2c1 {
363 status = "okay";
364 clock-frequency = <400000>;
365
366 bq27742@55 {
367 compatible = "ti,bq27742";
368 reg = <0x55>;
369 };
370
371 da7280@4a {
372 compatible = "dlg,da7280";
373 reg = <0x4a>;
374 interrupts-extended = <&tlmm 42 IRQ_TYPE_LEVEL_LOW>;
375 pinctrl-names = "da7280_default";
376 pinctrl-0 = <&da7280_intr_default>;
377
378 dlg,actuator-type = "LRA";
379 dlg,dlg,const-op-mode = <1>;
380 dlg,dlg,periodic-op-mode = <1>;
381 dlg,nom-microvolt = <2000000>;
382 dlg,abs-max-microvolt = <2000000>;
383 dlg,imax-microamp = <129000>;
384 dlg,resonant-freq-hz = <180>;
385 dlg,impd-micro-ohms = <14300000>;
386 dlg,freq-track-enable;
387 dlg,bemf-sens-enable;
388 dlg,mem-array = <
389 0x06 0x08 0x10 0x11 0x12 0x13 0x14 0x15 0x1c 0x2a
390 0x33 0x3c 0x42 0x4b 0x4c 0x4e 0x17 0x19 0x27 0x29
391 0x17 0x19 0x03 0x84 0x5e 0x04 0x08 0x84 0x5d 0x01
392 0x84 0x5e 0x02 0x00 0xa4 0x5d 0x03 0x84 0x5e 0x06
393 0x08 0x84 0x5d 0x05 0x84 0x5d 0x06 0x84 0x5e 0x08
394 0x84 0x5e 0x05 0x8c 0x5e 0x24 0x84 0x5f 0x10 0x84
395 0x5e 0x05 0x84 0x5e 0x08 0x84 0x5f 0x01 0x8c 0x5e
396 0x04 0x84 0x5e 0x08 0x84 0x5f 0x11 0x19 0x88 0x00
397 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
398 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
399 >;
400 };
401
402 /* SMB1381 @ 0x44 */
403 /* MAX34417 @ 0x1c */
404};
405
406&i2c4 {
407 status = "okay";
408 clock-frequency = <400000>;
409
410 /* SMB1355 @ 0x0c */
411 /* SMB1390 @ 0x10 */
412};
413
414&i2c17 {
415 status = "okay";
416 clock-frequency = <400000>;
417
418 bq27742@55 {
419 compatible = "ti,bq27742";
420 reg = <0x55>;
421 };
422};
423
424&i2c19 {
425 status = "okay";
426 clock-frequency = <400000>;
427
428 /* MAX34417 @ 0x12 */
429 /* MAX34417 @ 0x1a */
430 /* MAX34417 @ 0x1e */
431};
432
433&pon_pwrkey {
434 status = "okay";
435};
436
437&qupv3_id_0 {
438 status = "okay";
439};
440
441&qupv3_id_1 {
442 status = "okay";
443};
444
445&qupv3_id_2 {
446 status = "okay";
447};
448
449&remoteproc_adsp {
450 status = "okay";
451 firmware-name = "qcom/sm8150/microsoft/adsp.mdt";
452};
453
454&remoteproc_cdsp {
455 status = "okay";
456 firmware-name = "qcom/sm8150/microsoft/cdsp.mdt";
457};
458
459&remoteproc_mpss {
460 status = "okay";
461 firmware-name = "qcom/sm8150/microsoft/modem.mdt";
462};
463
464&remoteproc_slpi {
465 status = "okay";
466 firmware-name = "qcom/sm8150/microsoft/slpi.mdt";
467};
468
469&pon_resin {
470 status = "okay";
471
472 linux,code = <KEY_VOLUMEDOWN>;
473};
474
475&tlmm {
476 gpio-reserved-ranges = <126 4>;
477
478 da7280_intr_default: da7280-intr-default-state {
479 pins = "gpio42";
480 function = "gpio";
481 bias-pull-up;
482 };
483};
484
485&uart2 {
486 status = "okay";
487};
488
489&ufs_mem_hc {
490 status = "okay";
491
492 reset-gpios = <&tlmm 175 GPIO_ACTIVE_LOW>;
493
494 vcc-supply = <&vreg_l10a_2p5>;
495 vcc-max-microamp = <750000>;
496 vccq-supply = <&vreg_l9a_1p2>;
497 vccq-max-microamp = <700000>;
498 vccq2-supply = <&vreg_s4a_1p8>;
499 vccq2-max-microamp = <750000>;
500};
501
502&ufs_mem_phy {
503 status = "okay";
504
505 vdda-phy-supply = <&vdda_ufs_2ln_core_1>;
506 vdda-pll-supply = <&vreg_l3c_1p2>;
507};
508
509&usb_1_hsphy {
510 status = "okay";
511 vdda-pll-supply = <&vdd_usb_hs_core>;
512 vdda33-supply = <&vdda_usb_hs_3p1>;
513 vdda18-supply = <&vdda_usb_hs_1p8>;
514};
515
516&usb_1_qmpphy {
517 status = "okay";
518 vdda-phy-supply = <&vreg_l3c_1p2>;
519 vdda-pll-supply = <&vdda_usb_ss_dp_core_1>;
520};
521
522&usb_1 {
523 status = "okay";
524};
525
526&usb_1_dwc3 {
527 dr_mode = "peripheral";
528};
529
530&wifi {
531 status = "okay";
532
533 vdd-0.8-cx-mx-supply = <&vdda_wcss_pll>;
534 vdd-1.8-xo-supply = <&vreg_l7a_1p8>;
535 vdd-1.3-rfa-supply = <&vdda_wcss_adcdac_1>;
536 vdd-3.3-ch0-supply = <&vreg_l11c_3p3>;
537};