xref: /linux/arch/arm/boot/dts/qcom/qcom-msm8974-samsung-hlte.dts (revision 68a052239fc4b351e961f698b824f7654a346091)
1// SPDX-License-Identifier: GPL-2.0
2#include "qcom-msm8974.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 = "Samsung Galaxy Note 3";
11	compatible = "samsung,hlte", "qcom,msm8974";
12	chassis-type = "handset";
13
14	aliases {
15		mmc0 = &sdhc_1; /* SDC1 eMMC slot */
16		mmc1 = &sdhc_3; /* SDC3 SD card slot */
17		serial0 = &blsp1_uart1;
18	};
19
20	chosen {
21		stdout-path = "serial0:115200n8";
22	};
23
24	gpio-keys {
25		compatible = "gpio-keys";
26
27		pinctrl-0 = <&gpio_keys_pin_a>;
28		pinctrl-names = "default";
29
30		key-home {
31			label = "Home Key";
32			gpios = <&pm8941_gpios 3 GPIO_ACTIVE_LOW>;
33			linux,code = <KEY_HOMEPAGE>;
34			wakeup-source;
35			debounce-interval = <15>;
36		};
37
38		key-volume-down {
39			label = "Volume Down";
40			gpios = <&pm8941_gpios 2 GPIO_ACTIVE_LOW>;
41			linux,code = <KEY_VOLUMEDOWN>;
42			debounce-interval = <15>;
43		};
44
45		key-volume-up {
46			label = "Volume Up";
47			gpios = <&pm8941_gpios 5 GPIO_ACTIVE_LOW>;
48			linux,code = <KEY_VOLUMEUP>;
49			debounce-interval = <15>;
50		};
51	};
52
53	i2c-touchkey {
54		compatible = "i2c-gpio";
55
56		sda-gpios = <&tlmm 95 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
57		scl-gpios = <&tlmm 96 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
58
59		pinctrl-0 = <&i2c_touchkey_pins>;
60		pinctrl-names = "default";
61
62		#address-cells = <1>;
63		#size-cells = <0>;
64
65		touchkey@20 {
66			compatible = "cypress,midas-touchkey";
67			reg = <0x20>;
68
69			interrupts-extended = <&pm8941_gpios 29 IRQ_TYPE_EDGE_FALLING>;
70
71			pinctrl-0 = <&touchkey_pin>;
72			pinctrl-names = "default";
73
74			vcc-supply = <&pm8941_lvs3>;
75			vdd-supply = <&pm8941_l13>;
76
77			linux,keycodes = <KEY_APPSELECT KEY_BACK>;
78		};
79	};
80
81	touch_ldo: regulator-touch {
82		compatible = "regulator-fixed";
83		regulator-name = "touch-ldo";
84
85		gpio = <&pm8941_gpios 9 GPIO_ACTIVE_HIGH>;
86		enable-active-high;
87		regulator-boot-on;
88
89		pinctrl-0 = <&touch_ldo_pin>;
90		pinctrl-names = "default";
91	};
92};
93
94&blsp1_i2c2 {
95	status = "okay";
96
97	touchscreen@20 {
98		compatible = "syna,rmi4-i2c";
99		reg = <0x20>;
100
101		interrupt-parent = <&pm8941_gpios>;
102		interrupts = <30 IRQ_TYPE_EDGE_FALLING>;
103
104		vdd-supply = <&pm8941_l10>;
105		vio-supply = <&touch_ldo>;
106
107		pinctrl-0 = <&touch_pin>;
108		pinctrl-names = "default";
109
110		syna,startup-delay-ms = <100>;
111
112		#address-cells = <1>;
113		#size-cells = <0>;
114
115		rmi4-f01@1 {
116			reg = <0x1>;
117			syna,nosleep-mode = <1>;
118		};
119
120		rmi4-f12@12 {
121			reg = <0x12>;
122			syna,sensor-type = <1>;
123		};
124	};
125};
126
127&blsp2_i2c6 {
128	status = "okay";
129
130	fuelgauge@36 {
131		compatible = "maxim,max17048";
132		reg = <0x36>;
133
134		maxim,double-soc;
135		maxim,rcomp = /bits/ 8 <0x56>;
136
137		interrupt-parent = <&pm8941_gpios>;
138		interrupts = <26 IRQ_TYPE_EDGE_FALLING>;
139
140		pinctrl-0 = <&fuelgauge_pin>;
141		pinctrl-names = "default";
142	};
143};
144
145&blsp1_uart2 {
146	status = "okay";
147};
148
149&pm8941_gpios {
150	gpio_keys_pin_a: gpio-keys-active-state {
151		pins = "gpio2", "gpio3", "gpio5";
152		function = "normal";
153		bias-pull-up;
154		power-source = <PM8941_GPIO_S3>;
155	};
156
157	fuelgauge_pin: fuelgauge-int-state {
158		pins = "gpio26";
159		function = "normal";
160		bias-disable;
161		input-enable;
162		power-source = <PM8941_GPIO_S3>;
163	};
164
165	touch_pin: touchscreen-int-state {
166		pins = "gpio30";
167		function = "normal";
168		bias-disable;
169		input-enable;
170		power-source = <PM8941_GPIO_S3>;
171	};
172
173	touch_ldo_pin: touchscreen-ldo-state {
174		pins = "gpio9";
175		function = "normal";
176		output-high;
177		power-source = <PM8941_GPIO_S3>;
178		qcom,drive-strength = <PMIC_GPIO_STRENGTH_HIGH>;
179	};
180
181	touchkey_pin: touchkey-int-state {
182		pins = "gpio29";
183		function = "normal";
184		bias-disable;
185		input-enable;
186		power-source = <PM8941_GPIO_S3>;
187	};
188};
189
190&remoteproc_adsp {
191	cx-supply = <&pm8841_s2>;
192	status = "okay";
193};
194
195&remoteproc_mss {
196	cx-supply = <&pm8841_s2>;
197	mss-supply = <&pm8841_s3>;
198	mx-supply = <&pm8841_s1>;
199	pll-supply = <&pm8941_l12>;
200	status = "okay";
201};
202
203&rpm_requests {
204	regulators-0 {
205		compatible = "qcom,rpm-pm8841-regulators";
206
207		pm8841_s1: s1 {
208			regulator-min-microvolt = <675000>;
209			regulator-max-microvolt = <1050000>;
210		};
211
212		pm8841_s2: s2 {
213			regulator-min-microvolt = <500000>;
214			regulator-max-microvolt = <1050000>;
215		};
216
217		pm8841_s3: s3 {
218			regulator-min-microvolt = <1050000>;
219			regulator-max-microvolt = <1050000>;
220		};
221
222		pm8841_s4: s4 {
223			regulator-min-microvolt = <815000>;
224			regulator-max-microvolt = <900000>;
225		};
226	};
227
228	regulators-1 {
229		compatible = "qcom,rpm-pm8941-regulators";
230
231		pm8941_s1: s1 {
232			regulator-min-microvolt = <1300000>;
233			regulator-max-microvolt = <1300000>;
234			regulator-always-on;
235		};
236
237		pm8941_s2: s2 {
238			regulator-min-microvolt = <2150000>;
239			regulator-max-microvolt = <2150000>;
240		};
241
242		pm8941_s3: s3 {
243			regulator-min-microvolt = <1800000>;
244			regulator-max-microvolt = <1800000>;
245		};
246
247		pm8941_l1: l1 {
248			regulator-min-microvolt = <1200000>;
249			regulator-max-microvolt = <1200000>;
250		};
251
252		pm8941_l2: l2 {
253			regulator-min-microvolt = <1200000>;
254			regulator-max-microvolt = <1200000>;
255		};
256
257		pm8941_l3: l3 {
258			regulator-min-microvolt = <1050000>;
259			regulator-max-microvolt = <1225000>;
260		};
261
262		pm8941_l4: l4 {
263			regulator-min-microvolt = <1225000>;
264			regulator-max-microvolt = <1225000>;
265		};
266
267		pm8941_l5: l5 {
268			regulator-min-microvolt = <1800000>;
269			regulator-max-microvolt = <1800000>;
270		};
271
272		pm8941_l6: l6 {
273			regulator-min-microvolt = <1800000>;
274			regulator-max-microvolt = <1800000>;
275		};
276
277		pm8941_l7: l7 {
278			regulator-min-microvolt = <1800000>;
279			regulator-max-microvolt = <1800000>;
280		};
281
282		pm8941_l8: l8 {
283			regulator-min-microvolt = <1800000>;
284			regulator-max-microvolt = <1800000>;
285		};
286
287		pm8941_l9: l9 {
288			regulator-min-microvolt = <1800000>;
289			regulator-max-microvolt = <2950000>;
290		};
291
292		pm8941_l10: l10 {
293			regulator-min-microvolt = <1800000>;
294			regulator-max-microvolt = <1800000>;
295		};
296
297		pm8941_l11: l11 {
298			regulator-min-microvolt = <1200000>;
299			regulator-max-microvolt = <1350000>;
300		};
301
302		pm8941_l12: l12 {
303			regulator-min-microvolt = <1800000>;
304			regulator-max-microvolt = <1800000>;
305			regulator-always-on;
306		};
307
308		pm8941_l13: l13 {
309			regulator-min-microvolt = <1800000>;
310			regulator-max-microvolt = <3300000>;
311		};
312
313		pm8941_l14: l14 {
314			regulator-min-microvolt = <1800000>;
315			regulator-max-microvolt = <1800000>;
316		};
317
318		pm8941_l15: l15 {
319			regulator-min-microvolt = <2050000>;
320			regulator-max-microvolt = <2050000>;
321		};
322
323		pm8941_l16: l16 {
324			regulator-min-microvolt = <2700000>;
325			regulator-max-microvolt = <2700000>;
326		};
327
328		pm8941_l17: l17 {
329			regulator-min-microvolt = <2850000>;
330			regulator-max-microvolt = <3000000>;
331		};
332
333		pm8941_l18: l18 {
334			regulator-min-microvolt = <2850000>;
335			regulator-max-microvolt = <2850000>;
336		};
337
338		pm8941_l19: l19 {
339			regulator-min-microvolt = <2900000>;
340			regulator-max-microvolt = <3350000>;
341		};
342
343		pm8941_l20: l20 {
344			regulator-min-microvolt = <2950000>;
345			regulator-max-microvolt = <2950000>;
346			regulator-system-load = <200000>;
347			regulator-allow-set-load;
348		};
349
350		pm8941_l21: l21 {
351			regulator-min-microvolt = <2950000>;
352			regulator-max-microvolt = <2950000>;
353			regulator-system-load = <200000>;
354			regulator-allow-set-load;
355		};
356
357		pm8941_l22: l22 {
358			regulator-min-microvolt = <2500000>;
359			regulator-max-microvolt = <3000000>;
360		};
361
362		pm8941_l23: l23 {
363			regulator-min-microvolt = <2400000>;
364			regulator-max-microvolt = <3300000>;
365		};
366
367		pm8941_l24: l24 {
368			regulator-min-microvolt = <3075000>;
369			regulator-max-microvolt = <3075000>;
370		};
371
372		pm8941_lvs1: lvs1 {};
373		pm8941_lvs3: lvs3 {};
374	};
375};
376
377&sdhc_1 {
378	vmmc-supply = <&pm8941_l20>;
379	vqmmc-supply = <&pm8941_s3>;
380
381	pinctrl-0 = <&sdhc1_pin_a>;
382	pinctrl-names = "default";
383
384	status = "okay";
385};
386
387&sdhc_3 {
388	max-frequency = <100000000>;
389
390	vmmc-supply = <&pm8941_l21>;
391	vqmmc-supply = <&pm8941_l21>;
392
393	pinctrl-0 = <&sdhc3_pin_a>;
394	pinctrl-names = "default";
395
396	status = "okay";
397};
398
399&tlmm {
400	sdhc1_pin_a: sdhc1-pin-active-state {
401		clk-pins {
402			pins = "sdc1_clk";
403			drive-strength = <4>;
404			bias-disable;
405		};
406
407		cmd-data-pins {
408			pins = "sdc1_cmd", "sdc1_data";
409			drive-strength = <4>;
410			bias-pull-up;
411		};
412	};
413
414	sdhc3_pin_a: sdhc3-pin-active-state {
415		pins = "gpio35", "gpio36", "gpio37", "gpio38", "gpio39", "gpio40";
416		function = "sdc3";
417		drive-strength = <8>;
418		bias-disable;
419	};
420
421	i2c_touchkey_pins: i2c-touchkey-state {
422		pins = "gpio95", "gpio96";
423		function = "gpio";
424		bias-pull-up;
425	};
426};
427
428&usb {
429	phys = <&usb_hs1_phy>;
430	phy-select = <&tcsr 0xb000 0>;
431
432	hnp-disable;
433	srp-disable;
434	adp-disable;
435
436	status = "okay";
437};
438
439&usb_hs1_phy {
440	v1p8-supply = <&pm8941_l6>;
441	v3p3-supply = <&pm8941_l24>;
442
443	qcom,init-seq = /bits/ 8 <0x1 0x64>;
444
445	status = "okay";
446};
447