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