1// SPDX-License-Identifier: GPL-2.0
2#include <dt-bindings/input/input.h>
3
4#include "qcom-msm8960.dtsi"
5#include "pm8921.dtsi"
6
7/ {
8	model = "Qualcomm MSM8960 CDP";
9	compatible = "qcom,msm8960-cdp", "qcom,msm8960";
10
11	aliases {
12		serial0 = &gsbi5_serial;
13	};
14
15	chosen {
16		stdout-path = "serial0:115200n8";
17	};
18
19	ext_l2: gpio-regulator {
20		compatible = "regulator-fixed";
21		regulator-name = "ext_l2";
22		gpio = <&msmgpio 91 0>;
23		startup-delay-us = <10000>;
24		enable-active-high;
25	};
26};
27
28&gsbi1 {
29	qcom,mode = <GSBI_PROT_SPI>;
30	pinctrl-names = "default";
31	pinctrl-0 = <&spi1_default>;
32	status = "okay";
33};
34
35&gsbi1_spi {
36	status = "okay";
37
38	ethernet@0 {
39		compatible = "micrel,ks8851";
40		reg = <0>;
41		interrupt-parent = <&msmgpio>;
42		interrupts = <90 IRQ_TYPE_LEVEL_LOW>;
43		spi-max-frequency = <5400000>;
44		vdd-supply = <&ext_l2>;
45		vdd-io-supply = <&pm8921_lvs6>;
46		reset-gpios = <&msmgpio 89 0>;
47	};
48};
49
50&gsbi5 {
51	qcom,mode = <GSBI_PROT_I2C_UART>;
52	status = "okay";
53};
54
55&gsbi5_serial {
56	status = "okay";
57};
58
59&msmgpio {
60	spi1_default: spi1-default-state {
61		 mosi-pins {
62			pins = "gpio6";
63			function = "gsbi1";
64			drive-strength = <12>;
65			bias-disable;
66		 };
67
68		 miso-pins {
69			pins = "gpio7";
70			function = "gsbi1";
71			drive-strength = <12>;
72			bias-disable;
73		 };
74
75		 cs-pins {
76			pins = "gpio8";
77			function = "gsbi1";
78			drive-strength = <12>;
79			bias-disable;
80			output-low;
81		 };
82
83		 clk-pins {
84			pins = "gpio9";
85			function = "gsbi1";
86			drive-strength = <12>;
87			bias-disable;
88		 };
89	};
90};
91
92&pm8921 {
93	interrupts-extended = <&msmgpio 104 IRQ_TYPE_LEVEL_LOW>;
94};
95
96&pm8921_keypad {
97	linux,keymap = <
98		MATRIX_KEY(0, 0, KEY_VOLUMEUP)
99		MATRIX_KEY(0, 1, KEY_VOLUMEDOWN)
100		MATRIX_KEY(0, 2, KEY_CAMERA_FOCUS)
101		MATRIX_KEY(0, 3, KEY_CAMERA)
102		>;
103	keypad,num-rows = <1>;
104	keypad,num-columns = <5>;
105
106	status = "okay";
107};
108
109&rpm {
110	regulators {
111		compatible = "qcom,rpm-pm8921-regulators";
112		vin_lvs1_3_6-supply = <&pm8921_s4>;
113		vin_lvs2-supply = <&pm8921_s4>;
114		vin_lvs4_5_7-supply = <&pm8921_s4>;
115		vdd_ncp-supply = <&pm8921_l6>;
116		vdd_l1_l2_l12_l18-supply = <&pm8921_s4>;
117		vdd_l21_l23_l29-supply = <&pm8921_s8>;
118		vdd_l24-supply = <&pm8921_s1>;
119		vdd_l25-supply = <&pm8921_s1>;
120		vdd_l27-supply = <&pm8921_s7>;
121		vdd_l28-supply = <&pm8921_s7>;
122
123		/* Buck SMPS */
124		pm8921_s1: s1 {
125			regulator-always-on;
126			regulator-min-microvolt = <1225000>;
127			regulator-max-microvolt = <1225000>;
128			qcom,switch-mode-frequency = <3200000>;
129			bias-pull-down;
130		};
131
132		pm8921_s2: s2 {
133			regulator-min-microvolt = <1300000>;
134			regulator-max-microvolt = <1300000>;
135			qcom,switch-mode-frequency = <1600000>;
136			bias-pull-down;
137		};
138
139		pm8921_s3: s3 {
140			regulator-min-microvolt = <500000>;
141			regulator-max-microvolt = <1150000>;
142			qcom,switch-mode-frequency = <4800000>;
143			bias-pull-down;
144		};
145
146		pm8921_s4: s4 {
147			regulator-always-on;
148			regulator-min-microvolt = <1800000>;
149			regulator-max-microvolt = <1800000>;
150			qcom,switch-mode-frequency = <1600000>;
151			bias-pull-down;
152			qcom,force-mode = <QCOM_RPM_FORCE_MODE_AUTO>;
153		};
154
155		pm8921_s7: s7 {
156			regulator-min-microvolt = <1150000>;
157			regulator-max-microvolt = <1150000>;
158			qcom,switch-mode-frequency = <3200000>;
159			bias-pull-down;
160		};
161
162		pm8921_s8: s8 {
163			regulator-always-on;
164			regulator-min-microvolt = <2050000>;
165			regulator-max-microvolt = <2050000>;
166			qcom,switch-mode-frequency = <1600000>;
167			bias-pull-down;
168		};
169
170		/* PMOS LDO */
171		pm8921_l1: l1 {
172			regulator-always-on;
173			regulator-min-microvolt = <1050000>;
174			regulator-max-microvolt = <1050000>;
175			bias-pull-down;
176		};
177
178		pm8921_l2: l2 {
179			regulator-min-microvolt = <1200000>;
180			regulator-max-microvolt = <1200000>;
181			bias-pull-down;
182		};
183
184		pm8921_l3: l3 {
185			regulator-min-microvolt = <3075000>;
186			regulator-max-microvolt = <3075000>;
187			bias-pull-down;
188		};
189
190		pm8921_l4: l4 {
191			regulator-always-on;
192			regulator-min-microvolt = <1800000>;
193			regulator-max-microvolt = <1800000>;
194			bias-pull-down;
195		};
196
197		pm8921_l5: l5 {
198			regulator-min-microvolt = <2950000>;
199			regulator-max-microvolt = <2950000>;
200			bias-pull-down;
201		};
202
203		pm8921_l6: l6 {
204			regulator-min-microvolt = <2950000>;
205			regulator-max-microvolt = <2950000>;
206			bias-pull-down;
207		};
208
209		pm8921_l7: l7 {
210			regulator-always-on;
211			regulator-min-microvolt = <1850000>;
212			regulator-max-microvolt = <2950000>;
213			bias-pull-down;
214		};
215
216		pm8921_l8: l8 {
217			regulator-min-microvolt = <2800000>;
218			regulator-max-microvolt = <3000000>;
219			bias-pull-down;
220		};
221
222		pm8921_l9: l9 {
223			regulator-min-microvolt = <3000000>;
224			regulator-max-microvolt = <3000000>;
225			bias-pull-down;
226		};
227
228		pm8921_l10: l10 {
229			regulator-min-microvolt = <3000000>;
230			regulator-max-microvolt = <3000000>;
231			bias-pull-down;
232		};
233
234		pm8921_l11: l11 {
235			regulator-min-microvolt = <2850000>;
236			regulator-max-microvolt = <2850000>;
237			bias-pull-down;
238		};
239
240		pm8921_l12: l12 {
241			regulator-min-microvolt = <1200000>;
242			regulator-max-microvolt = <1200000>;
243			bias-pull-down;
244		};
245
246		pm8921_l14: l14 {
247			regulator-min-microvolt = <1800000>;
248			regulator-max-microvolt = <1800000>;
249			bias-pull-down;
250		};
251
252		pm8921_l15: l15 {
253			regulator-min-microvolt = <1800000>;
254			regulator-max-microvolt = <2950000>;
255			bias-pull-down;
256		};
257
258		pm8921_l16: l16 {
259			regulator-min-microvolt = <2800000>;
260			regulator-max-microvolt = <2800000>;
261			bias-pull-down;
262		};
263
264		pm8921_l17: l17 {
265			regulator-min-microvolt = <1800000>;
266			regulator-max-microvolt = <2950000>;
267			bias-pull-down;
268		};
269
270		pm8921_l18: l18 {
271			regulator-min-microvolt = <1300000>;
272			regulator-max-microvolt = <1300000>;
273			bias-pull-down;
274		};
275
276		pm8921_l21: l21 {
277			regulator-min-microvolt = <1900000>;
278			regulator-max-microvolt = <1900000>;
279			bias-pull-down;
280		};
281
282		pm8921_l22: l22 {
283			regulator-min-microvolt = <2750000>;
284			regulator-max-microvolt = <2750000>;
285			bias-pull-down;
286		};
287
288		pm8921_l23: l23 {
289			regulator-always-on;
290			regulator-min-microvolt = <1800000>;
291			regulator-max-microvolt = <1800000>;
292			bias-pull-down;
293		};
294
295		pm8921_l24: l24 {
296			regulator-min-microvolt = <750000>;
297			regulator-max-microvolt = <1150000>;
298			bias-pull-down;
299		};
300
301		pm8921_l25: l25 {
302			regulator-always-on;
303			regulator-min-microvolt = <1250000>;
304			regulator-max-microvolt = <1250000>;
305			bias-pull-down;
306		};
307
308		/* Low Voltage Switch */
309		pm8921_lvs1: lvs1 {
310			bias-pull-down;
311		};
312
313		pm8921_lvs2: lvs2 {
314			bias-pull-down;
315		};
316
317		pm8921_lvs3: lvs3 {
318			bias-pull-down;
319		};
320
321		pm8921_lvs4: lvs4 {
322			bias-pull-down;
323		};
324
325		pm8921_lvs5: lvs5 {
326			bias-pull-down;
327		};
328
329		pm8921_lvs6: lvs6 {
330			bias-pull-down;
331		};
332
333		pm8921_lvs7: lvs7 {
334			bias-pull-down;
335		};
336
337		pm8921_ncp: ncp {
338			regulator-min-microvolt = <1800000>;
339			regulator-max-microvolt = <1800000>;
340			qcom,switch-mode-frequency = <1600000>;
341		};
342	};
343};
344
345/* eMMC */
346&sdcc1 {
347	status = "okay";
348};
349
350/* External micro SD card */
351&sdcc3 {
352	status = "okay";
353};
354