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