Merge tag 'drm-misc-next-fixes-2023-09-01' of git://anongit.freedesktop.org/drm/drm...
[platform/kernel/linux-rpi.git] / arch / arm64 / boot / dts / qcom / sa8775p-ride.dts
1 // SPDX-License-Identifier: BSD-3-Clause
2 /*
3  * Copyright (c) 2023, Linaro Limited
4  */
5
6 /dts-v1/;
7
8 #include <dt-bindings/gpio/gpio.h>
9 #include <dt-bindings/regulator/qcom,rpmh-regulator.h>
10
11 #include "sa8775p.dtsi"
12 #include "sa8775p-pmics.dtsi"
13
14 / {
15         model = "Qualcomm SA8775P Ride";
16         compatible = "qcom,sa8775p-ride", "qcom,sa8775p";
17
18         aliases {
19                 serial0 = &uart10;
20                 serial1 = &uart12;
21                 serial2 = &uart17;
22                 i2c11 = &i2c11;
23                 i2c18 = &i2c18;
24                 spi16 = &spi16;
25                 ufshc1 = &ufs_mem_hc;
26         };
27
28         chosen {
29                 stdout-path = "serial0:115200n8";
30         };
31 };
32
33 &apps_rsc {
34         regulators-0 {
35                 compatible = "qcom,pmm8654au-rpmh-regulators";
36                 qcom,pmic-id = "a";
37
38                 vreg_s4a: smps4 {
39                         regulator-name = "vreg_s4a";
40                         regulator-min-microvolt = <1800000>;
41                         regulator-max-microvolt = <1816000>;
42                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
43                 };
44
45                 vreg_s5a: smps5 {
46                         regulator-name = "vreg_s5a";
47                         regulator-min-microvolt = <1850000>;
48                         regulator-max-microvolt = <1996000>;
49                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
50                 };
51
52                 vreg_s9a: smps9 {
53                         regulator-name = "vreg_s9a";
54                         regulator-min-microvolt = <535000>;
55                         regulator-max-microvolt = <1120000>;
56                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
57                 };
58
59                 vreg_l4a: ldo4 {
60                         regulator-name = "vreg_l4a";
61                         regulator-min-microvolt = <788000>;
62                         regulator-max-microvolt = <1050000>;
63                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
64                         regulator-allow-set-load;
65                         regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
66                                                    RPMH_REGULATOR_MODE_HPM>;
67                 };
68
69                 vreg_l5a: ldo5 {
70                         regulator-name = "vreg_l5a";
71                         regulator-min-microvolt = <870000>;
72                         regulator-max-microvolt = <950000>;
73                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
74                         regulator-allow-set-load;
75                         regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
76                                                    RPMH_REGULATOR_MODE_HPM>;
77                 };
78
79                 vreg_l6a: ldo6 {
80                         regulator-name = "vreg_l6a";
81                         regulator-min-microvolt = <870000>;
82                         regulator-max-microvolt = <970000>;
83                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
84                         regulator-allow-set-load;
85                         regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
86                                                    RPMH_REGULATOR_MODE_HPM>;
87                 };
88
89                 vreg_l7a: ldo7 {
90                         regulator-name = "vreg_l7a";
91                         regulator-min-microvolt = <720000>;
92                         regulator-max-microvolt = <950000>;
93                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
94                         regulator-allow-set-load;
95                         regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
96                                                    RPMH_REGULATOR_MODE_HPM>;
97                 };
98
99                 vreg_l8a: ldo8 {
100                         regulator-name = "vreg_l8a";
101                         regulator-min-microvolt = <2504000>;
102                         regulator-max-microvolt = <3300000>;
103                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
104                         regulator-allow-set-load;
105                         regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
106                                                    RPMH_REGULATOR_MODE_HPM>;
107                 };
108
109                 vreg_l9a: ldo9 {
110                         regulator-name = "vreg_l9a";
111                         regulator-min-microvolt = <2970000>;
112                         regulator-max-microvolt = <3544000>;
113                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
114                         regulator-allow-set-load;
115                         regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
116                                                    RPMH_REGULATOR_MODE_HPM>;
117                 };
118         };
119
120         regulators-1 {
121                 compatible = "qcom,pmm8654au-rpmh-regulators";
122                 qcom,pmic-id = "c";
123
124                 vreg_l1c: ldo1 {
125                         regulator-name = "vreg_l1c";
126                         regulator-min-microvolt = <1140000>;
127                         regulator-max-microvolt = <1260000>;
128                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
129                         regulator-allow-set-load;
130                         regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
131                                                    RPMH_REGULATOR_MODE_HPM>;
132                 };
133
134                 vreg_l2c: ldo2 {
135                         regulator-name = "vreg_l2c";
136                         regulator-min-microvolt = <900000>;
137                         regulator-max-microvolt = <1100000>;
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_l3c: ldo3 {
145                         regulator-name = "vreg_l3c";
146                         regulator-min-microvolt = <1100000>;
147                         regulator-max-microvolt = <1300000>;
148                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
149                         regulator-allow-set-load;
150                         regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
151                                                    RPMH_REGULATOR_MODE_HPM>;
152                 };
153
154                 vreg_l4c: ldo4 {
155                         regulator-name = "vreg_l4c";
156                         regulator-min-microvolt = <1200000>;
157                         regulator-max-microvolt = <1200000>;
158                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
159                         /*
160                          * FIXME: This should have regulator-allow-set-load but
161                          * we're getting an over-current fault from the PMIC
162                          * when switching to LPM.
163                          */
164                 };
165
166                 vreg_l5c: ldo5 {
167                         regulator-name = "vreg_l5c";
168                         regulator-min-microvolt = <1100000>;
169                         regulator-max-microvolt = <1300000>;
170                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
171                         regulator-allow-set-load;
172                         regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
173                                                    RPMH_REGULATOR_MODE_HPM>;
174                 };
175
176                 vreg_l6c: ldo6 {
177                         regulator-name = "vreg_l6c";
178                         regulator-min-microvolt = <1620000>;
179                         regulator-max-microvolt = <1980000>;
180                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
181                         regulator-allow-set-load;
182                         regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
183                                                    RPMH_REGULATOR_MODE_HPM>;
184                 };
185
186                 vreg_l7c: ldo7 {
187                         regulator-name = "vreg_l7c";
188                         regulator-min-microvolt = <1620000>;
189                         regulator-max-microvolt = <2000000>;
190                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
191                         regulator-allow-set-load;
192                         regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
193                                                    RPMH_REGULATOR_MODE_HPM>;
194                 };
195
196                 vreg_l8c: ldo8 {
197                         regulator-name = "vreg_l8c";
198                         regulator-min-microvolt = <2400000>;
199                         regulator-max-microvolt = <3300000>;
200                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
201                         regulator-allow-set-load;
202                         regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
203                                                    RPMH_REGULATOR_MODE_HPM>;
204                 };
205
206                 vreg_l9c: ldo9 {
207                         regulator-name = "vreg_l9c";
208                         regulator-min-microvolt = <1650000>;
209                         regulator-max-microvolt = <2700000>;
210                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
211                         regulator-allow-set-load;
212                         regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
213                                                    RPMH_REGULATOR_MODE_HPM>;
214                 };
215         };
216
217         regulators-2 {
218                 compatible = "qcom,pmm8654au-rpmh-regulators";
219                 qcom,pmic-id = "e";
220
221                 vreg_s4e: smps4 {
222                         regulator-name = "vreg_s4e";
223                         regulator-min-microvolt = <970000>;
224                         regulator-max-microvolt = <1520000>;
225                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
226                 };
227
228                 vreg_s7e: smps7 {
229                         regulator-name = "vreg_s7e";
230                         regulator-min-microvolt = <1010000>;
231                         regulator-max-microvolt = <1170000>;
232                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
233                 };
234
235                 vreg_s9e: smps9 {
236                         regulator-name = "vreg_s9e";
237                         regulator-min-microvolt = <300000>;
238                         regulator-max-microvolt = <570000>;
239                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
240                 };
241
242                 vreg_l6e: ldo6 {
243                         regulator-name = "vreg_l6e";
244                         regulator-min-microvolt = <1280000>;
245                         regulator-max-microvolt = <1450000>;
246                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
247                         regulator-allow-set-load;
248                         regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
249                                                    RPMH_REGULATOR_MODE_HPM>;
250                 };
251
252                 vreg_l8e: ldo8 {
253                         regulator-name = "vreg_l8e";
254                         regulator-min-microvolt = <1800000>;
255                         regulator-max-microvolt = <1950000>;
256                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
257                         regulator-allow-set-load;
258                         regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
259                                                    RPMH_REGULATOR_MODE_HPM>;
260                 };
261         };
262 };
263
264 &i2c11 {
265         clock-frequency = <400000>;
266         pinctrl-0 = <&qup_i2c11_default>;
267         pinctrl-names = "default";
268         status = "okay";
269 };
270
271 &i2c18 {
272         clock-frequency = <400000>;
273         pinctrl-0 = <&qup_i2c18_default>;
274         pinctrl-names = "default";
275         status = "okay";
276 };
277
278 &pmm8654au_0_gpios {
279         gpio-line-names = "DS_EN",
280                           "POFF_COMPLETE",
281                           "UFS0_VER_ID",
282                           "FAST_POFF",
283                           "DBU1_PON_DONE",
284                           "AOSS_SLEEP",
285                           "CAM_DES0_EN",
286                           "CAM_DES1_EN",
287                           "CAM_DES2_EN",
288                           "CAM_DES3_EN",
289                           "UEFI",
290                           "ANALOG_PON_OPT";
291 };
292
293 &pmm8654au_1_gpios {
294         gpio-line-names = "PMIC_C_ID0",
295                           "PMIC_C_ID1",
296                           "UFS1_VER_ID",
297                           "IPA_PWR",
298                           "",
299                           "WLAN_DBU4_EN",
300                           "WLAN_EN",
301                           "BT_EN",
302                           "USB2_PWR_EN",
303                           "USB2_FAULT";
304
305         usb2_en_state: usb2-en-state {
306                 pins = "gpio9";
307                 function = "normal";
308                 output-high;
309                 power-source = <0>;
310         };
311 };
312
313 &pmm8654au_2_gpios {
314         gpio-line-names = "PMIC_E_ID0",
315                           "PMIC_E_ID1",
316                           "USB0_PWR_EN",
317                           "USB0_FAULT",
318                           "SENSOR_IRQ_1",
319                           "SENSOR_IRQ_2",
320                           "SENSOR_RST",
321                           "SGMIIO0_RST",
322                           "SGMIIO1_RST",
323                           "USB1_PWR_ENABLE",
324                           "USB1_FAULT",
325                           "VMON_SPX8";
326
327         usb0_en_state: usb0-en-state {
328                 pins = "gpio3";
329                 function = "normal";
330                 output-high;
331                 power-source = <0>;
332         };
333
334         usb1_en_state: usb1-en-state {
335                 pins = "gpio10";
336                 function = "normal";
337                 output-high;
338                 power-source = <0>;
339         };
340 };
341
342 &pmm8654au_3_gpios {
343         gpio-line-names = "PMIC_G_ID0",
344                           "PMIC_G_ID1",
345                           "GNSS_RST",
346                           "GNSS_EN",
347                           "GNSS_BOOT_MODE";
348 };
349
350 &qupv3_id_1 {
351         status = "okay";
352 };
353
354 &qupv3_id_2 {
355         status = "okay";
356 };
357
358 &sleep_clk {
359         clock-frequency = <32764>;
360 };
361
362 &spi16 {
363         pinctrl-0 = <&qup_spi16_default>;
364         pinctrl-names = "default";
365         status = "okay";
366 };
367
368 &tlmm {
369         qup_uart10_default: qup-uart10-state {
370                 pins = "gpio46", "gpio47";
371                 function = "qup1_se3";
372         };
373
374         qup_spi16_default: qup-spi16-state {
375                 pins = "gpio86", "gpio87", "gpio88", "gpio89";
376                 function = "qup2_se2";
377                 drive-strength = <6>;
378                 bias-disable;
379         };
380
381         qup_i2c11_default: qup-i2c11-state {
382                 pins = "gpio48", "gpio49";
383                 function = "qup1_se4";
384                 drive-strength = <2>;
385                 bias-pull-up;
386         };
387
388         qup_i2c18_default: qup-i2c18-state {
389                 pins = "gpio95", "gpio96";
390                 function = "qup2_se4";
391                 drive-strength = <2>;
392                 bias-pull-up;
393         };
394
395         qup_uart12_default: qup-uart12-state {
396                 qup_uart12_cts: qup-uart12-cts-pins {
397                         pins = "gpio52";
398                         function = "qup1_se5";
399                         bias-disable;
400                 };
401
402                 qup_uart12_rts: qup-uart12-rts-pins {
403                         pins = "gpio53";
404                         function = "qup1_se5";
405                         bias-pull-down;
406                 };
407
408                 qup_uart12_tx: qup-uart12-tx-pins {
409                         pins = "gpio54";
410                         function = "qup1_se5";
411                         bias-pull-up;
412                 };
413
414                 qup_uart12_rx: qup-uart12-rx-pins {
415                         pins = "gpio55";
416                         function = "qup1_se5";
417                         bias-pull-down;
418                 };
419         };
420
421         qup_uart17_default: qup-uart17-state {
422                 qup_uart17_cts: qup-uart17-cts-pins {
423                         pins = "gpio91";
424                         function = "qup2_se3";
425                         bias-disable;
426                 };
427
428                 qup_uart17_rts: qup0-uart17-rts-pins {
429                         pins = "gpio92";
430                         function = "qup2_se3";
431                         bias-pull-down;
432                 };
433
434                 qup_uart17_tx: qup0-uart17-tx-pins {
435                         pins = "gpio93";
436                         function = "qup2_se3";
437                         bias-pull-up;
438                 };
439
440                 qup_uart17_rx: qup0-uart17-rx-pins {
441                         pins = "gpio94";
442                         function = "qup2_se3";
443                         bias-pull-down;
444                 };
445         };
446 };
447
448 &uart10 {
449         compatible = "qcom,geni-debug-uart";
450         pinctrl-0 = <&qup_uart10_default>;
451         pinctrl-names = "default";
452         status = "okay";
453 };
454
455 &uart12 {
456         pinctrl-0 = <&qup_uart12_default>;
457         pinctrl-names = "default";
458         status = "okay";
459 };
460
461 &uart17 {
462         pinctrl-0 = <&qup_uart17_default>;
463         pinctrl-names = "default";
464         status = "okay";
465 };
466
467 &ufs_mem_hc {
468         reset-gpios = <&tlmm 149 GPIO_ACTIVE_LOW>;
469         vcc-supply = <&vreg_l8a>;
470         vcc-max-microamp = <1100000>;
471         vccq-supply = <&vreg_l4c>;
472         vccq-max-microamp = <1200000>;
473
474         status = "okay";
475 };
476
477 &ufs_mem_phy {
478         vdda-phy-supply = <&vreg_l4a>;
479         vdda-pll-supply = <&vreg_l1c>;
480
481         status = "okay";
482 };
483
484 &usb_0 {
485         pinctrl-names = "default";
486         pinctrl-0 = <&usb0_en_state>;
487
488         status = "okay";
489 };
490
491 &usb_0_dwc3 {
492         dr_mode = "peripheral";
493 };
494
495 &usb_0_hsphy {
496         vdda-pll-supply = <&vreg_l7a>;
497         vdda18-supply = <&vreg_l6c>;
498         vdda33-supply = <&vreg_l9a>;
499
500         status = "okay";
501 };
502
503 &usb_0_qmpphy {
504         vdda-phy-supply = <&vreg_l1c>;
505         vdda-pll-supply = <&vreg_l7a>;
506
507         status = "okay";
508 };
509
510 &usb_1 {
511         pinctrl-names = "default";
512         pinctrl-0 = <&usb1_en_state>;
513
514         status = "okay";
515 };
516
517 &usb_1_dwc3 {
518         dr_mode = "host";
519 };
520
521 &usb_1_hsphy {
522         vdda-pll-supply = <&vreg_l7a>;
523         vdda18-supply = <&vreg_l6c>;
524         vdda33-supply = <&vreg_l9a>;
525
526         status = "okay";
527 };
528
529 &usb_1_qmpphy {
530         vdda-phy-supply = <&vreg_l1c>;
531         vdda-pll-supply = <&vreg_l7a>;
532
533         status = "okay";
534 };
535
536 &usb_2 {
537         pinctrl-names = "default";
538         pinctrl-0 = <&usb2_en_state>;
539
540         status = "okay";
541 };
542
543 &usb_2_dwc3 {
544         dr_mode = "host";
545 };
546
547 &usb_2_hsphy {
548         vdda-pll-supply = <&vreg_l7a>;
549         vdda18-supply = <&vreg_l6c>;
550         vdda33-supply = <&vreg_l9a>;
551
552         status = "okay";
553 };
554
555 &xo_board_clk {
556         clock-frequency = <38400000>;
557 };