arm64: dts: qcom: sm8250-edo: Enable ADSP/CDSP/SLPI
[linux-2.6-microblaze.git] / arch / arm64 / boot / dts / qcom / sm8250-sony-xperia-edo.dtsi
1 // SPDX-License-Identifier: BSD-3-Clause
2 /*
3  * Copyright (c) 2021, Konrad Dybcio <konrad.dybcio@somainline.org>
4  */
5
6 #include <dt-bindings/regulator/qcom,rpmh-regulator.h>
7 #include "sm8250.dtsi"
8 #include "pm8150.dtsi"
9 #include "pm8150b.dtsi"
10 #include "pm8150l.dtsi"
11 #include "pm8009.dtsi"
12
13 /delete-node/ &adsp_mem;
14 /delete-node/ &spss_mem;
15 /delete-node/ &cdsp_secure_heap;
16
17 / {
18         qcom,msm-id = <356 0x20001>; /* SM8250 v2.1 */
19         qcom,board-id = <0x10008 0>;
20
21         chosen {
22                 #address-cells = <2>;
23                 #size-cells = <2>;
24                 ranges;
25
26                 framebuffer: framebuffer@9c000000 {
27                         compatible = "simple-framebuffer";
28                         reg = <0 0x9c000000 0 0x2300000>;
29                         width = <1644>;
30                         height = <3840>;
31                         stride = <(1644 * 4)>;
32                         format = "a8r8g8b8";
33                         /*
34                          * That's a lot of clocks, but it's necessary due
35                          * to unused clk cleanup & no panel driver yet..
36                          */
37                         clocks = <&dispcc DISP_CC_MDSS_AHB_CLK>,
38                                  <&gcc GCC_DISP_HF_AXI_CLK>,
39                                  <&gcc GCC_DISP_SF_AXI_CLK>,
40                                  <&dispcc DISP_CC_MDSS_VSYNC_CLK>,
41                                  <&dispcc DISP_CC_MDSS_MDP_CLK>,
42                                  <&dispcc DISP_CC_MDSS_BYTE0_CLK>,
43                                  <&dispcc DISP_CC_MDSS_BYTE0_INTF_CLK>,
44                                  <&dispcc DISP_CC_MDSS_PCLK0_CLK>,
45                                  <&dispcc DISP_CC_MDSS_ESC0_CLK>;
46                         power-domains = <&dispcc MDSS_GDSC>;
47                 };
48         };
49
50         gpio_keys: gpio-keys {
51                 compatible = "gpio-keys";
52
53                 /*
54                  * Camera focus (light press) and camera snapshot (full press)
55                  * seem not to work properly.. Adding the former one stalls the CPU
56                  * and the latter kills the volume down key for whatever reason. In any
57                  * case, they are both on &pm8150b_gpios: camera focus(2), camera snapshot(1).
58                  */
59
60                 vol-down {
61                         label = "Volume Down";
62                         linux,code = <KEY_VOLUMEDOWN>;
63                         gpios = <&pm8150_gpios 1 GPIO_ACTIVE_LOW>;
64                         debounce-interval = <15>;
65                         linux,can-disable;
66                         gpio-key,wakeup;
67                 };
68         };
69
70         vph_pwr: vph-pwr-regulator {
71                 compatible = "regulator-fixed";
72                 regulator-name = "vph_pwr";
73                 regulator-min-microvolt = <3700000>;
74                 regulator-max-microvolt = <3700000>;
75         };
76
77         /* S6c is really ebi.lvl but it's there for supply map completeness sake. */
78         vreg_s6c_0p88: smpc6-regulator {
79                 compatible = "regulator-fixed";
80                 regulator-name = "vreg_s6c_0p88";
81
82                 regulator-min-microvolt = <880000>;
83                 regulator-max-microvolt = <880000>;
84                 regulator-always-on;
85                 vin-supply = <&vph_pwr>;
86         };
87
88         reserved-memory {
89                 adsp_mem: memory@8a100000 {
90                         reg = <0x0 0x8a100000 0x0 0x2500000>;
91                         no-map;
92                 };
93
94                 spss_mem: memory@8c600000 {
95                         reg = <0x0 0x8c600000 0x0 0x100000>;
96                         no-map;
97                 };
98
99                 cdsp_secure_heap: memory@8c700000 {
100                         reg = <0x0 0x8c700000 0x0 0x4600000>;
101                         no-map;
102                 };
103
104                 cont_splash_mem: memory@9c000000 {
105                         reg = <0x0 0x9c000000 0x0 0x2300000>;
106                         no-map;
107                 };
108
109                 ramoops@ffc00000 {
110                         compatible = "ramoops";
111                         reg = <0x0 0xffc00000 0x0 0x100000>;
112                         record-size = <0x1000>;
113                         console-size = <0x40000>;
114                         msg-size = <0x20000 0x20000>;
115                         ecc-size = <16>;
116                         no-map;
117                 };
118         };
119 };
120
121 &adsp {
122         status = "okay";
123 };
124
125 &apps_rsc {
126         pm8150-rpmh-regulators {
127                 compatible = "qcom,pm8150-rpmh-regulators";
128                 qcom,pmic-id = "a";
129
130                 vdd-s1-supply = <&vph_pwr>;
131                 vdd-s2-supply = <&vph_pwr>;
132                 vdd-s3-supply = <&vph_pwr>;
133                 vdd-s4-supply = <&vph_pwr>;
134                 vdd-s5-supply = <&vph_pwr>;
135                 vdd-s6-supply = <&vph_pwr>;
136                 vdd-s7-supply = <&vph_pwr>;
137                 vdd-s8-supply = <&vph_pwr>;
138                 vdd-s9-supply = <&vph_pwr>;
139                 vdd-s10-supply = <&vph_pwr>;
140                 vdd-l1-l8-l11-supply = <&vreg_s6c_0p88>;
141                 vdd-l2-l10-supply = <&vreg_bob>;
142                 vdd-l3-l4-l5-l18-supply = <&vreg_s6a_0p6>;
143                 vdd-l6-l9-supply = <&vreg_s8c_1p2>;
144                 vdd-l7-l12-l14-l15-supply = <&vreg_s5a_1p9>;
145                 vdd-l13-l16-l17-supply = <&vreg_bob>;
146
147                 /* (S1+S2+S3) - cx.lvl (ARC) */
148
149                 vreg_s4a_1p8: smps4 {
150                         regulator-name = "vreg_s4a_1p8";
151                         regulator-min-microvolt = <1800000>;
152                         regulator-max-microvolt = <1920000>;
153                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
154                 };
155
156                 vreg_s5a_1p9: smps5 {
157                         regulator-name = "vreg_s5a_1p9";
158                         regulator-min-microvolt = <1824000>;
159                         regulator-max-microvolt = <2040000>;
160                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
161                 };
162
163                 vreg_s6a_0p6: smps6 {
164                         regulator-name = "vreg_s6a_0p6";
165                         regulator-min-microvolt = <600000>;
166                         regulator-max-microvolt = <1128000>;
167                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
168                 };
169
170                 vreg_l2a_3p1: ldo2 {
171                         regulator-name = "vreg_l2a_3p1";
172                         regulator-min-microvolt = <3072000>;
173                         regulator-max-microvolt = <3072000>;
174                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
175                 };
176
177                 vreg_l3a_0p9: ldo3 {
178                         regulator-name = "vreg_l3a_0p9";
179                         regulator-min-microvolt = <928000>;
180                         regulator-max-microvolt = <932000>;
181                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
182                 };
183
184                 /* L4 - lmx.lvl (ARC) */
185
186                 vreg_l5a_0p88: ldo5 {
187                         regulator-name = "vreg_l5a_0p88";
188                         regulator-min-microvolt = <880000>;
189                         regulator-max-microvolt = <880000>;
190                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
191                 };
192
193                 vreg_l6a_1p2: ldo6 {
194                         regulator-name = "vreg_l6a_1p2";
195                         regulator-min-microvolt = <1200000>;
196                         regulator-max-microvolt = <1200000>;
197                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
198                 };
199
200                 /* L7 is unused. */
201
202                 vreg_l9a_1p2: ldo9 {
203                         regulator-name = "vreg_l9a_1p2";
204                         regulator-min-microvolt = <1200000>;
205                         regulator-max-microvolt = <1200000>;
206                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
207                 };
208
209                 /* L10 is unused, L11 - lcx.lvl (ARC) */
210
211                 vreg_l12a_1p8: ldo12 {
212                         regulator-name = "vreg_l12a_1p8";
213                         regulator-min-microvolt = <1800000>;
214                         regulator-max-microvolt = <1800000>;
215                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
216                 };
217
218                 /* L13 is unused. */
219
220                 vreg_l14a_1p8: ldo14 {
221                         regulator-name = "vreg_l14a_1p8";
222                         regulator-min-microvolt = <1800000>;
223                         regulator-max-microvolt = <1880000>;
224                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
225                 };
226
227                 /* L15 & L16 are unused. */
228
229                 vreg_l17a_3p0: ldo17 {
230                         regulator-name = "vreg_l17a_3p0";
231                         regulator-min-microvolt = <2496000>;
232                         regulator-max-microvolt = <3008000>;
233                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
234                 };
235
236                 vreg_l18a_0p9: ldo18 {
237                         regulator-name = "vreg_l18a_0p9";
238                         regulator-min-microvolt = <800000>;
239                         regulator-max-microvolt = <920000>;
240                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
241                 };
242         };
243
244         /*
245          * Remaining regulators that are not yet supported:
246          * OLEDB: 4925000-8100000
247          * ab: 4600000-6100000
248          * ibb: 800000-5400000
249          */
250         pm8150l-rpmh-regulators {
251                 compatible = "qcom,pm8150l-rpmh-regulators";
252                 qcom,pmic-id = "c";
253
254                 vdd-s1-supply = <&vph_pwr>;
255                 vdd-s2-supply = <&vph_pwr>;
256                 vdd-s3-supply = <&vph_pwr>;
257                 vdd-s4-supply = <&vph_pwr>;
258                 vdd-s5-supply = <&vph_pwr>;
259                 vdd-s6-supply = <&vph_pwr>;
260                 vdd-s7-supply = <&vph_pwr>;
261                 vdd-s8-supply = <&vph_pwr>;
262                 vdd-l1-l8-supply = <&vreg_s4a_1p8>;
263                 vdd-l2-l3-supply = <&vreg_s8c_1p2>;
264                 vdd-l4-l5-l6-supply = <&vreg_bob>;
265                 vdd-l7-l11-supply = <&vreg_bob>;
266                 vdd-l9-l10-supply = <&vreg_bob>;
267                 vdd-bob-supply = <&vph_pwr>;
268
269                 vreg_bob: bob {
270                         regulator-name = "vreg_bob";
271                         regulator-min-microvolt = <3350000>;
272                         regulator-max-microvolt = <3960000>;
273                         regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
274                 };
275
276                 /*
277                  * S1-S6 are ARCs:
278                  * (S1+S2) - gfx.lvl,
279                  * S3 - mx.lvl,
280                  * (S4+S5) - mmcx.lvl,
281                  * S6 - ebi.lvl
282                  */
283
284                 vreg_s7c_0p35: smps7 {
285                         regulator-name = "vreg_s7c_0p35";
286                         regulator-min-microvolt = <348000>;
287                         regulator-max-microvolt = <1000000>;
288                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
289                 };
290
291                 vreg_s8c_1p2: smps8 {
292                         regulator-name = "vreg_s8c_1p2";
293                         regulator-min-microvolt = <1200000>;
294                         regulator-max-microvolt = <1400000>;
295                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
296                 };
297
298                 vreg_l1c_1p8: ldo1 {
299                         regulator-name = "vreg_l1c_1p8";
300                         regulator-min-microvolt = <1800000>;
301                         regulator-max-microvolt = <1800000>;
302                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
303                 };
304
305                 /* L2-4 are unused. */
306
307                 vreg_l5c_1p8: ldo5 {
308                         regulator-name = "vreg_l5c_1p8";
309                         regulator-min-microvolt = <1800000>;
310                         regulator-max-microvolt = <2800000>;
311                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
312                 };
313
314                 vreg_l6c_2p9: ldo6 {
315                         regulator-name = "vreg_l6c_2p9";
316                         regulator-min-microvolt = <1800000>;
317                         regulator-max-microvolt = <2960000>;
318                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
319                         regulator-allow-set-load;
320                 };
321
322                 vreg_l7c_2p85: ldo7 {
323                         regulator-name = "vreg_l7c_2p85";
324                         regulator-min-microvolt = <2856000>;
325                         regulator-max-microvolt = <3104000>;
326                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
327                 };
328
329                 vreg_l8c_1p8: ldo8 {
330                         regulator-name = "vreg_l8c_1p8";
331                         regulator-min-microvolt = <1800000>;
332                         regulator-max-microvolt = <1800000>;
333                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
334                 };
335
336                 vreg_l9c_2p9: ldo9 {
337                         regulator-name = "vreg_l9c_2p9";
338                         regulator-min-microvolt = <2704000>;
339                         regulator-max-microvolt = <2960000>;
340                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
341                         regulator-allow-set-load;
342                 };
343
344                 vreg_l10c_3p3: ldo10 {
345                         regulator-name = "vreg_l10c_3p3";
346                         regulator-min-microvolt = <3296000>;
347                         regulator-max-microvolt = <3296000>;
348                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
349                 };
350
351                 vreg_l11c_3p0: ldo11 {
352                         regulator-name = "vreg_l11c_3p0";
353                         regulator-min-microvolt = <3000000>;
354                         regulator-max-microvolt = <3000000>;
355                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
356                 };
357         };
358
359         pm8009-rpmh-regulators {
360                 compatible = "qcom,pm8009-rpmh-regulators";
361                 qcom,pmic-id = "f";
362
363                 vdd-s1-supply = <&vph_pwr>;
364                 vdd-s2-supply = <&vreg_bob>;
365                 vdd-l2-supply = <&vreg_s8c_1p2>;
366                 vdd-l5-l6-supply = <&vreg_bob>;
367                 vdd-l7-supply = <&vreg_s4a_1p8>;
368
369                 vreg_s1f_1p2: smps1 {
370                         regulator-name = "vreg_s1f_1p2";
371                         regulator-min-microvolt = <1200000>;
372                         regulator-max-microvolt = <1200000>;
373                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
374                 };
375
376                 vreg_s2f_0p5: smps2 {
377                         regulator-name = "vreg_s2f_0p5";
378                         regulator-min-microvolt = <512000>;
379                         regulator-max-microvolt = <1100000>;
380                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
381                 };
382
383                 /* L1 is unused. */
384
385                 vreg_l2f_1p3: ldo2 {
386                         regulator-name = "vreg_l2f_1p3";
387                         regulator-min-microvolt = <1304000>;
388                         regulator-max-microvolt = <1304000>;
389                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
390                 };
391
392                 /* L3 & L4 are unused. */
393
394                 vreg_l5f_2p8: ldo5 {
395                         regulator-name = "vreg_l5f_2p85";
396                         regulator-min-microvolt = <2800000>;
397                         regulator-max-microvolt = <2800000>;
398                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
399                 };
400
401                 vreg_l6f_2p8: ldo6 {
402                         regulator-name = "vreg_l6f_2p8";
403                         regulator-min-microvolt = <2800000>;
404                         regulator-max-microvolt = <2800000>;
405                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
406                 };
407
408                 vreg_l7f_1p8: ldo7 {
409                         regulator-name = "vreg_l7f_1p8";
410                         regulator-min-microvolt = <1800000>;
411                         regulator-max-microvolt = <1800000>;
412                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
413                 };
414         };
415 };
416
417 &cdsp {
418         status = "okay";
419 };
420
421 &i2c1 {
422         status = "okay";
423         clock-frequency = <400000>;
424
425         /* NXP PN553 NFC @ 28 */
426 };
427
428 &i2c2 {
429         status = "okay";
430         clock-frequency = <1000000>;
431
432         /* Dual Cirrus Logic CS35L41 amps @ 40, 41 */
433 };
434
435 &i2c5 {
436         status = "okay";
437         clock-frequency = <400000>;
438
439         /* Dialog SLG51000 CMIC @ 75 */
440 };
441
442 &i2c9 {
443         status = "okay";
444         clock-frequency = <400000>;
445
446         /* AMS TCS3490 RGB+IR color sensor @ 72 */
447 };
448
449 &i2c13 {
450         status = "okay";
451         clock-frequency = <400000>;
452
453         /* Samsung touchscreen @ 48 */
454 };
455
456 &i2c15 {
457         status = "okay";
458         clock-frequency = <400000>;
459
460         /* Qcom SMB1390 @ 10 */
461         /* Silicon Labs SI4704 FM Radio Receiver @ 11 */
462         /* Qcom SMB1390_slave @ 18 */
463         /* HALO HL6111R Qi charger @ 25 */
464         /* Richwave RTC6226 FM Radio Receiver @ 64 */
465 };
466
467 &pcie0 {
468         status = "okay";
469 };
470
471 &pcie0_phy {
472         status = "okay";
473
474         vdda-phy-supply = <&vreg_l5a_0p88>;
475         vdda-pll-supply = <&vreg_l9a_1p2>;
476 };
477
478 &pcie2 {
479         status = "okay";
480
481         pinctrl-0 = <&pcie2_default_state &mdm2ap_default &ap2mdm_default>;
482 };
483
484 &pcie2_phy {
485         status = "okay";
486
487         vdda-phy-supply = <&vreg_l5a_0p88>;
488         vdda-pll-supply = <&vreg_l9a_1p2>;
489 };
490
491 &pon_pwrkey {
492         status = "okay";
493 };
494
495 &pon_resin {
496         status = "okay";
497
498         linux,code = <KEY_VOLUMEUP>;
499 };
500
501 &qupv3_id_0 {
502         status = "okay";
503 };
504
505 &qupv3_id_1 {
506         status = "okay";
507 };
508
509 &qupv3_id_2 {
510         status = "okay";
511 };
512
513 &sdhc_2 {
514         status = "okay";
515
516         cd-gpios = <&tlmm 77 GPIO_ACTIVE_HIGH>;
517         pinctrl-names = "default", "sleep";
518         pinctrl-0 = <&sdc2_default_state &sdc2_card_det_n>;
519         pinctrl-1 = <&sdc2_sleep_state &sdc2_card_det_n>;
520         vmmc-supply = <&vreg_l9c_2p9>;
521         vqmmc-supply = <&vreg_l6c_2p9>;
522         bus-width = <4>;
523         no-sdio;
524         no-emmc;
525 };
526
527 &slpi {
528         status = "okay";
529 };
530
531 &tlmm {
532         gpio-reserved-ranges = <40 4>, <52 4>;
533
534         sdc2_default_state: sdc2-default {
535                 clk {
536                         pins = "sdc2_clk";
537                         drive-strength = <16>;
538                         bias-disable;
539                 };
540
541                 cmd {
542                         pins = "sdc2_cmd";
543                         drive-strength = <16>;
544                         bias-pull-up;
545                 };
546
547                 data {
548                         pins = "sdc2_data";
549                         drive-strength = <16>;
550                         bias-pull-up;
551                 };
552         };
553
554         mdm2ap_default: mdm2ap-default {
555                 pins = "gpio1", "gpio3";
556                 function = "gpio";
557                 drive-strength = <8>;
558                 bias-disable;
559         };
560
561         ap2mdm_default: ap2mdm-default {
562                 pins = "gpio56", "gpio57";
563                 function = "gpio";
564                 drive-strength = <16>;
565                 bias-disable;
566         };
567
568         sdc2_card_det_n: sd-card-det-n {
569                 pins = "gpio77";
570                 function = "gpio";
571                 bias-pull-up;
572                 drive-strength = <2>;
573         };
574 };
575
576 &uart12 {
577         status = "okay";
578 };
579
580 /* BIG WARNING! DO NOT TOUCH UFS, YOUR DEVICE WILL DIE! */
581 &ufs_mem_hc { status = "disabled"; };
582 &ufs_mem_phy { status = "disabled"; };
583
584 &usb_1 {
585         status = "okay";
586 };
587
588 &usb_1_dwc3 {
589         dr_mode = "peripheral";
590 };
591
592 &usb_1_hsphy {
593         status = "okay";
594
595         vdda-pll-supply = <&vreg_l5a_0p88>;
596         vdda18-supply = <&vreg_l12a_1p8>;
597         vdda33-supply = <&vreg_l2a_3p1>;
598 };
599
600 &usb_1_qmpphy {
601         status = "okay";
602
603         vdda-phy-supply = <&vreg_l9a_1p2>;
604         vdda-pll-supply = <&vreg_l18a_0p9>;
605 };