blob: 9e9c7f81096bbafe771780698da19a7e2f908416 [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001// SPDX-License-Identifier: BSD-3-Clause
2/*
3 * Copyright (c) 2021, Linaro Limited
4 */
5
6/dts-v1/;
7
8#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
9#include <dt-bindings/gpio/gpio.h>
10#include "sa8155p.dtsi"
11#include "pmm8155au_1.dtsi"
12#include "pmm8155au_2.dtsi"
13
14/ {
15 model = "Qualcomm Technologies, Inc. SA8155P ADP";
16 compatible = "qcom,sa8155p-adp", "qcom,sa8155p";
17
18 aliases {
19 serial0 = &uart2;
20 serial1 = &uart9;
21 };
22
23 chosen {
24 stdout-path = "serial0:115200n8";
25 };
26
27 vreg_3p3: vreg-3p3-regulator {
28 compatible = "regulator-fixed";
29 regulator-name = "vreg_3p3";
30 regulator-min-microvolt = <3300000>;
31 regulator-max-microvolt = <3300000>;
32 };
33
34 /*
35 * S4A is always on and not controllable through RPMh.
36 * So model it as a fixed regulator.
37 */
38 vreg_s4a_1p8: smps4 {
39 compatible = "regulator-fixed";
40 regulator-name = "vreg_s4a_1p8";
41
42 regulator-min-microvolt = <1800000>;
43 regulator-max-microvolt = <1800000>;
44
45 regulator-always-on;
46 regulator-boot-on;
47
48 vin-supply = <&vreg_3p3>;
49 };
50};
51
52&apps_rsc {
53 regulators-0 {
54 compatible = "qcom,pmm8155au-rpmh-regulators";
55 qcom,pmic-id = "a";
56
57 vdd-s1-supply = <&vreg_3p3>;
58 vdd-s2-supply = <&vreg_3p3>;
59 vdd-s3-supply = <&vreg_3p3>;
60 vdd-s4-supply = <&vreg_3p3>;
61 vdd-s5-supply = <&vreg_3p3>;
62 vdd-s6-supply = <&vreg_3p3>;
63 vdd-s7-supply = <&vreg_3p3>;
64 vdd-s8-supply = <&vreg_3p3>;
65 vdd-s9-supply = <&vreg_3p3>;
66 vdd-s10-supply = <&vreg_3p3>;
67
68 vdd-l1-l8-l11-supply = <&vreg_s6a_0p92>;
69 vdd-l2-l10-supply = <&vreg_3p3>;
70 vdd-l3-l4-l5-l18-supply = <&vreg_s6a_0p92>;
71 vdd-l6-l9-supply = <&vreg_s6a_0p92>;
72 vdd-l7-l12-l14-l15-supply = <&vreg_s5a_2p04>;
73 vdd-l13-l16-l17-supply = <&vreg_3p3>;
74
75 vreg_s5a_2p04: smps5 {
76 regulator-name = "vreg_s5a_2p04";
77 regulator-min-microvolt = <1904000>;
78 regulator-max-microvolt = <2000000>;
79 };
80
81 vreg_s6a_0p92: smps6 {
82 regulator-name = "vreg_s6a_0p92";
83 regulator-min-microvolt = <920000>;
84 regulator-max-microvolt = <1128000>;
85 };
86
87 vreg_l1a_0p752: ldo1 {
88 regulator-name = "vreg_l1a_0p752";
89 regulator-min-microvolt = <752000>;
90 regulator-max-microvolt = <752000>;
91 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
92 };
93
94 vdda_usb_hs_3p1:
95 vreg_l2a_3p072: ldo2 {
96 regulator-name = "vreg_l2a_3p072";
97 regulator-min-microvolt = <3072000>;
98 regulator-max-microvolt = <3072000>;
99 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
100 };
101
102 vreg_l3a_0p8: ldo3 {
103 regulator-name = "vreg_l3a_0p8";
104 regulator-min-microvolt = <800000>;
105 regulator-max-microvolt = <800000>;
106 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
107 };
108
109 vdd_usb_hs_core:
110 vdda_usb_ss_dp_core_1:
111 vreg_l5a_0p88: ldo5 {
112 regulator-name = "vreg_l5a_0p88";
113 regulator-min-microvolt = <880000>;
114 regulator-max-microvolt = <880000>;
115 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
116 regulator-allow-set-load;
117 regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
118 RPMH_REGULATOR_MODE_HPM>;
119 };
120
121 vreg_l7a_1p8: ldo7 {
122 regulator-name = "vreg_l7a_1p8";
123 regulator-min-microvolt = <1800000>;
124 regulator-max-microvolt = <1800000>;
125 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
126 };
127
128 vreg_l10a_2p96: ldo10 {
129 regulator-name = "vreg_l10a_2p96";
130 regulator-min-microvolt = <2504000>;
131 regulator-max-microvolt = <2960000>;
132 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
133 regulator-allow-set-load;
134 regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
135 RPMH_REGULATOR_MODE_HPM>;
136 };
137
138 vreg_l11a_0p8: ldo11 {
139 regulator-name = "vreg_l11a_0p8";
140 regulator-min-microvolt = <800000>;
141 regulator-max-microvolt = <800000>;
142 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
143 };
144
145 vdda_usb_hs_1p8:
146 vreg_l12a_1p8: ldo12 {
147 regulator-name = "vreg_l12a_1p8";
148 regulator-min-microvolt = <1800000>;
149 regulator-max-microvolt = <1800000>;
150 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
151 };
152
153 vreg_l13a_2p7: ldo13 {
154 regulator-name = "vreg_l13a_2p7";
155 regulator-min-microvolt = <2704000>;
156 regulator-max-microvolt = <2704000>;
157 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
158 };
159
160 vreg_l15a_1p7: ldo15 {
161 regulator-name = "vreg_l15a_1p7";
162 regulator-min-microvolt = <1704000>;
163 regulator-max-microvolt = <1704000>;
164 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
165 };
166
167 vreg_l16a_2p7: ldo16 {
168 regulator-name = "vreg_l16a_2p7";
169 regulator-min-microvolt = <2704000>;
170 regulator-max-microvolt = <2960000>;
171 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
172 };
173
174 vreg_l17a_2p96: ldo17 {
175 regulator-name = "vreg_l17a_2p96";
176 regulator-min-microvolt = <2504000>;
177 regulator-max-microvolt = <2960000>;
178 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
179 };
180 };
181
182 regulators-1 {
183 compatible = "qcom,pmm8155au-rpmh-regulators";
184 qcom,pmic-id = "c";
185
186 vdd-s1-supply = <&vreg_3p3>;
187 vdd-s2-supply = <&vreg_3p3>;
188 vdd-s3-supply = <&vreg_3p3>;
189 vdd-s4-supply = <&vreg_3p3>;
190 vdd-s5-supply = <&vreg_3p3>;
191 vdd-s6-supply = <&vreg_3p3>;
192 vdd-s7-supply = <&vreg_3p3>;
193 vdd-s8-supply = <&vreg_3p3>;
194 vdd-s9-supply = <&vreg_3p3>;
195 vdd-s10-supply = <&vreg_3p3>;
196
197 vdd-l1-l8-l11-supply = <&vreg_s4c_1p352>;
198 vdd-l2-l10-supply = <&vreg_3p3>;
199 vdd-l3-l4-l5-l18-supply = <&vreg_s4c_1p352>;
200 vdd-l6-l9-supply = <&vreg_s6c_1p128>;
201 vdd-l7-l12-l14-l15-supply = <&vreg_s5c_2p04>;
202 vdd-l13-l16-l17-supply = <&vreg_3p3>;
203
204 vreg_s4c_1p352: smps4 {
205 regulator-name = "vreg_s4c_1p352";
206 regulator-min-microvolt = <1352000>;
207 regulator-max-microvolt = <1352000>;
208 };
209
210 vreg_s5c_2p04: smps5 {
211 regulator-name = "vreg_s5c_2p04";
212 regulator-min-microvolt = <1904000>;
213 regulator-max-microvolt = <2000000>;
214 };
215
216 vreg_s6c_1p128: smps6 {
217 regulator-name = "vreg_s6c_1p128";
218 regulator-min-microvolt = <1128000>;
219 regulator-max-microvolt = <1128000>;
220 };
221
222 vreg_l1c_1p304: ldo1 {
223 regulator-name = "vreg_l1c_1p304";
224 regulator-min-microvolt = <1304000>;
225 regulator-max-microvolt = <1304000>;
226 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
227 };
228
229 vreg_l2c_1p808: ldo2 {
230 regulator-name = "vreg_l2c_1p808";
231 regulator-min-microvolt = <1704000>;
232 regulator-max-microvolt = <2928000>;
233 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
234 };
235
236 vreg_l5c_1p2: ldo5 {
237 regulator-name = "vreg_l5c_1p2";
238 regulator-min-microvolt = <1200000>;
239 regulator-max-microvolt = <1200000>;
240 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
241 regulator-allow-set-load;
242 regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
243 RPMH_REGULATOR_MODE_HPM>;
244 };
245
246 vreg_l7c_1p8: ldo7 {
247 regulator-name = "vreg_l7c_1p8";
248 regulator-min-microvolt = <1800000>;
249 regulator-max-microvolt = <1800000>;
250 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
251 };
252
253 vreg_l8c_1p2: ldo8 {
254 regulator-name = "vreg_l8c_1p2";
255 regulator-min-microvolt = <1200000>;
256 regulator-max-microvolt = <1200000>;
257 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
258 regulator-allow-set-load;
259 regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
260 RPMH_REGULATOR_MODE_HPM>;
261 };
262
263 vreg_l10c_3p3: ldo10 {
264 regulator-name = "vreg_l10c_3p3";
265 regulator-min-microvolt = <3000000>;
266 regulator-max-microvolt = <3312000>;
267 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
268 };
269
270 vreg_l11c_0p8: ldo11 {
271 regulator-name = "vreg_l11c_0p8";
272 regulator-min-microvolt = <800000>;
273 regulator-max-microvolt = <800000>;
274 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
275 };
276
277 vreg_l12c_1p808: ldo12 {
278 regulator-name = "vreg_l12c_1p808";
279 regulator-min-microvolt = <1704000>;
280 regulator-max-microvolt = <2928000>;
281 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
282 };
283
284 vreg_l13c_2p96: ldo13 {
285 regulator-name = "vreg_l13c_2p96";
Tom Rini762f85b2024-07-20 11:15:10 -0600286 regulator-min-microvolt = <1800000>;
Tom Rini53633a82024-02-29 12:33:36 -0500287 regulator-max-microvolt = <2960000>;
288 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
289 };
290
291 vreg_l15c_1p9: ldo15 {
292 regulator-name = "vreg_l15c_1p9";
293 regulator-min-microvolt = <1704000>;
294 regulator-max-microvolt = <2928000>;
295 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
296 };
297
298 vreg_l16c_3p008: ldo16 {
299 regulator-name = "vreg_l16c_3p008";
300 regulator-min-microvolt = <3008000>;
301 regulator-max-microvolt = <3008000>;
302 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
303 };
304
305 vreg_l18c_0p88: ldo18 {
306 regulator-name = "vreg_l18c_0p88";
307 regulator-min-microvolt = <880000>;
308 regulator-max-microvolt = <880000>;
309 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
310 };
311 };
312};
313
314&ethernet {
315 status = "okay";
316
317 snps,reset-gpio = <&tlmm 79 GPIO_ACTIVE_LOW>;
318 snps,reset-active-low;
319 snps,reset-delays-us = <0 11000 70000>;
320
321 snps,mtl-rx-config = <&mtl_rx_setup>;
322 snps,mtl-tx-config = <&mtl_tx_setup>;
323
324 pinctrl-names = "default";
325 pinctrl-0 = <&ethernet_defaults>;
326
327 phy-handle = <&rgmii_phy>;
328 phy-mode = "rgmii";
329 max-speed = <1000>;
330
331 mdio {
332 compatible = "snps,dwmac-mdio";
333 #address-cells = <1>;
334 #size-cells = <0>;
335
336 /* Micrel KSZ9031RNZ PHY */
337 rgmii_phy: phy@7 {
338 compatible = "ethernet-phy-ieee802.3-c22";
339 reg = <0x7>;
340
341 interrupts-extended = <&tlmm 124 IRQ_TYPE_EDGE_FALLING>;
342 device_type = "ethernet-phy";
343 };
344 };
345
346 mtl_rx_setup: rx-queues-config {
347 snps,rx-queues-to-use = <1>;
348 snps,rx-sched-sp;
349
350 queue0 {
351 snps,dcb-algorithm;
352 snps,map-to-dma-channel = <0x0>;
353 snps,route-up;
354 snps,priority = <0x1>;
355 };
356 };
357
358 mtl_tx_setup: tx-queues-config {
359 snps,tx-queues-to-use = <1>;
360 snps,tx-sched-wrr;
361
362 queue0 {
363 snps,weight = <0x10>;
364 snps,dcb-algorithm;
365 snps,priority = <0x0>;
366 };
367 };
368};
369
Tom Rini6bb92fc2024-05-20 09:54:58 -0600370&pmm8155au_1_gpios {
371 pmm8155au_1_sdc2_cd: sdc2-cd-default-state {
372 pins = "gpio4";
373 function = "normal";
374 input-enable;
375 bias-pull-up;
376 power-source = <0>;
377 };
378};
379
Tom Rini53633a82024-02-29 12:33:36 -0500380&qupv3_id_1 {
381 status = "okay";
382};
383
384&remoteproc_adsp {
385 status = "okay";
386 firmware-name = "qcom/sa8155p/adsp.mdt";
387};
388
389&remoteproc_cdsp {
390 status = "okay";
391 firmware-name = "qcom/sa8155p/cdsp.mdt";
392};
393
394&sdhc_2 {
395 status = "okay";
396
Tom Rini6bb92fc2024-05-20 09:54:58 -0600397 cd-gpios = <&pmm8155au_1_gpios 4 GPIO_ACTIVE_LOW>;
Tom Rini53633a82024-02-29 12:33:36 -0500398 pinctrl-names = "default", "sleep";
Tom Rini6bb92fc2024-05-20 09:54:58 -0600399 pinctrl-0 = <&sdc2_on &pmm8155au_1_sdc2_cd>;
400 pinctrl-1 = <&sdc2_off &pmm8155au_1_sdc2_cd>;
Tom Rini53633a82024-02-29 12:33:36 -0500401 vqmmc-supply = <&vreg_l13c_2p96>; /* IO line power */
402 vmmc-supply = <&vreg_l17a_2p96>; /* Card power line */
403 bus-width = <4>;
404 no-sdio;
405 no-mmc;
406};
407
408&uart2 {
409 status = "okay";
410};
411
412&uart9 {
413 status = "okay";
414};
415
416&ufs_mem_hc {
417 status = "okay";
418
419 reset-gpios = <&tlmm 175 GPIO_ACTIVE_LOW>;
420
421 vcc-supply = <&vreg_l10a_2p96>;
422 vcc-max-microamp = <750000>;
423 vccq-supply = <&vreg_l5c_1p2>;
424 vccq-max-microamp = <700000>;
425 vccq2-supply = <&vreg_s4a_1p8>;
426 vccq2-max-microamp = <750000>;
427};
428
429&ufs_mem_phy {
430 status = "okay";
431
432 vdda-phy-supply = <&vreg_l8c_1p2>;
433 vdda-pll-supply = <&vreg_l5a_0p88>;
434};
435
436&usb_1 {
437 status = "okay";
438};
439
440&usb_1_dwc3 {
441 dr_mode = "host";
442
443 pinctrl-names = "default";
444 pinctrl-0 = <&usb2phy_ac_en1_default>;
445};
446
447&usb_1_hsphy {
448 status = "okay";
449 vdda-pll-supply = <&vdd_usb_hs_core>;
450 vdda33-supply = <&vdda_usb_hs_3p1>;
451 vdda18-supply = <&vdda_usb_hs_1p8>;
452};
453
454&usb_1_qmpphy {
455 status = "disabled";
456};
457
458&usb_2 {
459 status = "okay";
460};
461
462&usb_2_dwc3 {
463 dr_mode = "host";
464
465 pinctrl-names = "default";
466 pinctrl-0 = <&usb2phy_ac_en2_default>;
467};
468
469&usb_2_hsphy {
470 status = "okay";
471 vdda-pll-supply = <&vdd_usb_hs_core>;
472 vdda33-supply = <&vdda_usb_hs_3p1>;
473 vdda18-supply = <&vdda_usb_hs_1p8>;
474};
475
476&usb_2_qmpphy {
477 status = "okay";
478 vdda-phy-supply = <&vreg_l8c_1p2>;
479 vdda-pll-supply = <&vdda_usb_ss_dp_core_1>;
480};
481
482&pcie0 {
483 status = "okay";
484};
485
486&pcie0_phy {
487 status = "okay";
488 vdda-phy-supply = <&vreg_l18c_0p88>;
489 vdda-pll-supply = <&vreg_l8c_1p2>;
490};
491
492&pcie1_phy {
493 vdda-phy-supply = <&vreg_l18c_0p88>;
494 vdda-pll-supply = <&vreg_l8c_1p2>;
495};
496
497&tlmm {
498 gpio-reserved-ranges = <0 4>;
499
500 sdc2_on: sdc2-on-state {
501 clk-pins {
502 pins = "sdc2_clk";
503 bias-disable; /* No pull */
504 drive-strength = <16>; /* 16 MA */
505 };
506
507 cmd-pins {
508 pins = "sdc2_cmd";
509 bias-pull-up; /* pull up */
510 drive-strength = <16>; /* 16 MA */
511 };
512
513 data-pins {
514 pins = "sdc2_data";
515 bias-pull-up; /* pull up */
516 drive-strength = <16>; /* 16 MA */
517 };
Tom Rini53633a82024-02-29 12:33:36 -0500518 };
519
520 sdc2_off: sdc2-off-state {
521 clk-pins {
522 pins = "sdc2_clk";
523 bias-disable; /* No pull */
524 drive-strength = <2>; /* 2 MA */
525 };
526
527 cmd-pins {
528 pins = "sdc2_cmd";
529 bias-pull-up; /* pull up */
530 drive-strength = <2>; /* 2 MA */
531 };
532
533 data-pins {
534 pins = "sdc2_data";
535 bias-pull-up; /* pull up */
536 drive-strength = <2>; /* 2 MA */
537 };
Tom Rini53633a82024-02-29 12:33:36 -0500538 };
539
540 usb2phy_ac_en1_default: usb2phy-ac-en1-default-state {
541 pins = "gpio113";
542 function = "usb2phy_ac";
543 bias-disable;
544 drive-strength = <2>;
545 };
546
547 usb2phy_ac_en2_default: usb2phy-ac-en2-default-state {
548 pins = "gpio123";
549 function = "usb2phy_ac";
550 bias-disable;
551 drive-strength = <2>;
552 };
553
554 ethernet_defaults: ethernet-defaults-state {
555 mdc-pins {
556 pins = "gpio7";
557 function = "rgmii";
558 bias-pull-up;
559 };
560
561 mdio-pins {
562 pins = "gpio59";
563 function = "rgmii";
564 bias-pull-up;
565 };
566
567 rgmii-rx-pins {
568 pins = "gpio117", "gpio118", "gpio119", "gpio120", "gpio115", "gpio116";
569 function = "rgmii";
570 bias-disable;
571 drive-strength = <2>;
572 };
573
574 rgmii-tx-pins {
575 pins = "gpio122", "gpio4", "gpio5", "gpio6", "gpio114", "gpio121";
576 function = "rgmii";
577 bias-pull-up;
578 drive-strength = <16>;
579 };
580
581 phy-intr-pins {
582 pins = "gpio124";
583 function = "emac_phy";
584 bias-disable;
585 drive-strength = <8>;
586 };
587
588 pps-pins {
589 pins = "gpio81";
590 function = "emac_pps";
591 bias-disable;
592 drive-strength = <8>;
593 };
594
595 phy-reset-pins {
596 pins = "gpio79";
597 function = "gpio";
598 bias-pull-up;
599 drive-strength = <16>;
600 };
601 };
602};