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