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		rmi-f01@1 {
128			reg = <0x1>;
129			syna,nosleep = <1>;
130		};
131
132		rmi-f11@11 {
133			reg = <0x11>;
134			syna,f11-flip-x = <1>;
135			syna,sensor-type = <1>;
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};
639