Merge tag 'soc-dt-6.5' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc
[sfrench/cifs-2.6.git] / arch / arm / boot / dts / qcom / qcom-msm8974pro-sony-xperia-shinano-castor.dts
1 // SPDX-License-Identifier: GPL-2.0
2 #include "qcom-msm8974pro.dtsi"
3 #include "qcom-pm8841.dtsi"
4 #include "qcom-pm8941.dtsi"
5 #include <dt-bindings/input/input.h>
6 #include <dt-bindings/leds/common.h>
7 #include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
8
9 / {
10         model = "Sony Xperia Z2 Tablet";
11         compatible = "sony,xperia-castor", "qcom,msm8974pro", "qcom,msm8974";
12         chassis-type = "tablet";
13
14         aliases {
15                 serial0 = &blsp1_uart2;
16                 serial1 = &blsp2_uart1;
17         };
18
19         chosen {
20                 stdout-path = "serial0:115200n8";
21         };
22
23         gpio-keys {
24                 compatible = "gpio-keys";
25
26                 pinctrl-names = "default";
27                 pinctrl-0 = <&gpio_keys_pin_a>;
28
29                 key-volume-down {
30                         label = "volume_down";
31                         gpios = <&pm8941_gpios 2 GPIO_ACTIVE_LOW>;
32                         linux,input-type = <1>;
33                         linux,code = <KEY_VOLUMEDOWN>;
34                 };
35
36                 key-camera-snapshot {
37                         label = "camera_snapshot";
38                         gpios = <&pm8941_gpios 3 GPIO_ACTIVE_LOW>;
39                         linux,input-type = <1>;
40                         linux,code = <KEY_CAMERA>;
41                 };
42
43                 key-camera-focus {
44                         label = "camera_focus";
45                         gpios = <&pm8941_gpios 4 GPIO_ACTIVE_LOW>;
46                         linux,input-type = <1>;
47                         linux,code = <KEY_CAMERA_FOCUS>;
48                 };
49
50                 key-volume-up {
51                         label = "volume_up";
52                         gpios = <&pm8941_gpios 5 GPIO_ACTIVE_LOW>;
53                         linux,input-type = <1>;
54                         linux,code = <KEY_VOLUMEUP>;
55                 };
56         };
57
58         vreg_bl_vddio: lcd-backlight-vddio {
59                 compatible = "regulator-fixed";
60                 regulator-name = "vreg_bl_vddio";
61                 regulator-min-microvolt = <3150000>;
62                 regulator-max-microvolt = <3150000>;
63
64                 gpio = <&tlmm 69 0>;
65                 enable-active-high;
66
67                 vin-supply = <&pm8941_s3>;
68                 startup-delay-us = <70000>;
69
70                 pinctrl-names = "default";
71                 pinctrl-0 = <&lcd_backlight_en_pin_a>;
72         };
73
74         vreg_vsp: lcd-dcdc-regulator {
75                 compatible = "regulator-fixed";
76                 regulator-name = "vreg_vsp";
77                 regulator-min-microvolt = <5600000>;
78                 regulator-max-microvolt = <5600000>;
79
80                 gpio = <&pm8941_gpios 20 GPIO_ACTIVE_HIGH>;
81                 enable-active-high;
82
83                 pinctrl-names = "default";
84                 pinctrl-0 = <&lcd_dcdc_en_pin_a>;
85         };
86
87         vreg_wlan: wlan-regulator {
88                 compatible = "regulator-fixed";
89
90                 regulator-name = "wl-reg";
91                 regulator-min-microvolt = <3300000>;
92                 regulator-max-microvolt = <3300000>;
93
94                 gpio = <&pm8941_gpios 18 GPIO_ACTIVE_HIGH>;
95                 enable-active-high;
96
97                 pinctrl-names = "default";
98                 pinctrl-0 = <&wlan_regulator_pin>;
99         };
100 };
101
102 &blsp1_uart2 {
103         status = "okay";
104 };
105
106 &blsp2_i2c2 {
107         status = "okay";
108         clock-frequency = <355000>;
109
110         synaptics@2c {
111                 compatible = "syna,rmi4-i2c";
112                 reg = <0x2c>;
113
114                 interrupt-parent = <&tlmm>;
115                 interrupts = <86 IRQ_TYPE_EDGE_FALLING>;
116
117                 #address-cells = <1>;
118                 #size-cells = <0>;
119
120                 vdd-supply = <&pm8941_l22>;
121                 vio-supply = <&pm8941_lvs3>;
122
123                 pinctrl-names = "default";
124                 pinctrl-0 = <&ts_int_pin>;
125
126                 syna,startup-delay-ms = <100>;
127
128                 rmi-f01@1 {
129                         reg = <0x1>;
130                         syna,nosleep = <1>;
131                 };
132
133                 rmi-f11@11 {
134                         reg = <0x11>;
135                         syna,f11-flip-x = <1>;
136                         syna,sensor-type = <1>;
137                 };
138         };
139 };
140
141 &blsp2_i2c5 {
142         status = "okay";
143         clock-frequency = <355000>;
144
145         lp8566_wled: backlight@2c {
146                 compatible = "ti,lp8556";
147                 reg = <0x2c>;
148                 power-supply = <&vreg_bl_vddio>;
149
150                 bl-name = "backlight";
151                 dev-ctrl = /bits/ 8 <0x05>;
152                 init-brt = /bits/ 8 <0x3f>;
153
154                 rom-a0h {
155                         rom-addr = /bits/ 8 <0xa0>;
156                         rom-val = /bits/ 8 <0xff>;
157                 };
158                 rom-a1h {
159                         rom-addr = /bits/ 8 <0xa1>;
160                         rom-val = /bits/ 8 <0x3f>;
161                 };
162                 rom-a2h {
163                         rom-addr = /bits/ 8 <0xa2>;
164                         rom-val = /bits/ 8 <0x20>;
165                 };
166                 rom-a3h {
167                         rom-addr = /bits/ 8 <0xa3>;
168                         rom-val = /bits/ 8 <0x5e>;
169                 };
170                 rom-a4h {
171                         rom-addr = /bits/ 8 <0xa4>;
172                         rom-val = /bits/ 8 <0x02>;
173                 };
174                 rom-a5h {
175                         rom-addr = /bits/ 8 <0xa5>;
176                         rom-val = /bits/ 8 <0x04>;
177                 };
178                 rom-a6h {
179                         rom-addr = /bits/ 8 <0xa6>;
180                         rom-val = /bits/ 8 <0x80>;
181                 };
182                 rom-a7h {
183                         rom-addr = /bits/ 8 <0xa7>;
184                         rom-val = /bits/ 8 <0xf7>;
185                 };
186                 rom-a9h {
187                         rom-addr = /bits/ 8 <0xa9>;
188                         rom-val = /bits/ 8 <0x80>;
189                 };
190                 rom-aah {
191                         rom-addr = /bits/ 8 <0xaa>;
192                         rom-val = /bits/ 8 <0x0f>;
193                 };
194                 rom-aeh {
195                         rom-addr = /bits/ 8 <0xae>;
196                         rom-val = /bits/ 8 <0x0f>;
197                 };
198         };
199 };
200
201 &blsp2_uart1 {
202         status = "okay";
203
204         bluetooth {
205                 compatible = "brcm,bcm43438-bt";
206                 max-speed = <3000000>;
207
208                 pinctrl-names = "default";
209                 pinctrl-0 = <&bt_host_wake_pin>, <&bt_dev_wake_pin>, <&bt_reg_on_pin>;
210
211                 host-wakeup-gpios = <&tlmm 95 GPIO_ACTIVE_HIGH>;
212                 device-wakeup-gpios = <&tlmm 96 GPIO_ACTIVE_HIGH>;
213                 shutdown-gpios = <&pm8941_gpios 16 GPIO_ACTIVE_HIGH>;
214         };
215 };
216
217 &pm8941_coincell {
218         status = "okay";
219
220         qcom,rset-ohms = <2100>;
221         qcom,vset-millivolts = <3000>;
222 };
223
224 &pm8941_gpios {
225         gpio_keys_pin_a: gpio-keys-active-state {
226                 pins = "gpio2", "gpio5";
227                 function = "normal";
228
229                 bias-pull-up;
230                 power-source = <PM8941_GPIO_S3>;
231         };
232
233         bt_reg_on_pin: bt-reg-on-state {
234                 pins = "gpio16";
235                 function = "normal";
236
237                 output-low;
238                 power-source = <PM8941_GPIO_S3>;
239         };
240
241         wlan_sleep_clk_pin: wl-sleep-clk-state {
242                 pins = "gpio17";
243                 function = "func2";
244
245                 output-high;
246                 power-source = <PM8941_GPIO_S3>;
247         };
248
249         wlan_regulator_pin: wl-reg-active-state {
250                 pins = "gpio18";
251                 function = "normal";
252
253                 bias-disable;
254                 power-source = <PM8941_GPIO_S3>;
255         };
256
257         lcd_dcdc_en_pin_a: lcd-dcdc-en-active-state {
258                 pins = "gpio20";
259                 function = "normal";
260
261                 bias-disable;
262                 power-source = <PM8941_GPIO_S3>;
263                 input-disable;
264                 output-low;
265         };
266
267 };
268
269 &pm8941_lpg {
270         status = "okay";
271
272         qcom,power-source = <1>;
273
274         multi-led {
275                 color = <LED_COLOR_ID_RGB>;
276                 function = LED_FUNCTION_STATUS;
277
278                 #address-cells = <1>;
279                 #size-cells = <0>;
280
281                 led@5 {
282                         reg = <5>;
283                         color = <LED_COLOR_ID_BLUE>;
284                 };
285
286                 led@6 {
287                         reg = <6>;
288                         color = <LED_COLOR_ID_GREEN>;
289                 };
290
291                 led@7 {
292                         reg = <7>;
293                         color = <LED_COLOR_ID_RED>;
294                 };
295         };
296 };
297
298 &remoteproc_adsp {
299         cx-supply = <&pm8841_s2>;
300 };
301
302 &remoteproc_mss {
303         cx-supply = <&pm8841_s2>;
304         mss-supply = <&pm8841_s3>;
305         mx-supply = <&pm8841_s1>;
306         pll-supply = <&pm8941_l12>;
307 };
308
309 &rpm_requests {
310         regulators-0 {
311                 compatible = "qcom,rpm-pm8841-regulators";
312
313                 pm8841_s1: s1 {
314                         regulator-min-microvolt = <675000>;
315                         regulator-max-microvolt = <1050000>;
316                 };
317
318                 pm8841_s2: s2 {
319                         regulator-min-microvolt = <500000>;
320                         regulator-max-microvolt = <1050000>;
321                 };
322
323                 pm8841_s3: s3 {
324                         regulator-min-microvolt = <500000>;
325                         regulator-max-microvolt = <1050000>;
326                 };
327
328                 pm8841_s4: s4 {
329                         regulator-min-microvolt = <500000>;
330                         regulator-max-microvolt = <1050000>;
331                 };
332         };
333
334         regulators-1 {
335                 compatible = "qcom,rpm-pm8941-regulators";
336
337                 vdd_l1_l3-supply = <&pm8941_s1>;
338                 vdd_l2_lvs1_2_3-supply = <&pm8941_s3>;
339                 vdd_l4_l11-supply = <&pm8941_s1>;
340                 vdd_l5_l7-supply = <&pm8941_s2>;
341                 vdd_l6_l12_l14_l15-supply = <&pm8941_s2>;
342                 vdd_l9_l10_l17_l22-supply = <&vreg_boost>;
343                 vdd_l13_l20_l23_l24-supply = <&vreg_boost>;
344                 vdd_l21-supply = <&vreg_boost>;
345
346                 pm8941_s1: s1 {
347                         regulator-min-microvolt = <1300000>;
348                         regulator-max-microvolt = <1300000>;
349                         regulator-always-on;
350                         regulator-boot-on;
351                 };
352
353                 pm8941_s2: s2 {
354                         regulator-min-microvolt = <2150000>;
355                         regulator-max-microvolt = <2150000>;
356                         regulator-boot-on;
357                 };
358
359                 pm8941_s3: s3 {
360                         regulator-min-microvolt = <1800000>;
361                         regulator-max-microvolt = <1800000>;
362                         regulator-system-load = <154000>;
363                         regulator-always-on;
364                         regulator-boot-on;
365                 };
366
367                 pm8941_s4: s4 {
368                         regulator-min-microvolt = <5000000>;
369                         regulator-max-microvolt = <5000000>;
370                 };
371
372                 pm8941_l1: l1 {
373                         regulator-min-microvolt = <1225000>;
374                         regulator-max-microvolt = <1225000>;
375                         regulator-always-on;
376                         regulator-boot-on;
377                 };
378
379                 pm8941_l2: l2 {
380                         regulator-min-microvolt = <1200000>;
381                         regulator-max-microvolt = <1200000>;
382                 };
383
384                 pm8941_l3: l3 {
385                         regulator-min-microvolt = <1200000>;
386                         regulator-max-microvolt = <1200000>;
387                 };
388
389                 pm8941_l4: l4 {
390                         regulator-min-microvolt = <1225000>;
391                         regulator-max-microvolt = <1225000>;
392                 };
393
394                 pm8941_l5: l5 {
395                         regulator-min-microvolt = <1800000>;
396                         regulator-max-microvolt = <1800000>;
397                 };
398
399                 pm8941_l6: l6 {
400                         regulator-min-microvolt = <1800000>;
401                         regulator-max-microvolt = <1800000>;
402                         regulator-boot-on;
403                 };
404
405                 pm8941_l7: l7 {
406                         regulator-min-microvolt = <1800000>;
407                         regulator-max-microvolt = <1800000>;
408                         regulator-boot-on;
409                 };
410
411                 pm8941_l8: l8 {
412                         regulator-min-microvolt = <1800000>;
413                         regulator-max-microvolt = <1800000>;
414                 };
415
416                 pm8941_l9: l9 {
417                         regulator-min-microvolt = <1800000>;
418                         regulator-max-microvolt = <2950000>;
419                 };
420
421                 pm8941_l11: l11 {
422                         regulator-min-microvolt = <1300000>;
423                         regulator-max-microvolt = <1350000>;
424                 };
425
426                 pm8941_l12: l12 {
427                         regulator-min-microvolt = <1800000>;
428                         regulator-max-microvolt = <1800000>;
429                         regulator-always-on;
430                         regulator-boot-on;
431                 };
432
433                 pm8941_l13: l13 {
434                         regulator-min-microvolt = <1800000>;
435                         regulator-max-microvolt = <2950000>;
436                         regulator-boot-on;
437                 };
438
439                 pm8941_l14: l14 {
440                         regulator-min-microvolt = <1800000>;
441                         regulator-max-microvolt = <1800000>;
442                 };
443
444                 pm8941_l15: l15 {
445                         regulator-min-microvolt = <2050000>;
446                         regulator-max-microvolt = <2050000>;
447                 };
448
449                 pm8941_l16: l16 {
450                         regulator-min-microvolt = <2700000>;
451                         regulator-max-microvolt = <2700000>;
452                 };
453
454                 pm8941_l17: l17 {
455                         regulator-min-microvolt = <2700000>;
456                         regulator-max-microvolt = <2700000>;
457                 };
458
459                 pm8941_l18: l18 {
460                         regulator-min-microvolt = <2850000>;
461                         regulator-max-microvolt = <2850000>;
462                 };
463
464                 pm8941_l19: l19 {
465                         regulator-min-microvolt = <2850000>;
466                         regulator-max-microvolt = <2850000>;
467                 };
468
469                 pm8941_l20: l20 {
470                         regulator-min-microvolt = <2950000>;
471                         regulator-max-microvolt = <2950000>;
472                         regulator-system-load = <500000>;
473                         regulator-allow-set-load;
474                         regulator-boot-on;
475                 };
476
477                 pm8941_l21: l21 {
478                         regulator-min-microvolt = <2950000>;
479                         regulator-max-microvolt = <2950000>;
480                         regulator-boot-on;
481                 };
482
483                 pm8941_l22: l22 {
484                         regulator-min-microvolt = <3000000>;
485                         regulator-max-microvolt = <3000000>;
486                 };
487
488                 pm8941_l23: l23 {
489                         regulator-min-microvolt = <2800000>;
490                         regulator-max-microvolt = <2800000>;
491                 };
492
493                 pm8941_l24: l24 {
494                         regulator-min-microvolt = <3075000>;
495                         regulator-max-microvolt = <3075000>;
496                         regulator-boot-on;
497                 };
498
499                 pm8941_lvs3: lvs3 {};
500         };
501 };
502
503 &sdhc_1 {
504         status = "okay";
505
506         vmmc-supply = <&pm8941_l20>;
507         vqmmc-supply = <&pm8941_s3>;
508
509         pinctrl-names = "default", "sleep";
510         pinctrl-0 = <&sdc1_on>;
511         pinctrl-1 = <&sdc1_off>;
512 };
513
514 &sdhc_2 {
515         status = "okay";
516
517         vmmc-supply = <&pm8941_l21>;
518         vqmmc-supply = <&pm8941_l13>;
519
520         cd-gpios = <&tlmm 62 GPIO_ACTIVE_LOW>;
521
522         pinctrl-names = "default", "sleep";
523         pinctrl-0 = <&sdc2_on>;
524         pinctrl-1 = <&sdc2_off>;
525 };
526
527 &sdhc_3 {
528         status = "okay";
529
530         max-frequency = <100000000>;
531         vmmc-supply = <&vreg_wlan>;
532         non-removable;
533
534         pinctrl-names = "default";
535         pinctrl-0 = <&sdc3_on>;
536
537         #address-cells = <1>;
538         #size-cells = <0>;
539
540         bcrmf@1 {
541                 compatible = "brcm,bcm4339-fmac", "brcm,bcm4329-fmac";
542                 reg = <1>;
543
544                 brcm,drive-strength = <10>;
545
546                 pinctrl-names = "default";
547                 pinctrl-0 = <&wlan_sleep_clk_pin>;
548         };
549 };
550
551 &smbb {
552         qcom,fast-charge-safe-current = <1500000>;
553         qcom,fast-charge-current-limit = <1500000>;
554         qcom,dc-current-limit = <1800000>;
555         usb-charge-current-limit = <1800000>;
556         qcom,fast-charge-safe-voltage = <4400000>;
557         qcom,fast-charge-high-threshold-voltage = <4350000>;
558         qcom,fast-charge-low-threshold-voltage = <3400000>;
559         qcom,auto-recharge-threshold-voltage = <4200000>;
560         qcom,minimum-input-voltage = <4300000>;
561 };
562
563 &tlmm {
564         lcd_backlight_en_pin_a: lcd-backlight-vddio-state {
565                 pins = "gpio69";
566                 function = "gpio";
567                 drive-strength = <10>;
568                 output-low;
569                 bias-disable;
570         };
571
572         sdc1_on: sdc1-on-state {
573                 clk-pins {
574                         pins = "sdc1_clk";
575                         drive-strength = <16>;
576                         bias-disable;
577                 };
578
579                 cmd-data-pins {
580                         pins = "sdc1_cmd", "sdc1_data";
581                         drive-strength = <10>;
582                         bias-pull-up;
583                 };
584         };
585
586         sdc2_on: sdc2-on-state {
587                 clk-pins {
588                         pins = "sdc2_clk";
589                         drive-strength = <6>;
590                         bias-disable;
591                 };
592
593                 cmd-data-pins {
594                         pins = "sdc2_cmd", "sdc2_data";
595                         drive-strength = <6>;
596                         bias-pull-up;
597                 };
598
599                 cd-pins {
600                         pins = "gpio62";
601                         function = "gpio";
602                         drive-strength = <2>;
603                         bias-disable;
604                 };
605         };
606
607         sdc3_on: sdc3-on-state {
608                 clk-pins {
609                         pins = "gpio40";
610                         function = "sdc3";
611                         drive-strength = <10>;
612                         bias-disable;
613                 };
614
615                 cmd-pins {
616                         pins = "gpio39";
617                         function = "sdc3";
618                         drive-strength = <10>;
619                         bias-pull-up;
620                 };
621
622                 data-pins {
623                         pins = "gpio35", "gpio36", "gpio37", "gpio38";
624                         function = "sdc3";
625                         drive-strength = <10>;
626                         bias-pull-up;
627                 };
628         };
629
630         ts_int_pin: ts-int-pin-state {
631                 pins = "gpio86";
632                 function = "gpio";
633                 drive-strength = <2>;
634                 bias-disable;
635         };
636
637         bt_host_wake_pin: bt-host-wake-state {
638                 pins = "gpio95";
639                 function = "gpio";
640                 drive-strength = <2>;
641                 bias-disable;
642                 output-low;
643         };
644
645         bt_dev_wake_pin: bt-dev-wake-state {
646                 pins = "gpio96";
647                 function = "gpio";
648                 drive-strength = <2>;
649                 bias-disable;
650         };
651 };
652
653 &usb {
654         status = "okay";
655
656         phys = <&usb_hs1_phy>;
657         phy-select = <&tcsr 0xb000 0>;
658         extcon = <&smbb>, <&usb_id>;
659         vbus-supply = <&chg_otg>;
660
661         hnp-disable;
662         srp-disable;
663         adp-disable;
664 };
665
666 &usb_hs1_phy {
667         status = "okay";
668
669         v1p8-supply = <&pm8941_l6>;
670         v3p3-supply = <&pm8941_l24>;
671
672         extcon = <&smbb>;
673         qcom,init-seq = /bits/ 8 <0x1 0x64>;
674 };