blob: af6cc6393d740d30f3555825175ea6851d406166 [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001// SPDX-License-Identifier: GPL-2.0
2#include <dt-bindings/input/input.h>
Tom Rini93743d22024-04-01 09:08:13 -04003#include <dt-bindings/reset/qcom,gcc-msm8960.h>
Tom Rini53633a82024-02-29 12:33:36 -05004
5#include "qcom-msm8960.dtsi"
Tom Rini93743d22024-04-01 09:08:13 -04006#include "pm8921.dtsi"
Tom Rini6bb92fc2024-05-20 09:54:58 -06007#include <dt-bindings/gpio/gpio.h>
8#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
9#include <dt-bindings/input/gpio-keys.h>
Tom Rini53633a82024-02-29 12:33:36 -050010
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 };
Tom Rini6bb92fc2024-05-20 09:54:58 -060025
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 };
Tom Rini53633a82024-02-29 12:33:36 -050055};
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";
Tom Rini6bb92fc2024-05-20 09:54:58 -060086};
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 };
Tom Rini53633a82024-02-29 12:33:36 -0500107};
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 };
Tom Rini6bb92fc2024-05-20 09:54:58 -0600140
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 };
Tom Rini53633a82024-02-29 12:33:36 -0500155};
156
Tom Rini93743d22024-04-01 09:08:13 -0400157&pm8921 {
158 interrupts-extended = <&msmgpio 104 IRQ_TYPE_LEVEL_LOW>;
159};
160
Tom Rini53633a82024-02-29 12:33:36 -0500161&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 {
Tom Rini6bb92fc2024-05-20 09:54:58 -0600317 regulator-min-microvolt = <3300000>;
Tom Rini53633a82024-02-29 12:33:36 -0500318 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};