arm64: dts: qcom: sm8250-edo: Enable GPI DMA
[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 &gpi_dma0 {
422         status = "okay";
423 };
424
425 &gpi_dma1 {
426         status = "okay";
427 };
428
429 &gpi_dma2 {
430         status = "okay";
431 };
432
433 &i2c1 {
434         status = "okay";
435         clock-frequency = <400000>;
436
437         /* NXP PN553 NFC @ 28 */
438 };
439
440 &i2c2 {
441         status = "okay";
442         clock-frequency = <1000000>;
443
444         /* Dual Cirrus Logic CS35L41 amps @ 40, 41 */
445 };
446
447 &i2c5 {
448         status = "okay";
449         clock-frequency = <400000>;
450
451         /* Dialog SLG51000 CMIC @ 75 */
452 };
453
454 &i2c9 {
455         status = "okay";
456         clock-frequency = <400000>;
457
458         /* AMS TCS3490 RGB+IR color sensor @ 72 */
459 };
460
461 &i2c13 {
462         status = "okay";
463         clock-frequency = <400000>;
464
465         /* Samsung touchscreen @ 48 */
466 };
467
468 &i2c15 {
469         status = "okay";
470         clock-frequency = <400000>;
471
472         /* Qcom SMB1390 @ 10 */
473         /* Silicon Labs SI4704 FM Radio Receiver @ 11 */
474         /* Qcom SMB1390_slave @ 18 */
475         /* HALO HL6111R Qi charger @ 25 */
476         /* Richwave RTC6226 FM Radio Receiver @ 64 */
477 };
478
479 &pcie0 {
480         status = "okay";
481 };
482
483 &pcie0_phy {
484         status = "okay";
485
486         vdda-phy-supply = <&vreg_l5a_0p88>;
487         vdda-pll-supply = <&vreg_l9a_1p2>;
488 };
489
490 &pcie2 {
491         status = "okay";
492
493         pinctrl-0 = <&pcie2_default_state &mdm2ap_default &ap2mdm_default>;
494 };
495
496 &pcie2_phy {
497         status = "okay";
498
499         vdda-phy-supply = <&vreg_l5a_0p88>;
500         vdda-pll-supply = <&vreg_l9a_1p2>;
501 };
502
503 &pon_pwrkey {
504         status = "okay";
505 };
506
507 &pon_resin {
508         status = "okay";
509
510         linux,code = <KEY_VOLUMEUP>;
511 };
512
513 &qupv3_id_0 {
514         status = "okay";
515 };
516
517 &qupv3_id_1 {
518         status = "okay";
519 };
520
521 &qupv3_id_2 {
522         status = "okay";
523 };
524
525 &sdhc_2 {
526         status = "okay";
527
528         cd-gpios = <&tlmm 77 GPIO_ACTIVE_HIGH>;
529         pinctrl-names = "default", "sleep";
530         pinctrl-0 = <&sdc2_default_state &sdc2_card_det_n>;
531         pinctrl-1 = <&sdc2_sleep_state &sdc2_card_det_n>;
532         vmmc-supply = <&vreg_l9c_2p9>;
533         vqmmc-supply = <&vreg_l6c_2p9>;
534         bus-width = <4>;
535         no-sdio;
536         no-emmc;
537 };
538
539 &slpi {
540         status = "okay";
541 };
542
543 &tlmm {
544         gpio-reserved-ranges = <40 4>, <52 4>;
545
546         sdc2_default_state: sdc2-default {
547                 clk {
548                         pins = "sdc2_clk";
549                         drive-strength = <16>;
550                         bias-disable;
551                 };
552
553                 cmd {
554                         pins = "sdc2_cmd";
555                         drive-strength = <16>;
556                         bias-pull-up;
557                 };
558
559                 data {
560                         pins = "sdc2_data";
561                         drive-strength = <16>;
562                         bias-pull-up;
563                 };
564         };
565
566         mdm2ap_default: mdm2ap-default {
567                 pins = "gpio1", "gpio3";
568                 function = "gpio";
569                 drive-strength = <8>;
570                 bias-disable;
571         };
572
573         ap2mdm_default: ap2mdm-default {
574                 pins = "gpio56", "gpio57";
575                 function = "gpio";
576                 drive-strength = <16>;
577                 bias-disable;
578         };
579
580         sdc2_card_det_n: sd-card-det-n {
581                 pins = "gpio77";
582                 function = "gpio";
583                 bias-pull-up;
584                 drive-strength = <2>;
585         };
586 };
587
588 &uart12 {
589         status = "okay";
590 };
591
592 /* BIG WARNING! DO NOT TOUCH UFS, YOUR DEVICE WILL DIE! */
593 &ufs_mem_hc { status = "disabled"; };
594 &ufs_mem_phy { status = "disabled"; };
595
596 &usb_1 {
597         status = "okay";
598 };
599
600 &usb_1_dwc3 {
601         dr_mode = "peripheral";
602 };
603
604 &usb_1_hsphy {
605         status = "okay";
606
607         vdda-pll-supply = <&vreg_l5a_0p88>;
608         vdda18-supply = <&vreg_l12a_1p8>;
609         vdda33-supply = <&vreg_l2a_3p1>;
610 };
611
612 &usb_1_qmpphy {
613         status = "okay";
614
615         vdda-phy-supply = <&vreg_l9a_1p2>;
616         vdda-pll-supply = <&vreg_l18a_0p9>;
617 };