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