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