Merge tag 'dt-5.15' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc
[linux-2.6-microblaze.git] / arch / arm64 / boot / dts / qcom / sm8150-sony-xperia-kumano.dtsi
1 // SPDX-License-Identifier: BSD-3-Clause
2 /*
3  * Copyright (c) 2021, Konrad Dybcio <konrad.dybcio@somainline.org>
4  */
5
6 /dts-v1/;
7
8 #include <dt-bindings/gpio/gpio.h>
9 #include <dt-bindings/regulator/qcom,rpmh-regulator.h>
10 #include "sm8150.dtsi"
11 #include "pm8150.dtsi"
12 #include "pm8150b.dtsi"
13 #include "pm8150l.dtsi"
14
15 /delete-node/ &cdsp_mem;
16 /delete-node/ &gpu_mem;
17 /delete-node/ &ipa_fw_mem;
18 /delete-node/ &ipa_gsi_mem;
19 /delete-node/ &mpss_mem;
20 /delete-node/ &slpi_mem;
21 /delete-node/ &spss_mem;
22 /delete-node/ &venus_mem;
23
24 / {
25         qcom,msm-id = <339 0x20000>; /* SM8150 v2 */
26         qcom,board-id = <8 0>;
27
28         chosen {
29                 #address-cells = <2>;
30                 #size-cells = <2>;
31                 ranges;
32
33                 framebuffer: framebuffer@9c000000 {
34                         compatible = "simple-framebuffer";
35                         reg = <0 0x9c000000 0 0x2300000>;
36                         width = <1644>;
37                         height = <3840>;
38                         stride = <(1644 * 4)>;
39                         format = "a8r8g8b8";
40                         /*
41                          * That's (going to be) a lot of clocks, but it's necessary due
42                          * to unused clk cleanup & no panel driver yet (& no dispcc either)..
43                          */
44                         clocks = <&gcc GCC_DISP_HF_AXI_CLK>,
45                                  <&gcc GCC_DISP_SF_AXI_CLK>;
46                 };
47         };
48
49         vph_pwr: vph-pwr-regulator {
50                 compatible = "regulator-fixed";
51                 regulator-name = "vph_pwr";
52                 regulator-min-microvolt = <3700000>;
53                 regulator-max-microvolt = <3700000>;
54         };
55
56         /*
57          * Apparently RPMh does not provide support for PM8150 S4 because it
58          * is always-on; model it as a fixed regulator.
59          */
60         vreg_s4a_1p8: pm8150-s4 {
61                 compatible = "regulator-fixed";
62                 regulator-name = "vreg_s4a_1p8";
63
64                 regulator-min-microvolt = <1800000>;
65                 regulator-max-microvolt = <1800000>;
66
67                 regulator-always-on;
68                 regulator-boot-on;
69
70                 vin-supply = <&vph_pwr>;
71         };
72
73         reserved-memory {
74                 mpss_mem: memory@8dc00000 {
75                         reg = <0x0 0x8dc00000 0x0 0x9600000>;
76                         no-map;
77                 };
78
79                 venus_mem: memory@97200000 {
80                         reg = <0x0 0x97200000 0x0 0x500000>;
81                         no-map;
82                 };
83
84                 slpi_mem: memory@97700000 {
85                         reg = <0x0 0x97700000 0x0 0x1400000>;
86                         no-map;
87                 };
88
89                 ipa_fw_mem: memory@98b00000 {
90                         reg = <0x0 0x98b00000 0x0 0x10000>;
91                         no-map;
92                 };
93
94                 ipa_gsi_mem: memory@98b10000 {
95                         reg = <0x0 0x98b10000 0x0 0x5000>;
96                         no-map;
97                 };
98
99                 gpu_mem: memory@98b15000 {
100                         reg = <0x0 0x98b15000 0x0 0x2000>;
101                         no-map;
102                 };
103
104                 spss_mem: memory@98c00000 {
105                         reg = <0x0 0x98c00000 0x0 0x100000>;
106                         no-map;
107                 };
108
109                 cdsp_mem: memory@98d00000 {
110                         reg = <0x0 0x98d00000 0x0 0x1400000>;
111                         no-map;
112                 };
113
114                 cont_splash_mem: memory@9c000000 {
115                         reg = <0x0 0x9c000000 0x0 0x2400000>;
116                         no-map;
117                 };
118
119                 cdsp_sec_mem: memory@a4c00000 {
120                         reg = <0x0 0xa4c00000 0x0 0x3c00000>;
121                         no-map;
122                 };
123
124                 ramoops@ffc00000 {
125                         compatible = "ramoops";
126                         reg = <0x0 0xffc00000 0x0 0x100000>;
127                         record-size = <0x1000>;
128                         console-size = <0x40000>;
129                         msg-size = <0x20000 0x20000>;
130                         ecc-size = <16>;
131                         no-map;
132                 };
133         };
134 };
135
136 &adsp_mem {
137         reg = <0x0 0x8be00000 0x0 0x1e00000>;
138 };
139
140 &apps_rsc {
141         pm8150-rpmh-regulators {
142                 compatible = "qcom,pm8150-rpmh-regulators";
143                 qcom,pmic-id = "a";
144
145                 vdd-s1-supply = <&vph_pwr>;
146                 vdd-s2-supply = <&vph_pwr>;
147                 vdd-s3-supply = <&vph_pwr>;
148                 vdd-s4-supply = <&vph_pwr>;
149                 vdd-s5-supply = <&vph_pwr>;
150                 vdd-s6-supply = <&vph_pwr>;
151                 vdd-s7-supply = <&vph_pwr>;
152                 vdd-s8-supply = <&vph_pwr>;
153                 vdd-s9-supply = <&vph_pwr>;
154                 vdd-s10-supply = <&vph_pwr>;
155
156                 vdd-l1-l8-l11-supply = <&vreg_s6a_0p9>;
157                 vdd-l2-l10-supply = <&vreg_bob>;
158                 vdd-l3-l4-l5-l18-supply = <&vreg_s6a_0p9>;
159                 vdd-l6-l9-supply = <&vreg_s8c_1p3>;
160                 vdd-l7-l12-l14-l15-supply = <&vreg_s5a_1p9>;
161                 vdd-l13-l16-l17-supply = <&vreg_bob>;
162
163                 vreg_s2a_0p6: smps2 {
164                         regulator-min-microvolt = <600000>;
165                         regulator-max-microvolt = <600000>;
166                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
167                 };
168
169                 vreg_s5a_1p9: smps5 {
170                         regulator-min-microvolt = <1904000>;
171                         regulator-max-microvolt = <2040000>;
172                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
173                 };
174
175                 vreg_s6a_0p9: smps6 {
176                         regulator-min-microvolt = <920000>;
177                         regulator-max-microvolt = <1128000>;
178                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
179                 };
180
181                 vreg_l1a_0p75: ldo1 {
182                         regulator-min-microvolt = <752000>;
183                         regulator-max-microvolt = <752000>;
184                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
185                 };
186
187                 vreg_l2a_3p1: ldo2 {
188                         regulator-min-microvolt = <3072000>;
189                         regulator-max-microvolt = <3072000>;
190                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
191                 };
192
193                 vreg_l3a_0p8: ldo3 {
194                         regulator-min-microvolt = <480000>;
195                         regulator-max-microvolt = <932000>;
196                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
197                 };
198
199                 vreg_l5a_0p875: ldo5 {
200                         regulator-min-microvolt = <880000>;
201                         regulator-max-microvolt = <880000>;
202                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
203                 };
204
205                 vreg_l6a_1p2: ldo6 {
206                         regulator-min-microvolt = <1200000>;
207                         regulator-max-microvolt = <1200000>;
208                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
209                 };
210
211                 vreg_l7a_1p8: ldo7 {
212                         regulator-min-microvolt = <1800000>;
213                         regulator-max-microvolt = <1800000>;
214                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
215                 };
216
217                 vreg_l9a_1p2: ldo9 {
218                         regulator-min-microvolt = <1200000>;
219                         regulator-max-microvolt = <1200000>;
220                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
221                 };
222
223                 vreg_l10a_2p5: ldo10 {
224                         regulator-min-microvolt = <2504000>;
225                         regulator-max-microvolt = <2960000>;
226                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
227                 };
228
229                 vreg_l11a_0p8: ldo11 {
230                         regulator-min-microvolt = <800000>;
231                         regulator-max-microvolt = <800000>;
232                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
233                 };
234
235                 vreg_l12a_1p8: ldo12 {
236                         regulator-min-microvolt = <1800000>;
237                         regulator-max-microvolt = <1800000>;
238                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
239                 };
240
241                 /* L13 is unused. */
242
243                 vreg_l14a_1p8: ldo14 {
244                         regulator-min-microvolt = <1800000>;
245                         regulator-max-microvolt = <1800000>;
246                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
247                 };
248
249                 vreg_l15a_1p7: ldo15 {
250                         regulator-min-microvolt = <1704000>;
251                         regulator-max-microvolt = <1704000>;
252                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
253                 };
254
255                 vreg_l16a_2p7: ldo16 {
256                         regulator-min-microvolt = <2704000>;
257                         regulator-max-microvolt = <2960000>;
258                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
259                 };
260
261                 vreg_l17a_3p0: ldo17 {
262                         regulator-min-microvolt = <2856000>;
263                         regulator-max-microvolt = <3008000>;
264                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
265                 };
266
267                 vreg_l18a_0p8: ldo18 {
268                         regulator-min-microvolt = <880000>;
269                         regulator-max-microvolt = <912000>;
270                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
271                 };
272         };
273
274         pm8150l-rpmh-regulators {
275                 compatible = "qcom,pm8150l-rpmh-regulators";
276                 qcom,pmic-id = "c";
277
278                 vdd-s1-supply = <&vph_pwr>;
279                 vdd-s2-supply = <&vph_pwr>;
280                 vdd-s3-supply = <&vph_pwr>;
281                 vdd-s4-supply = <&vph_pwr>;
282                 vdd-s5-supply = <&vph_pwr>;
283                 vdd-s6-supply = <&vph_pwr>;
284                 vdd-s7-supply = <&vph_pwr>;
285                 vdd-s8-supply = <&vph_pwr>;
286
287                 vdd-l1-l8-supply = <&vreg_s4a_1p8>;
288                 vdd-l2-l3-supply = <&vreg_s8c_1p3>;
289                 vdd-l4-l5-l6-supply = <&vreg_bob>;
290                 vdd-l7-l11-supply = <&vreg_bob>;
291                 vdd-l9-l10-supply = <&vreg_bob>;
292
293                 vdd-bob-supply = <&vph_pwr>;
294                 vdd-flash-supply = <&vreg_bob>;
295                 vdd-rgb-supply = <&vreg_bob>;
296
297                 vreg_bob: bob {
298                         regulator-min-microvolt = <3350000>;
299                         regulator-max-microvolt = <4000000>;
300                         regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
301                         regulator-allow-bypass;
302                 };
303
304                 vreg_s1c_1p1: smps1 {
305                         regulator-min-microvolt = <1128000>;
306                         regulator-max-microvolt = <1128000>;
307                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
308                 };
309
310                 vreg_s8c_1p3: smps8 {
311                         regulator-min-microvolt = <1352000>;
312                         regulator-max-microvolt = <1352000>;
313                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
314                 };
315
316                 vreg_l1c_1p8: ldo1 {
317                         regulator-min-microvolt = <1800000>;
318                         regulator-max-microvolt = <1800000>;
319                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
320                 };
321
322                 vreg_l2c_1p3: ldo2 {
323                         regulator-min-microvolt = <1304000>;
324                         regulator-max-microvolt = <1304000>;
325                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
326                 };
327
328                 vreg_l3c_1p2: ldo3 {
329                         regulator-min-microvolt = <1200000>;
330                         regulator-max-microvolt = <1200000>;
331                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
332                 };
333
334                 vreg_l4c_1p8: ldo4 {
335                         regulator-min-microvolt = <1704000>;
336                         regulator-max-microvolt = <2928000>;
337                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
338                 };
339
340                 vreg_l5c_1p8: ldo5 {
341                         regulator-min-microvolt = <1704000>;
342                         regulator-max-microvolt = <2928000>;
343                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
344                 };
345
346                 vreg_l6c_2p9: ldo6 {
347                         regulator-min-microvolt = <1800000>;
348                         regulator-max-microvolt = <2960000>;
349                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
350                         regulator-allow-set-load;
351                 };
352
353                 vreg_l7c_3p0: ldo7 {
354                         regulator-min-microvolt = <2856000>;
355                         regulator-max-microvolt = <3104000>;
356                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
357                 };
358
359                 vreg_l8c_1p8: ldo8 {
360                         regulator-min-microvolt = <1800000>;
361                         regulator-max-microvolt = <1800000>;
362                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
363                 };
364
365                 vreg_l9c_2p9: ldo9 {
366                         regulator-min-microvolt = <2704000>;
367                         regulator-max-microvolt = <2960000>;
368                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
369                         regulator-allow-set-load;
370                 };
371
372                 vreg_l10c_3p3: ldo10 {
373                         regulator-min-microvolt = <3000000>;
374                         regulator-max-microvolt = <3312000>;
375                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
376                 };
377
378                 vreg_l11c_3p3: ldo11 {
379                         regulator-min-microvolt = <3000000>;
380                         regulator-max-microvolt = <3312000>;
381                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
382                 };
383         };
384
385         /* PM8009 is not present on these boards, even if downstream sources suggest so. */
386 };
387
388 &i2c4 {
389         status = "okay";
390
391         /* Qcom SMB1355 @ c */
392         /* Qcom SMB1390 @ 10 */
393         /* NXP PN553 NFC @ 28 */
394         /* Qcom FSA4480 USB-C audio switch @ 43 */
395 };
396
397 &i2c7 {
398         status = "okay";
399
400         /* AMS TCS3490 RGB+IR color sensor @ 72 */
401 };
402
403 &i2c10 {
404         status = "okay";
405
406         /* Samsung touchscreen @ 48 */
407 };
408
409 &pon_pwrkey {
410         status = "okay";
411 };
412
413 &qupv3_id_0 {
414         status = "okay";
415 };
416
417 &qupv3_id_1 {
418         status = "okay";
419 };
420
421 &tlmm {
422         gpio-reserved-ranges = <126 4>;
423 };
424
425 &uart2 {
426         status = "okay";
427 };
428
429 /* BIG WARNING! DO NOT TOUCH UFS, YOUR DEVICE WILL DIE! */
430 &ufs_mem_hc { status = "disabled"; };
431 &ufs_mem_phy { status = "disabled"; };
432
433 &usb_1 {
434         status = "okay";
435 };
436
437 &usb_1_dwc3 {
438         dr_mode = "peripheral";
439 };
440
441 &usb_1_hsphy {
442         status = "okay";
443         vdda-pll-supply = <&vreg_l5a_0p875>;
444         vdda33-supply = <&vreg_l2a_3p1>;
445         vdda18-supply = <&vreg_l12a_1p8>;
446 };
447
448 &usb_1_qmpphy {
449         status = "okay";
450         vdda-phy-supply = <&vreg_l3c_1p2>;
451         vdda-pll-supply = <&vreg_l18a_0p8>;
452 };