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