xref: /linux/arch/arm/boot/dts/qcom/qcom-msm8960-samsung-expressatt.dts (revision a23e1966932464e1c5226cb9ac4ce1d5fc10ba22)
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	status = "okay";
75};
76
77&gsbi1 {
78	qcom,mode = <GSBI_PROT_SPI>;
79	pinctrl-0 = <&spi1_default>;
80	pinctrl-names = "default";
81	status = "okay";
82};
83
84&gsbi1_spi {
85	status = "okay";
86};
87
88&gsbi3 {
89	qcom,mode = <GSBI_PROT_I2C>;
90	status = "okay";
91};
92
93&gsbi3_i2c {
94	status = "okay";
95
96	// Atmel mXT224S touchscreen
97	touchscreen@4a {
98		compatible = "atmel,maxtouch";
99		reg = <0x4a>;
100		interrupt-parent = <&msmgpio>;
101		interrupts = <11 IRQ_TYPE_EDGE_FALLING>;
102		vdda-supply = <&pm8921_lvs6>;
103		vdd-supply = <&pm8921_l17>;
104		pinctrl-names = "default";
105		pinctrl-0 = <&touchscreen>;
106	};
107};
108
109&msmgpio {
110	spi1_default: spi1-default-state {
111		mosi-pins {
112			pins = "gpio6";
113			function = "gsbi1";
114			drive-strength = <12>;
115			bias-disable;
116		};
117
118		miso-pins {
119			pins = "gpio7";
120			function = "gsbi1";
121			drive-strength = <12>;
122			bias-disable;
123		};
124
125		cs-pins {
126			pins = "gpio8";
127			function = "gsbi1";
128			drive-strength = <12>;
129			bias-disable;
130			output-low;
131		};
132
133		clk-pins {
134			pins = "gpio9";
135			function = "gsbi1";
136			drive-strength = <12>;
137			bias-disable;
138		};
139	};
140
141	gpio_keys_pin_a: gpio-keys-active-state {
142		pins = "gpio40", "gpio50", "gpio81";
143		function = "gpio";
144		drive-strength = <8>;
145		bias-disable;
146	};
147
148	touchscreen: touchscreen-int-state {
149		pins = "gpio11";
150		function = "gpio";
151		output-enable;
152		bias-disable;
153		drive-strength = <2>;
154	};
155};
156
157&pm8921 {
158	interrupts-extended = <&msmgpio 104 IRQ_TYPE_LEVEL_LOW>;
159};
160
161&rpm {
162	regulators {
163		compatible = "qcom,rpm-pm8921-regulators";
164		vin_lvs1_3_6-supply = <&pm8921_s4>;
165		vin_lvs2-supply = <&pm8921_s4>;
166		vin_lvs4_5_7-supply = <&pm8921_s4>;
167		vdd_ncp-supply = <&pm8921_l6>;
168		vdd_l1_l2_l12_l18-supply = <&pm8921_s4>;
169		vdd_l21_l23_l29-supply = <&pm8921_s8>;
170		vdd_l24-supply = <&pm8921_s1>;
171		vdd_l25-supply = <&pm8921_s1>;
172		vdd_l27-supply = <&pm8921_s7>;
173		vdd_l28-supply = <&pm8921_s7>;
174
175		/* Buck SMPS */
176		pm8921_s1: s1 {
177			regulator-always-on;
178			regulator-min-microvolt = <1225000>;
179			regulator-max-microvolt = <1225000>;
180			qcom,switch-mode-frequency = <3200000>;
181			bias-pull-down;
182		};
183
184		pm8921_s2: s2 {
185			regulator-min-microvolt = <1300000>;
186			regulator-max-microvolt = <1300000>;
187			qcom,switch-mode-frequency = <1600000>;
188			bias-pull-down;
189		};
190
191		pm8921_s3: s3 {
192			regulator-min-microvolt = <500000>;
193			regulator-max-microvolt = <1150000>;
194			qcom,switch-mode-frequency = <4800000>;
195			bias-pull-down;
196		};
197
198		pm8921_s4: s4 {
199			regulator-always-on;
200			regulator-min-microvolt = <1800000>;
201			regulator-max-microvolt = <1800000>;
202			qcom,switch-mode-frequency = <1600000>;
203			bias-pull-down;
204			qcom,force-mode = <QCOM_RPM_FORCE_MODE_AUTO>;
205		};
206
207		pm8921_s7: s7 {
208			regulator-min-microvolt = <1150000>;
209			regulator-max-microvolt = <1150000>;
210			qcom,switch-mode-frequency = <3200000>;
211			bias-pull-down;
212		};
213
214		pm8921_s8: s8 {
215			regulator-always-on;
216			regulator-min-microvolt = <2050000>;
217			regulator-max-microvolt = <2050000>;
218			qcom,switch-mode-frequency = <1600000>;
219			bias-pull-down;
220		};
221
222		/* PMOS LDO */
223		pm8921_l1: l1 {
224			regulator-always-on;
225			regulator-min-microvolt = <1050000>;
226			regulator-max-microvolt = <1050000>;
227			bias-pull-down;
228		};
229
230		pm8921_l2: l2 {
231			regulator-min-microvolt = <1200000>;
232			regulator-max-microvolt = <1200000>;
233			bias-pull-down;
234		};
235
236		pm8921_l3: l3 {
237			regulator-min-microvolt = <3075000>;
238			regulator-max-microvolt = <3300000>;
239			bias-pull-down;
240		};
241
242		pm8921_l4: l4 {
243			regulator-always-on;
244			regulator-min-microvolt = <1800000>;
245			regulator-max-microvolt = <1800000>;
246			bias-pull-down;
247		};
248
249		pm8921_l5: l5 {
250			regulator-min-microvolt = <2950000>;
251			regulator-max-microvolt = <2950000>;
252			bias-pull-down;
253		};
254
255		pm8921_l6: l6 {
256			regulator-min-microvolt = <2950000>;
257			regulator-max-microvolt = <2950000>;
258			bias-pull-down;
259		};
260
261		pm8921_l7: l7 {
262			regulator-always-on;
263			regulator-min-microvolt = <1850000>;
264			regulator-max-microvolt = <2950000>;
265			bias-pull-down;
266		};
267
268		pm8921_l8: l8 {
269			regulator-min-microvolt = <3000000>;
270			regulator-max-microvolt = <3100000>;
271			bias-pull-down;
272		};
273
274		pm8921_l9: l9 {
275			regulator-min-microvolt = <2850000>;
276			regulator-max-microvolt = <2850000>;
277			bias-pull-down;
278		};
279
280		pm8921_l10: l10 {
281			regulator-min-microvolt = <3000000>;
282			regulator-max-microvolt = <3000000>;
283			bias-pull-down;
284		};
285
286		pm8921_l11: l11 {
287			regulator-min-microvolt = <2800000>;
288			regulator-max-microvolt = <3300000>;
289			bias-pull-down;
290		};
291
292		pm8921_l12: l12 {
293			regulator-min-microvolt = <1200000>;
294			regulator-max-microvolt = <1200000>;
295			bias-pull-down;
296		};
297
298		pm8921_l14: l14 {
299			regulator-min-microvolt = <1800000>;
300			regulator-max-microvolt = <1800000>;
301			bias-pull-down;
302		};
303
304		pm8921_l15: l15 {
305			regulator-min-microvolt = <1800000>;
306			regulator-max-microvolt = <2950000>;
307			bias-pull-down;
308		};
309
310		pm8921_l16: l16 {
311			regulator-min-microvolt = <2800000>;
312			regulator-max-microvolt = <3000000>;
313			bias-pull-down;
314		};
315
316		pm8921_l17: l17 {
317			regulator-min-microvolt = <3300000>;
318			regulator-max-microvolt = <3300000>;
319			bias-pull-down;
320		};
321
322		pm8921_l18: l18 {
323			regulator-min-microvolt = <1200000>;
324			regulator-max-microvolt = <1500000>;
325			bias-pull-down;
326		};
327
328		pm8921_l21: l21 {
329			regulator-min-microvolt = <1900000>;
330			regulator-max-microvolt = <1900000>;
331			bias-pull-down;
332		};
333
334		pm8921_l22: l22 {
335			regulator-min-microvolt = <2750000>;
336			regulator-max-microvolt = <2750000>;
337			bias-pull-down;
338		};
339
340		pm8921_l23: l23 {
341			regulator-always-on;
342			regulator-min-microvolt = <1800000>;
343			regulator-max-microvolt = <1800000>;
344			bias-pull-down;
345		};
346
347		pm8921_l24: l24 {
348			regulator-min-microvolt = <750000>;
349			regulator-max-microvolt = <1150000>;
350			bias-pull-down;
351		};
352
353		pm8921_l25: l25 {
354			regulator-always-on;
355			regulator-min-microvolt = <1225000>;
356			regulator-max-microvolt = <1225000>;
357			bias-pull-down;
358		};
359
360		/* Low Voltage Switch */
361		pm8921_lvs1: lvs1 {
362			bias-pull-down;
363		};
364
365		pm8921_lvs2: lvs2 {
366			bias-pull-down;
367		};
368
369		pm8921_lvs3: lvs3 {
370			bias-pull-down;
371		};
372
373		pm8921_lvs4: lvs4 {
374			bias-pull-down;
375		};
376
377		pm8921_lvs5: lvs5 {
378			bias-pull-down;
379		};
380
381		pm8921_lvs6: lvs6 {
382			bias-pull-down;
383		};
384
385		pm8921_lvs7: lvs7 {
386			bias-pull-down;
387		};
388
389		pm8921_ncp: ncp {
390			regulator-min-microvolt = <1800000>;
391			regulator-max-microvolt = <1800000>;
392			qcom,switch-mode-frequency = <1600000>;
393		};
394	};
395};
396
397&usb_hs1_phy {
398	v3p3-supply = <&pm8921_l3>;
399	v1p8-supply = <&pm8921_l4>;
400};
401
402&usb1 {
403	dr_mode = "otg";
404	status = "okay";
405};
406