xref: /linux/arch/arm/boot/dts/qcom/qcom-msm8960-samsung-expressatt.dts (revision 55a42f78ffd386e01a5404419f8c5ded7db70a21)
1// SPDX-License-Identifier: GPL-2.0
2#include <dt-bindings/input/input.h>
3#include <dt-bindings/reset/qcom,gcc-msm8960.h>
4
5#include "qcom-msm8960.dtsi"
6#include "pm8921.dtsi"
7#include <dt-bindings/gpio/gpio.h>
8#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
9#include <dt-bindings/input/gpio-keys.h>
10
11/ {
12	model = "Samsung Galaxy Express SGH-I437";
13	compatible = "samsung,expressatt", "qcom,msm8960";
14	chassis-type = "handset";
15
16	aliases {
17		serial0 = &gsbi5_serial;
18		mmc0 = &sdcc1; /* SDCC1 eMMC slot */
19		mmc1 = &sdcc3; /* SDCC3 SD card slot */
20	};
21
22	chosen {
23		stdout-path = "serial0:115200n8";
24	};
25
26	gpio-keys {
27		compatible = "gpio-keys";
28
29		pinctrl-names = "default";
30		pinctrl-0 = <&gpio_keys_pin_a>;
31
32		key-home {
33			label = "Home";
34			gpios = <&msmgpio 40 GPIO_ACTIVE_LOW>;
35			debounce-interval = <5>;
36			linux,code = <KEY_HOMEPAGE>;
37			wakeup-event-action = <EV_ACT_ASSERTED>;
38			wakeup-source;
39		};
40
41		key-volume-up {
42			label = "Volume Up";
43			gpios = <&msmgpio 50 GPIO_ACTIVE_LOW>;
44			debounce-interval = <5>;
45			linux,code = <KEY_VOLUMEUP>;
46		};
47
48		key-volume-down {
49			label = "Volume Down";
50			gpios = <&msmgpio 81 GPIO_ACTIVE_LOW>;
51			debounce-interval = <5>;
52			linux,code = <KEY_VOLUMEDOWN>;
53		};
54	};
55};
56
57&gsbi5 {
58	qcom,mode = <GSBI_PROT_I2C_UART>;
59	status = "okay";
60};
61
62&gsbi5_serial {
63	status = "okay";
64};
65
66&sdcc1 {
67	vmmc-supply = <&pm8921_l5>;
68	status = "okay";
69};
70
71&sdcc3 {
72	vmmc-supply = <&pm8921_l6>;
73	vqmmc-supply = <&pm8921_l7>;
74
75	pinctrl-0 = <&sdcc3_default_state>;
76	pinctrl-1 = <&sdcc3_sleep_state>;
77	pinctrl-names = "default", "sleep";
78
79	status = "okay";
80};
81
82&gsbi1 {
83	qcom,mode = <GSBI_PROT_SPI>;
84	pinctrl-0 = <&spi1_default>;
85	pinctrl-names = "default";
86	status = "okay";
87};
88
89&gsbi1_spi {
90	status = "okay";
91};
92
93&gsbi3 {
94	qcom,mode = <GSBI_PROT_I2C>;
95	status = "okay";
96};
97
98&gsbi3_i2c {
99	status = "okay";
100
101	// Atmel mXT224S touchscreen
102	touchscreen@4a {
103		compatible = "atmel,maxtouch";
104		reg = <0x4a>;
105		interrupt-parent = <&msmgpio>;
106		interrupts = <11 IRQ_TYPE_EDGE_FALLING>;
107		vdda-supply = <&pm8921_lvs6>;
108		vdd-supply = <&pm8921_l17>;
109		pinctrl-names = "default";
110		pinctrl-0 = <&touchscreen>;
111	};
112};
113
114&msmgpio {
115	spi1_default: spi1-default-state {
116		mosi-pins {
117			pins = "gpio6";
118			function = "gsbi1";
119			drive-strength = <12>;
120			bias-disable;
121		};
122
123		miso-pins {
124			pins = "gpio7";
125			function = "gsbi1";
126			drive-strength = <12>;
127			bias-disable;
128		};
129
130		cs-pins {
131			pins = "gpio8";
132			function = "gsbi1";
133			drive-strength = <12>;
134			bias-disable;
135			output-low;
136		};
137
138		clk-pins {
139			pins = "gpio9";
140			function = "gsbi1";
141			drive-strength = <12>;
142			bias-disable;
143		};
144	};
145
146	gpio_keys_pin_a: gpio-keys-active-state {
147		pins = "gpio40", "gpio50", "gpio81";
148		function = "gpio";
149		drive-strength = <8>;
150		bias-disable;
151	};
152
153	touchscreen: touchscreen-int-state {
154		pins = "gpio11";
155		function = "gpio";
156		output-enable;
157		bias-disable;
158		drive-strength = <2>;
159	};
160};
161
162&pm8921 {
163	interrupts-extended = <&msmgpio 104 IRQ_TYPE_LEVEL_LOW>;
164};
165
166&rpm {
167	regulators {
168		compatible = "qcom,rpm-pm8921-regulators";
169		vin_lvs1_3_6-supply = <&pm8921_s4>;
170		vin_lvs2-supply = <&pm8921_s4>;
171		vin_lvs4_5_7-supply = <&pm8921_s4>;
172		vdd_ncp-supply = <&pm8921_l6>;
173		vdd_l1_l2_l12_l18-supply = <&pm8921_s4>;
174		vdd_l21_l23_l29-supply = <&pm8921_s8>;
175		vdd_l24-supply = <&pm8921_s1>;
176		vdd_l25-supply = <&pm8921_s1>;
177		vdd_l27-supply = <&pm8921_s7>;
178		vdd_l28-supply = <&pm8921_s7>;
179
180		/* Buck SMPS */
181		pm8921_s1: s1 {
182			regulator-always-on;
183			regulator-min-microvolt = <1225000>;
184			regulator-max-microvolt = <1225000>;
185			qcom,switch-mode-frequency = <3200000>;
186			bias-pull-down;
187		};
188
189		pm8921_s2: s2 {
190			regulator-min-microvolt = <1300000>;
191			regulator-max-microvolt = <1300000>;
192			qcom,switch-mode-frequency = <1600000>;
193			bias-pull-down;
194		};
195
196		pm8921_s3: s3 {
197			regulator-min-microvolt = <500000>;
198			regulator-max-microvolt = <1150000>;
199			qcom,switch-mode-frequency = <4800000>;
200			bias-pull-down;
201		};
202
203		pm8921_s4: s4 {
204			regulator-always-on;
205			regulator-min-microvolt = <1800000>;
206			regulator-max-microvolt = <1800000>;
207			qcom,switch-mode-frequency = <1600000>;
208			bias-pull-down;
209			qcom,force-mode = <QCOM_RPM_FORCE_MODE_AUTO>;
210		};
211
212		pm8921_s7: s7 {
213			regulator-min-microvolt = <1150000>;
214			regulator-max-microvolt = <1150000>;
215			qcom,switch-mode-frequency = <3200000>;
216			bias-pull-down;
217		};
218
219		pm8921_s8: s8 {
220			regulator-always-on;
221			regulator-min-microvolt = <2050000>;
222			regulator-max-microvolt = <2050000>;
223			qcom,switch-mode-frequency = <1600000>;
224			bias-pull-down;
225		};
226
227		/* PMOS LDO */
228		pm8921_l1: l1 {
229			regulator-always-on;
230			regulator-min-microvolt = <1050000>;
231			regulator-max-microvolt = <1050000>;
232			bias-pull-down;
233		};
234
235		pm8921_l2: l2 {
236			regulator-min-microvolt = <1200000>;
237			regulator-max-microvolt = <1200000>;
238			bias-pull-down;
239		};
240
241		pm8921_l3: l3 {
242			regulator-min-microvolt = <3075000>;
243			regulator-max-microvolt = <3300000>;
244			bias-pull-down;
245		};
246
247		pm8921_l4: l4 {
248			regulator-always-on;
249			regulator-min-microvolt = <1800000>;
250			regulator-max-microvolt = <1800000>;
251			bias-pull-down;
252		};
253
254		pm8921_l5: l5 {
255			regulator-min-microvolt = <2950000>;
256			regulator-max-microvolt = <2950000>;
257			bias-pull-down;
258		};
259
260		pm8921_l6: l6 {
261			regulator-min-microvolt = <2950000>;
262			regulator-max-microvolt = <2950000>;
263			bias-pull-down;
264		};
265
266		pm8921_l7: l7 {
267			regulator-always-on;
268			regulator-min-microvolt = <1850000>;
269			regulator-max-microvolt = <2950000>;
270			bias-pull-down;
271		};
272
273		pm8921_l8: l8 {
274			regulator-min-microvolt = <3000000>;
275			regulator-max-microvolt = <3100000>;
276			bias-pull-down;
277		};
278
279		pm8921_l9: l9 {
280			regulator-min-microvolt = <2850000>;
281			regulator-max-microvolt = <2850000>;
282			bias-pull-down;
283		};
284
285		pm8921_l10: l10 {
286			regulator-min-microvolt = <3000000>;
287			regulator-max-microvolt = <3000000>;
288			bias-pull-down;
289		};
290
291		pm8921_l11: l11 {
292			regulator-min-microvolt = <2800000>;
293			regulator-max-microvolt = <3300000>;
294			bias-pull-down;
295		};
296
297		pm8921_l12: l12 {
298			regulator-min-microvolt = <1200000>;
299			regulator-max-microvolt = <1200000>;
300			bias-pull-down;
301		};
302
303		pm8921_l14: l14 {
304			regulator-min-microvolt = <1800000>;
305			regulator-max-microvolt = <1800000>;
306			bias-pull-down;
307		};
308
309		pm8921_l15: l15 {
310			regulator-min-microvolt = <1800000>;
311			regulator-max-microvolt = <2950000>;
312			bias-pull-down;
313		};
314
315		pm8921_l16: l16 {
316			regulator-min-microvolt = <2800000>;
317			regulator-max-microvolt = <3000000>;
318			bias-pull-down;
319		};
320
321		pm8921_l17: l17 {
322			regulator-min-microvolt = <3300000>;
323			regulator-max-microvolt = <3300000>;
324			bias-pull-down;
325		};
326
327		pm8921_l18: l18 {
328			regulator-min-microvolt = <1200000>;
329			regulator-max-microvolt = <1500000>;
330			bias-pull-down;
331		};
332
333		pm8921_l21: l21 {
334			regulator-min-microvolt = <1900000>;
335			regulator-max-microvolt = <1900000>;
336			bias-pull-down;
337		};
338
339		pm8921_l22: l22 {
340			regulator-min-microvolt = <2750000>;
341			regulator-max-microvolt = <2750000>;
342			bias-pull-down;
343		};
344
345		pm8921_l23: l23 {
346			regulator-always-on;
347			regulator-min-microvolt = <1800000>;
348			regulator-max-microvolt = <1800000>;
349			bias-pull-down;
350		};
351
352		pm8921_l24: l24 {
353			regulator-min-microvolt = <750000>;
354			regulator-max-microvolt = <1150000>;
355			bias-pull-down;
356		};
357
358		pm8921_l25: l25 {
359			regulator-always-on;
360			regulator-min-microvolt = <1225000>;
361			regulator-max-microvolt = <1225000>;
362			bias-pull-down;
363		};
364
365		/* Low Voltage Switch */
366		pm8921_lvs1: lvs1 {
367			bias-pull-down;
368		};
369
370		pm8921_lvs2: lvs2 {
371			bias-pull-down;
372		};
373
374		pm8921_lvs3: lvs3 {
375			bias-pull-down;
376		};
377
378		pm8921_lvs4: lvs4 {
379			bias-pull-down;
380		};
381
382		pm8921_lvs5: lvs5 {
383			bias-pull-down;
384		};
385
386		pm8921_lvs6: lvs6 {
387			bias-pull-down;
388		};
389
390		pm8921_lvs7: lvs7 {
391			bias-pull-down;
392		};
393
394		pm8921_ncp: ncp {
395			regulator-min-microvolt = <1800000>;
396			regulator-max-microvolt = <1800000>;
397			qcom,switch-mode-frequency = <1600000>;
398		};
399	};
400};
401
402&usb_hs1_phy {
403	v3p3-supply = <&pm8921_l3>;
404	v1p8-supply = <&pm8921_l4>;
405};
406
407&usb1 {
408	dr_mode = "otg";
409	status = "okay";
410};
411