Linux 6.9-rc6
[sfrench/cifs-2.6.git] / arch / arm64 / boot / dts / qcom / sm6125-sony-xperia-seine-pdx201.dts
1 // SPDX-License-Identifier: BSD-3-Clause
2 /*
3  * Copyright (c) 2021, Martin Botka <martin.botka@somainline.org>
4  */
5
6 /dts-v1/;
7
8 #include "sm6125.dtsi"
9 #include "pm6125.dtsi"
10 #include <dt-bindings/gpio/gpio.h>
11 #include <dt-bindings/input/gpio-keys.h>
12 #include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
13
14 / {
15         /* required for bootloader to select correct board */
16         qcom,msm-id = <394 0x10000>; /* sm6125 v1 */
17         qcom,board-id = <34 0>;
18
19         model = "Sony Xperia 10 II";
20         compatible = "sony,pdx201", "qcom,sm6125";
21         chassis-type = "handset";
22
23         aliases {
24                 mmc0 = &sdhc_1; /* SDC1 eMMC slot */
25                 mmc1 = &sdhc_2; /* SDC2 SD card slot */
26         };
27
28         chosen {
29                 #address-cells = <2>;
30                 #size-cells = <2>;
31                 ranges;
32
33                 framebuffer0: framebuffer@5c000000 {
34                         compatible = "simple-framebuffer";
35                         reg = <0 0x5c000000 0 (2520 * 1080 * 4)>;
36                         width = <1080>;
37                         height = <2520>;
38                         stride = <(1080 * 4)>;
39                         format = "a8r8g8b8";
40                 };
41         };
42
43         extcon_usb: extcon-usb {
44                 compatible = "linux,extcon-usb-gpio";
45                 id-gpios = <&tlmm 102 GPIO_ACTIVE_HIGH>;
46         };
47
48         gpio-keys {
49                 compatible = "gpio-keys";
50
51                 pinctrl-0 = <&vol_down_n>;
52                 pinctrl-names = "default";
53
54                 key-volume-down {
55                         label = "Volume Down";
56                         gpios = <&tlmm 47 GPIO_ACTIVE_LOW>;
57                         linux,code = <KEY_VOLUMEDOWN>;
58                         debounce-interval = <15>;
59                         linux,can-disable;
60                         wakeup-source;
61                 };
62         };
63
64         reserved-memory {
65                 #address-cells = <2>;
66                 #size-cells = <2>;
67                 debug_mem: memory@ffb00000 {
68                         reg = <0x0 0xffb00000 0x0 0xc0000>;
69                         no-map;
70                 };
71
72                 last_log_mem: memory@ffbc0000 {
73                         reg = <0x0 0xffbc0000 0x0 0x80000>;
74                         no-map;
75                 };
76
77                 pstore_mem: ramoops@ffc00000 {
78                         compatible = "ramoops";
79                         reg = <0x0 0xffc40000 0x0 0xc0000>;
80                         record-size = <0x1000>;
81                         console-size = <0x40000>;
82                         pmsg-size = <0x20000>;
83                 };
84
85                 cmdline_mem: memory@ffd00000 {
86                         reg = <0x0 0xffd40000 0x0 0x1000>;
87                         no-map;
88                 };
89         };
90
91         thermal-zones {
92                 rf-pa0-thermal {
93                         polling-delay-passive = <0>;
94                         polling-delay = <0>;
95                         thermal-sensors = <&pm6125_adc_tm 0>;
96
97                         trips {
98                                 active-config0 {
99                                         temperature = <125000>;
100                                         hysteresis = <1000>;
101                                         type = "critical";
102                                 };
103                         };
104                 };
105
106                 quiet-thermal {
107                         polling-delay-passive = <0>;
108                         polling-delay = <5000>;
109                         thermal-sensors = <&pm6125_adc_tm 1>;
110
111                         trips {
112                                 active-config0 {
113                                         temperature = <125000>;
114                                         hysteresis = <1000>;
115                                         type = "critical";
116                                 };
117                         };
118                 };
119
120                 xo-thermal {
121                         polling-delay-passive = <0>;
122                         polling-delay = <0>;
123                         thermal-sensors = <&pm6125_adc_tm 2>;
124
125                         trips {
126                                 active-config0 {
127                                         temperature = <125000>;
128                                         hysteresis = <1000>;
129                                         type = "critical";
130                                 };
131                         };
132                 };
133
134                 rf-pa1-thermal {
135                         polling-delay-passive = <0>;
136                         polling-delay = <0>;
137                         thermal-sensors = <&pm6125_adc_tm 3>;
138
139                         trips {
140                                 active-config0 {
141                                         temperature = <125000>;
142                                         hysteresis = <1000>;
143                                         type = "critical";
144                                 };
145                         };
146                 };
147         };
148 };
149
150 &gpi_dma0 {
151         status = "okay";
152 };
153
154 &hsusb_phy1 {
155         vdd-supply = <&pm6125_l7>;
156         vdda-pll-supply = <&pm6125_l10>;
157         vdda-phy-dpdm-supply = <&pm6125_l15>;
158         status = "okay";
159 };
160
161 &i2c1 {
162         clock-frequency = <400000>;
163         status = "okay";
164
165         /* NXP PN553 NFC @ 28 */
166 };
167
168 &i2c2 {
169         clock-frequency = <400000>;
170         status = "okay";
171
172         /* Samsung touchscreen @ 48 */
173 };
174
175 &i2c3 {
176         clock-frequency = <1000000>;
177         status = "okay";
178
179         /* Cirrus Logic CS35L41 boosted audio amplifier @ 40 */
180 };
181
182 &mdss {
183         status = "okay";
184 };
185
186 &mdss_dsi0 {
187         vdda-supply = <&pm6125_l18>;
188         status = "okay";
189
190         panel@0 {
191                 compatible = "samsung,sofef01-m-ams597ut01";
192                 reg = <0>;
193
194                 reset-gpios = <&tlmm 90 GPIO_ACTIVE_LOW>;
195
196                 vddio-supply = <&pm6125_l12>;
197
198                 pinctrl-0 = <&mdss_dsi_active &mdss_te_active_sleep>;
199                 pinctrl-1 = <&mdss_dsi_sleep &mdss_te_active_sleep>;
200                 pinctrl-names = "default", "sleep";
201
202                 port {
203                         panel_in: endpoint {
204                                 remote-endpoint = <&mdss_dsi0_out>;
205                         };
206                 };
207         };
208 };
209
210 &mdss_dsi0_out {
211         remote-endpoint = <&panel_in>;
212         data-lanes = <0 1 2 3>;
213 };
214
215 &mdss_dsi0_phy {
216         status = "okay";
217 };
218
219 &pm6125_adc {
220         pinctrl-names = "default";
221         pinctrl-0 = <&camera_flash_therm &emmc_ufs_therm &rf_pa1_therm>;
222
223         channel@4d {
224                 reg = <ADC5_AMUX_THM1_100K_PU>;
225                 qcom,ratiometric;
226                 qcom,hw-settle-time = <200>;
227                 qcom,pre-scaling = <1 1>;
228                 label = "rf_pa0_therm";
229         };
230
231         channel@4e {
232                 reg = <ADC5_AMUX_THM2_100K_PU>;
233                 qcom,ratiometric;
234                 qcom,hw-settle-time = <200>;
235                 qcom,pre-scaling = <1 1>;
236                 label = "quiet_therm";
237         };
238
239         channel@52 {
240                 reg = <ADC5_GPIO1_100K_PU>;
241                 qcom,ratiometric;
242                 qcom,hw-settle-time = <200>;
243                 qcom,pre-scaling = <1 1>;
244                 label = "camera_flash_therm";
245         };
246
247         channel@54 {
248                 reg = <ADC5_GPIO3_100K_PU>;
249                 qcom,ratiometric;
250                 qcom,hw-settle-time = <200>;
251                 qcom,pre-scaling = <1 1>;
252                 label = "emmc_ufs_therm";
253         };
254
255         channel@55 {
256                 reg = <ADC5_GPIO4_100K_PU>;
257                 qcom,ratiometric;
258                 qcom,hw-settle-time = <200>;
259                 qcom,pre-scaling = <1 1>;
260                 label = "rf_pa1_therm";
261         };
262 };
263
264 &pm6125_adc_tm {
265         status = "okay";
266
267         rf-pa0-therm@0 {
268                 reg = <0>;
269                 io-channels = <&pm6125_adc ADC5_AMUX_THM1_100K_PU>;
270                 qcom,ratiometric;
271                 qcom,hw-settle-time-us = <200>;
272         };
273
274         quiet-therm@1 {
275                 reg = <1>;
276                 io-channels = <&pm6125_adc ADC5_AMUX_THM2_100K_PU>;
277                 qcom,ratiometric;
278                 qcom,hw-settle-time-us = <200>;
279         };
280
281         xo-therm@2 {
282                 reg = <2>;
283                 io-channels = <&pm6125_adc ADC5_XO_THERM_100K_PU>;
284                 qcom,ratiometric;
285                 qcom,hw-settle-time-us = <200>;
286         };
287
288         rf-pa1-therm@3 {
289                 reg = <3>;
290                 io-channels = <&pm6125_adc ADC5_GPIO4_100K_PU>;
291                 qcom,ratiometric;
292                 qcom,hw-settle-time-us = <200>;
293         };
294 };
295
296 &pm6125_gpios {
297         camera_flash_therm: camera-flash-therm-state {
298                 pins = "gpio3";
299                 function = PMIC_GPIO_FUNC_NORMAL;
300                 bias-high-impedance;
301         };
302
303         emmc_ufs_therm: emmc-ufs-therm-state {
304                 pins = "gpio6";
305                 function = PMIC_GPIO_FUNC_NORMAL;
306                 bias-high-impedance;
307         };
308
309         rf_pa1_therm: rf-pa1-therm-state {
310                 pins = "gpio7";
311                 function = PMIC_GPIO_FUNC_NORMAL;
312                 bias-high-impedance;
313         };
314 };
315
316 &pon_pwrkey {
317         status = "okay";
318 };
319
320 &pon_resin {
321         status = "okay";
322         linux,code = <KEY_VOLUMEUP>;
323 };
324
325 &rpm_requests {
326         regulators-0 {
327                 compatible = "qcom,rpm-pm6125-regulators";
328
329                 vdd_l2_l3_l4-supply = <&pm6125_l7>;
330                 vdd_l5_l15_l19_l20_l21_l22-supply = <&pm6125_l10>;
331
332                 /*
333                  * S3/S4 is VDD_CX
334                  * S5 is VDD_MX/WCSS_MX
335                  */
336
337                 pm6125_s6: s6 {
338                         regulator-min-microvolt = <936000>;
339                         regulator-max-microvolt = <1422000>;
340                 };
341
342                 pm6125_l1: l1 {
343                         regulator-min-microvolt = <1200000>;
344                         regulator-max-microvolt = <1256000>;
345                 };
346
347                 pm6125_l2: l2 {
348                         regulator-min-microvolt = <1000000>;
349                         regulator-max-microvolt = <1056000>;
350                 };
351
352                 pm6125_l3: l3 {
353                         regulator-min-microvolt = <1000000>;
354                         regulator-max-microvolt = <1064000>;
355                 };
356
357                 pm6125_l4: l4 {
358                         regulator-min-microvolt = <872000>;
359                         regulator-max-microvolt = <976000>;
360                 };
361
362                 pm6125_l5: l5 {
363                         regulator-min-microvolt = <1648000>;
364                         regulator-max-microvolt = <2950000>;
365                         regulator-allow-set-load;
366                 };
367
368                 pm6125_l6: l6 {
369                         regulator-min-microvolt = <576000>;
370                         regulator-max-microvolt = <656000>;
371                 };
372
373                 pm6125_l7: l7 {
374                         regulator-min-microvolt = <872000>;
375                         regulator-max-microvolt = <976000>;
376                 };
377
378                 pm6125_l8: l8 {
379                         regulator-min-microvolt = <400000>;
380                         regulator-max-microvolt = <728000>;
381                 };
382
383                 pm6125_l9: l9 {
384                         regulator-min-microvolt = <1800000>;
385                         regulator-max-microvolt = <1896000>;
386                 };
387
388                 pm6125_l10: l10 {
389                         regulator-min-microvolt = <1800000>;
390                         regulator-max-microvolt = <1896000>;
391                 };
392
393                 pm6125_l11: l11 {
394                         regulator-min-microvolt = <1800000>;
395                         regulator-max-microvolt = <1800000>;
396                         regulator-allow-set-load;
397                 };
398
399                 pm6125_l12: l12 {
400                         regulator-min-microvolt = <1800000>;
401                         regulator-max-microvolt = <1996000>;
402                 };
403
404                 pm6125_l13: l13 {
405                         regulator-min-microvolt = <1800000>;
406                         regulator-max-microvolt = <1832000>;
407                 };
408
409                 pm6125_l14: l14 {
410                         regulator-min-microvolt = <1800000>;
411                         regulator-max-microvolt = <1904000>;
412                 };
413
414                 pm6125_l15: l15 {
415                         regulator-min-microvolt = <3104000>;
416                         regulator-max-microvolt = <3232000>;
417                 };
418
419                 pm6125_l16: l16 {
420                         regulator-min-microvolt = <1800000>;
421                         regulator-max-microvolt = <1904000>;
422                 };
423
424                 pm6125_l17: l17 {
425                         regulator-min-microvolt = <1248000>;
426                         regulator-max-microvolt = <1304000>;
427                 };
428
429                 pm6125_l18: l18 {
430                         regulator-min-microvolt = <1200000>;
431                         regulator-max-microvolt = <1264000>;
432                 };
433
434                 pm6125_l19: l19 {
435                         regulator-min-microvolt = <1648000>;
436                         regulator-max-microvolt = <2952000>;
437                 };
438
439                 pm6125_l20: l20 {
440                         regulator-min-microvolt = <1648000>;
441                         regulator-max-microvolt = <2952000>;
442                 };
443
444                 pm6125_l21: l21 {
445                         regulator-min-microvolt = <2600000>;
446                         regulator-max-microvolt = <2856000>;
447                 };
448
449                 pm6125_l22: l22 {
450                         regulator-min-microvolt = <2944000>;
451                         regulator-max-microvolt = <2950000>;
452                         regulator-allow-set-load;
453                 };
454
455                 pm6125_l23: l23 {
456                         regulator-min-microvolt = <3000000>;
457                         regulator-max-microvolt = <3400000>;
458                 };
459
460                 pm6125_l24: l24 {
461                         regulator-min-microvolt = <2944000>;
462                         regulator-max-microvolt = <2950000>;
463                         regulator-allow-set-load;
464                 };
465         };
466 };
467
468 &qupv3_id_0 {
469         status = "okay";
470 };
471
472 &sdc2_off_state {
473         sd-cd-pins {
474                 pins = "gpio98";
475                 function = "gpio";
476                 drive-strength = <2>;
477                 bias-disable;
478         };
479 };
480
481 &sdc2_on_state {
482         sd-cd-pins {
483                 pins = "gpio98";
484                 function = "gpio";
485                 drive-strength = <2>;
486                 bias-pull-up;
487         };
488 };
489
490 &sdhc_1 {
491         vmmc-supply = <&pm6125_l24>;
492         vqmmc-supply = <&pm6125_l11>;
493         status = "okay";
494 };
495
496 &sdhc_2 {
497         cd-gpios = <&tlmm 98 GPIO_ACTIVE_HIGH>;
498         vmmc-supply = <&pm6125_l22>;
499         vqmmc-supply = <&pm6125_l5>;
500         no-sdio;
501         no-mmc;
502         status = "okay";
503 };
504
505 &tlmm {
506         gpio-reserved-ranges = <22 2>, <28 6>;
507
508         vol_down_n: vol-down-n-state {
509                 pins = "gpio47";
510                 function = "gpio";
511                 drive-strength = <2>;
512                 bias-disable;
513         };
514
515         mdss_te_active_sleep: mdss-te-active-sleep-state {
516                 pins = "gpio89";
517                 function = "mdp_vsync";
518                 drive-strength = <2>;
519                 bias-pull-down;
520         };
521
522         mdss_dsi_active: mdss-dsi-active-state {
523                 pins = "gpio90";
524                 function = "gpio";
525                 drive-strength = <8>;
526                 bias-disable;
527         };
528
529         mdss_dsi_sleep: mdss-dsi-sleep-state {
530                 pins = "gpio90";
531                 function = "gpio";
532                 drive-strength = <2>;
533                 bias-pull-down;
534         };
535
536 };
537
538 &usb3 {
539         status = "okay";
540 };
541
542 &usb3_dwc3 {
543         extcon = <&extcon_usb>;
544 };