xref: /OK3568_Linux_fs/kernel/arch/arm/boot/dts/qcom-msm8974-lge-nexus5-hammerhead.dts (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun// SPDX-License-Identifier: GPL-2.0
2*4882a593Smuzhiyun#include "qcom-msm8974.dtsi"
3*4882a593Smuzhiyun#include "qcom-pm8841.dtsi"
4*4882a593Smuzhiyun#include "qcom-pm8941.dtsi"
5*4882a593Smuzhiyun#include <dt-bindings/gpio/gpio.h>
6*4882a593Smuzhiyun#include <dt-bindings/input/input.h>
7*4882a593Smuzhiyun#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
8*4882a593Smuzhiyun
9*4882a593Smuzhiyun/ {
10*4882a593Smuzhiyun	model = "LGE MSM 8974 HAMMERHEAD";
11*4882a593Smuzhiyun	compatible = "lge,hammerhead", "qcom,msm8974";
12*4882a593Smuzhiyun
13*4882a593Smuzhiyun	aliases {
14*4882a593Smuzhiyun		serial0 = &blsp1_uart1;
15*4882a593Smuzhiyun		serial1 = &blsp2_uart10;
16*4882a593Smuzhiyun	};
17*4882a593Smuzhiyun
18*4882a593Smuzhiyun	chosen {
19*4882a593Smuzhiyun		stdout-path = "serial0:115200n8";
20*4882a593Smuzhiyun	};
21*4882a593Smuzhiyun
22*4882a593Smuzhiyun	smd {
23*4882a593Smuzhiyun		rpm {
24*4882a593Smuzhiyun			rpm_requests {
25*4882a593Smuzhiyun				pm8841-regulators {
26*4882a593Smuzhiyun					s1 {
27*4882a593Smuzhiyun						regulator-min-microvolt = <675000>;
28*4882a593Smuzhiyun						regulator-max-microvolt = <1050000>;
29*4882a593Smuzhiyun					};
30*4882a593Smuzhiyun
31*4882a593Smuzhiyun					s2 {
32*4882a593Smuzhiyun						regulator-min-microvolt = <500000>;
33*4882a593Smuzhiyun						regulator-max-microvolt = <1050000>;
34*4882a593Smuzhiyun					};
35*4882a593Smuzhiyun
36*4882a593Smuzhiyun					s3 {
37*4882a593Smuzhiyun						regulator-min-microvolt = <1050000>;
38*4882a593Smuzhiyun						regulator-max-microvolt = <1050000>;
39*4882a593Smuzhiyun					};
40*4882a593Smuzhiyun
41*4882a593Smuzhiyun					s4 {
42*4882a593Smuzhiyun						regulator-min-microvolt = <815000>;
43*4882a593Smuzhiyun						regulator-max-microvolt = <900000>;
44*4882a593Smuzhiyun					};
45*4882a593Smuzhiyun				};
46*4882a593Smuzhiyun
47*4882a593Smuzhiyun				pm8941-regulators {
48*4882a593Smuzhiyun					vdd_l1_l3-supply = <&pm8941_s1>;
49*4882a593Smuzhiyun					vdd_l2_lvs1_2_3-supply = <&pm8941_s3>;
50*4882a593Smuzhiyun					vdd_l4_l11-supply = <&pm8941_s1>;
51*4882a593Smuzhiyun					vdd_l5_l7-supply = <&pm8941_s2>;
52*4882a593Smuzhiyun					vdd_l6_l12_l14_l15-supply = <&pm8941_s2>;
53*4882a593Smuzhiyun					vdd_l8_l16_l18_l19-supply = <&vreg_vph_pwr>;
54*4882a593Smuzhiyun					vdd_l9_l10_l17_l22-supply = <&vreg_boost>;
55*4882a593Smuzhiyun					vdd_l13_l20_l23_l24-supply = <&vreg_boost>;
56*4882a593Smuzhiyun					vdd_l21-supply = <&vreg_boost>;
57*4882a593Smuzhiyun
58*4882a593Smuzhiyun					s1 {
59*4882a593Smuzhiyun						regulator-min-microvolt = <1300000>;
60*4882a593Smuzhiyun						regulator-max-microvolt = <1300000>;
61*4882a593Smuzhiyun
62*4882a593Smuzhiyun						regulator-always-on;
63*4882a593Smuzhiyun						regulator-boot-on;
64*4882a593Smuzhiyun					};
65*4882a593Smuzhiyun
66*4882a593Smuzhiyun					s2 {
67*4882a593Smuzhiyun						regulator-min-microvolt = <2150000>;
68*4882a593Smuzhiyun						regulator-max-microvolt = <2150000>;
69*4882a593Smuzhiyun
70*4882a593Smuzhiyun						regulator-boot-on;
71*4882a593Smuzhiyun					};
72*4882a593Smuzhiyun
73*4882a593Smuzhiyun					s3 {
74*4882a593Smuzhiyun						regulator-min-microvolt = <1800000>;
75*4882a593Smuzhiyun						regulator-max-microvolt = <1800000>;
76*4882a593Smuzhiyun
77*4882a593Smuzhiyun						regulator-always-on;
78*4882a593Smuzhiyun						regulator-boot-on;
79*4882a593Smuzhiyun					};
80*4882a593Smuzhiyun
81*4882a593Smuzhiyun					l1 {
82*4882a593Smuzhiyun						regulator-min-microvolt = <1225000>;
83*4882a593Smuzhiyun						regulator-max-microvolt = <1225000>;
84*4882a593Smuzhiyun
85*4882a593Smuzhiyun						regulator-always-on;
86*4882a593Smuzhiyun						regulator-boot-on;
87*4882a593Smuzhiyun					};
88*4882a593Smuzhiyun
89*4882a593Smuzhiyun					l2 {
90*4882a593Smuzhiyun						regulator-min-microvolt = <1200000>;
91*4882a593Smuzhiyun						regulator-max-microvolt = <1200000>;
92*4882a593Smuzhiyun					};
93*4882a593Smuzhiyun
94*4882a593Smuzhiyun					l3 {
95*4882a593Smuzhiyun						regulator-min-microvolt = <1225000>;
96*4882a593Smuzhiyun						regulator-max-microvolt = <1225000>;
97*4882a593Smuzhiyun					};
98*4882a593Smuzhiyun
99*4882a593Smuzhiyun					l4 {
100*4882a593Smuzhiyun						regulator-min-microvolt = <1225000>;
101*4882a593Smuzhiyun						regulator-max-microvolt = <1225000>;
102*4882a593Smuzhiyun					};
103*4882a593Smuzhiyun
104*4882a593Smuzhiyun					l5 {
105*4882a593Smuzhiyun						regulator-min-microvolt = <1800000>;
106*4882a593Smuzhiyun						regulator-max-microvolt = <1800000>;
107*4882a593Smuzhiyun					};
108*4882a593Smuzhiyun
109*4882a593Smuzhiyun					l6 {
110*4882a593Smuzhiyun						regulator-min-microvolt = <1800000>;
111*4882a593Smuzhiyun						regulator-max-microvolt = <1800000>;
112*4882a593Smuzhiyun
113*4882a593Smuzhiyun						regulator-boot-on;
114*4882a593Smuzhiyun					};
115*4882a593Smuzhiyun
116*4882a593Smuzhiyun					l7 {
117*4882a593Smuzhiyun						regulator-min-microvolt = <1800000>;
118*4882a593Smuzhiyun						regulator-max-microvolt = <1800000>;
119*4882a593Smuzhiyun
120*4882a593Smuzhiyun						regulator-boot-on;
121*4882a593Smuzhiyun					};
122*4882a593Smuzhiyun
123*4882a593Smuzhiyun					l8 {
124*4882a593Smuzhiyun						regulator-min-microvolt = <1800000>;
125*4882a593Smuzhiyun						regulator-max-microvolt = <1800000>;
126*4882a593Smuzhiyun					};
127*4882a593Smuzhiyun
128*4882a593Smuzhiyun					l9 {
129*4882a593Smuzhiyun						regulator-min-microvolt = <1800000>;
130*4882a593Smuzhiyun						regulator-max-microvolt = <2950000>;
131*4882a593Smuzhiyun					};
132*4882a593Smuzhiyun
133*4882a593Smuzhiyun					l10 {
134*4882a593Smuzhiyun						regulator-min-microvolt = <1800000>;
135*4882a593Smuzhiyun						regulator-max-microvolt = <2950000>;
136*4882a593Smuzhiyun					};
137*4882a593Smuzhiyun
138*4882a593Smuzhiyun					l11 {
139*4882a593Smuzhiyun						regulator-min-microvolt = <1300000>;
140*4882a593Smuzhiyun						regulator-max-microvolt = <1300000>;
141*4882a593Smuzhiyun					};
142*4882a593Smuzhiyun
143*4882a593Smuzhiyun					l12 {
144*4882a593Smuzhiyun						regulator-min-microvolt = <1800000>;
145*4882a593Smuzhiyun						regulator-max-microvolt = <1800000>;
146*4882a593Smuzhiyun
147*4882a593Smuzhiyun						regulator-always-on;
148*4882a593Smuzhiyun						regulator-boot-on;
149*4882a593Smuzhiyun					};
150*4882a593Smuzhiyun
151*4882a593Smuzhiyun					l13 {
152*4882a593Smuzhiyun						regulator-min-microvolt = <1800000>;
153*4882a593Smuzhiyun						regulator-max-microvolt = <2950000>;
154*4882a593Smuzhiyun
155*4882a593Smuzhiyun						regulator-boot-on;
156*4882a593Smuzhiyun					};
157*4882a593Smuzhiyun
158*4882a593Smuzhiyun					l14 {
159*4882a593Smuzhiyun						regulator-min-microvolt = <1800000>;
160*4882a593Smuzhiyun						regulator-max-microvolt = <1800000>;
161*4882a593Smuzhiyun					};
162*4882a593Smuzhiyun
163*4882a593Smuzhiyun					l15 {
164*4882a593Smuzhiyun						regulator-min-microvolt = <2050000>;
165*4882a593Smuzhiyun						regulator-max-microvolt = <2050000>;
166*4882a593Smuzhiyun					};
167*4882a593Smuzhiyun
168*4882a593Smuzhiyun					l16 {
169*4882a593Smuzhiyun						regulator-min-microvolt = <2700000>;
170*4882a593Smuzhiyun						regulator-max-microvolt = <2700000>;
171*4882a593Smuzhiyun					};
172*4882a593Smuzhiyun
173*4882a593Smuzhiyun					l17 {
174*4882a593Smuzhiyun						regulator-min-microvolt = <2850000>;
175*4882a593Smuzhiyun						regulator-max-microvolt = <2850000>;
176*4882a593Smuzhiyun					};
177*4882a593Smuzhiyun
178*4882a593Smuzhiyun					l18 {
179*4882a593Smuzhiyun						regulator-min-microvolt = <2850000>;
180*4882a593Smuzhiyun						regulator-max-microvolt = <2850000>;
181*4882a593Smuzhiyun					};
182*4882a593Smuzhiyun
183*4882a593Smuzhiyun					l19 {
184*4882a593Smuzhiyun						regulator-min-microvolt = <3000000>;
185*4882a593Smuzhiyun						regulator-max-microvolt = <3300000>;
186*4882a593Smuzhiyun					};
187*4882a593Smuzhiyun
188*4882a593Smuzhiyun					l20 {
189*4882a593Smuzhiyun						regulator-min-microvolt = <2950000>;
190*4882a593Smuzhiyun						regulator-max-microvolt = <2950000>;
191*4882a593Smuzhiyun
192*4882a593Smuzhiyun						regulator-boot-on;
193*4882a593Smuzhiyun						regulator-system-load = <200000>;
194*4882a593Smuzhiyun						regulator-allow-set-load;
195*4882a593Smuzhiyun					};
196*4882a593Smuzhiyun
197*4882a593Smuzhiyun					l21 {
198*4882a593Smuzhiyun						regulator-min-microvolt = <2950000>;
199*4882a593Smuzhiyun						regulator-max-microvolt = <2950000>;
200*4882a593Smuzhiyun
201*4882a593Smuzhiyun						regulator-boot-on;
202*4882a593Smuzhiyun					};
203*4882a593Smuzhiyun
204*4882a593Smuzhiyun					l22 {
205*4882a593Smuzhiyun						regulator-min-microvolt = <3000000>;
206*4882a593Smuzhiyun						regulator-max-microvolt = <3300000>;
207*4882a593Smuzhiyun					};
208*4882a593Smuzhiyun
209*4882a593Smuzhiyun					l23 {
210*4882a593Smuzhiyun						regulator-min-microvolt = <3000000>;
211*4882a593Smuzhiyun						regulator-max-microvolt = <3000000>;
212*4882a593Smuzhiyun					};
213*4882a593Smuzhiyun
214*4882a593Smuzhiyun					l24 {
215*4882a593Smuzhiyun						regulator-min-microvolt = <3075000>;
216*4882a593Smuzhiyun						regulator-max-microvolt = <3075000>;
217*4882a593Smuzhiyun
218*4882a593Smuzhiyun						regulator-boot-on;
219*4882a593Smuzhiyun					};
220*4882a593Smuzhiyun				};
221*4882a593Smuzhiyun			};
222*4882a593Smuzhiyun		};
223*4882a593Smuzhiyun	};
224*4882a593Smuzhiyun
225*4882a593Smuzhiyun	vreg_wlan: wlan-regulator {
226*4882a593Smuzhiyun		compatible = "regulator-fixed";
227*4882a593Smuzhiyun
228*4882a593Smuzhiyun		regulator-name = "wl-reg";
229*4882a593Smuzhiyun		regulator-min-microvolt = <3300000>;
230*4882a593Smuzhiyun		regulator-max-microvolt = <3300000>;
231*4882a593Smuzhiyun
232*4882a593Smuzhiyun		gpio = <&msmgpio 26 GPIO_ACTIVE_HIGH>;
233*4882a593Smuzhiyun		enable-active-high;
234*4882a593Smuzhiyun
235*4882a593Smuzhiyun		pinctrl-names = "default";
236*4882a593Smuzhiyun		pinctrl-0 = <&wlan_regulator_pin>;
237*4882a593Smuzhiyun	};
238*4882a593Smuzhiyun};
239*4882a593Smuzhiyun
240*4882a593Smuzhiyun&soc {
241*4882a593Smuzhiyun	serial@f991d000 {
242*4882a593Smuzhiyun		status = "ok";
243*4882a593Smuzhiyun	};
244*4882a593Smuzhiyun
245*4882a593Smuzhiyun	pinctrl@fd510000 {
246*4882a593Smuzhiyun		sdhc1_pin_a: sdhc1-pin-active {
247*4882a593Smuzhiyun			clk {
248*4882a593Smuzhiyun				pins = "sdc1_clk";
249*4882a593Smuzhiyun				drive-strength = <16>;
250*4882a593Smuzhiyun				bias-disable;
251*4882a593Smuzhiyun			};
252*4882a593Smuzhiyun
253*4882a593Smuzhiyun			cmd-data {
254*4882a593Smuzhiyun				pins = "sdc1_cmd", "sdc1_data";
255*4882a593Smuzhiyun				drive-strength = <10>;
256*4882a593Smuzhiyun				bias-pull-up;
257*4882a593Smuzhiyun			};
258*4882a593Smuzhiyun		};
259*4882a593Smuzhiyun
260*4882a593Smuzhiyun		sdhc2_pin_a: sdhc2-pin-active {
261*4882a593Smuzhiyun			clk {
262*4882a593Smuzhiyun				pins = "sdc2_clk";
263*4882a593Smuzhiyun				drive-strength = <6>;
264*4882a593Smuzhiyun				bias-disable;
265*4882a593Smuzhiyun			};
266*4882a593Smuzhiyun
267*4882a593Smuzhiyun			cmd-data {
268*4882a593Smuzhiyun				pins = "sdc2_cmd", "sdc2_data";
269*4882a593Smuzhiyun				drive-strength = <6>;
270*4882a593Smuzhiyun				bias-pull-up;
271*4882a593Smuzhiyun			};
272*4882a593Smuzhiyun		};
273*4882a593Smuzhiyun
274*4882a593Smuzhiyun		i2c1_pins: i2c1 {
275*4882a593Smuzhiyun			mux {
276*4882a593Smuzhiyun				pins = "gpio2", "gpio3";
277*4882a593Smuzhiyun				function = "blsp_i2c1";
278*4882a593Smuzhiyun
279*4882a593Smuzhiyun				drive-strength = <2>;
280*4882a593Smuzhiyun				bias-disable;
281*4882a593Smuzhiyun			};
282*4882a593Smuzhiyun		};
283*4882a593Smuzhiyun
284*4882a593Smuzhiyun		i2c2_pins: i2c2 {
285*4882a593Smuzhiyun			mux {
286*4882a593Smuzhiyun				pins = "gpio6", "gpio7";
287*4882a593Smuzhiyun				function = "blsp_i2c2";
288*4882a593Smuzhiyun
289*4882a593Smuzhiyun				drive-strength = <2>;
290*4882a593Smuzhiyun				bias-disable;
291*4882a593Smuzhiyun			};
292*4882a593Smuzhiyun		};
293*4882a593Smuzhiyun
294*4882a593Smuzhiyun		i2c3_pins: i2c3 {
295*4882a593Smuzhiyun			mux {
296*4882a593Smuzhiyun				pins = "gpio10", "gpio11";
297*4882a593Smuzhiyun				function = "blsp_i2c3";
298*4882a593Smuzhiyun				drive-strength = <2>;
299*4882a593Smuzhiyun				bias-disable;
300*4882a593Smuzhiyun			};
301*4882a593Smuzhiyun		};
302*4882a593Smuzhiyun
303*4882a593Smuzhiyun		i2c11_pins: i2c11 {
304*4882a593Smuzhiyun			mux {
305*4882a593Smuzhiyun				pins = "gpio83", "gpio84";
306*4882a593Smuzhiyun				function = "blsp_i2c11";
307*4882a593Smuzhiyun
308*4882a593Smuzhiyun				drive-strength = <2>;
309*4882a593Smuzhiyun				bias-disable;
310*4882a593Smuzhiyun			};
311*4882a593Smuzhiyun		};
312*4882a593Smuzhiyun
313*4882a593Smuzhiyun		i2c12_pins: i2c12 {
314*4882a593Smuzhiyun			mux {
315*4882a593Smuzhiyun				pins = "gpio87", "gpio88";
316*4882a593Smuzhiyun				function = "blsp_i2c12";
317*4882a593Smuzhiyun				drive-strength = <2>;
318*4882a593Smuzhiyun				bias-disable;
319*4882a593Smuzhiyun			};
320*4882a593Smuzhiyun		};
321*4882a593Smuzhiyun
322*4882a593Smuzhiyun		mpu6515_pin: mpu6515 {
323*4882a593Smuzhiyun			irq {
324*4882a593Smuzhiyun				pins = "gpio73";
325*4882a593Smuzhiyun				function = "gpio";
326*4882a593Smuzhiyun				bias-disable;
327*4882a593Smuzhiyun				input-enable;
328*4882a593Smuzhiyun			};
329*4882a593Smuzhiyun		};
330*4882a593Smuzhiyun
331*4882a593Smuzhiyun		touch_pin: touch {
332*4882a593Smuzhiyun			int {
333*4882a593Smuzhiyun				pins = "gpio5";
334*4882a593Smuzhiyun				function = "gpio";
335*4882a593Smuzhiyun
336*4882a593Smuzhiyun				drive-strength = <2>;
337*4882a593Smuzhiyun				bias-disable;
338*4882a593Smuzhiyun				input-enable;
339*4882a593Smuzhiyun			};
340*4882a593Smuzhiyun
341*4882a593Smuzhiyun			reset {
342*4882a593Smuzhiyun				pins = "gpio8";
343*4882a593Smuzhiyun				function = "gpio";
344*4882a593Smuzhiyun
345*4882a593Smuzhiyun				drive-strength = <2>;
346*4882a593Smuzhiyun				bias-pull-up;
347*4882a593Smuzhiyun			};
348*4882a593Smuzhiyun		};
349*4882a593Smuzhiyun
350*4882a593Smuzhiyun		panel_pin: panel {
351*4882a593Smuzhiyun			te {
352*4882a593Smuzhiyun				pins = "gpio12";
353*4882a593Smuzhiyun				function = "mdp_vsync";
354*4882a593Smuzhiyun
355*4882a593Smuzhiyun				drive-strength = <2>;
356*4882a593Smuzhiyun				bias-disable;
357*4882a593Smuzhiyun			};
358*4882a593Smuzhiyun		};
359*4882a593Smuzhiyun
360*4882a593Smuzhiyun		bt_pin: bt {
361*4882a593Smuzhiyun			hostwake {
362*4882a593Smuzhiyun				pins = "gpio42";
363*4882a593Smuzhiyun				function = "gpio";
364*4882a593Smuzhiyun			};
365*4882a593Smuzhiyun
366*4882a593Smuzhiyun			devwake {
367*4882a593Smuzhiyun				pins = "gpio62";
368*4882a593Smuzhiyun				function = "gpio";
369*4882a593Smuzhiyun			};
370*4882a593Smuzhiyun
371*4882a593Smuzhiyun			shutdown {
372*4882a593Smuzhiyun				pins = "gpio41";
373*4882a593Smuzhiyun				function = "gpio";
374*4882a593Smuzhiyun			};
375*4882a593Smuzhiyun		};
376*4882a593Smuzhiyun
377*4882a593Smuzhiyun		blsp2_uart10_pin_a: blsp2-uart10-pin-active {
378*4882a593Smuzhiyun			tx {
379*4882a593Smuzhiyun				pins = "gpio53";
380*4882a593Smuzhiyun				function = "blsp_uart10";
381*4882a593Smuzhiyun
382*4882a593Smuzhiyun				drive-strength = <2>;
383*4882a593Smuzhiyun				bias-disable;
384*4882a593Smuzhiyun			};
385*4882a593Smuzhiyun
386*4882a593Smuzhiyun			rx {
387*4882a593Smuzhiyun				pins = "gpio54";
388*4882a593Smuzhiyun				function = "blsp_uart10";
389*4882a593Smuzhiyun
390*4882a593Smuzhiyun				drive-strength = <2>;
391*4882a593Smuzhiyun				bias-pull-up;
392*4882a593Smuzhiyun			};
393*4882a593Smuzhiyun
394*4882a593Smuzhiyun			cts {
395*4882a593Smuzhiyun				pins = "gpio55";
396*4882a593Smuzhiyun				function = "blsp_uart10";
397*4882a593Smuzhiyun
398*4882a593Smuzhiyun				drive-strength = <2>;
399*4882a593Smuzhiyun				bias-pull-up;
400*4882a593Smuzhiyun			};
401*4882a593Smuzhiyun
402*4882a593Smuzhiyun			rts {
403*4882a593Smuzhiyun				pins = "gpio56";
404*4882a593Smuzhiyun				function = "blsp_uart10";
405*4882a593Smuzhiyun
406*4882a593Smuzhiyun				drive-strength = <2>;
407*4882a593Smuzhiyun				bias-disable;
408*4882a593Smuzhiyun			};
409*4882a593Smuzhiyun		};
410*4882a593Smuzhiyun	};
411*4882a593Smuzhiyun
412*4882a593Smuzhiyun	sdhci@f9824900 {
413*4882a593Smuzhiyun		status = "ok";
414*4882a593Smuzhiyun
415*4882a593Smuzhiyun		vmmc-supply = <&pm8941_l20>;
416*4882a593Smuzhiyun		vqmmc-supply = <&pm8941_s3>;
417*4882a593Smuzhiyun
418*4882a593Smuzhiyun		bus-width = <8>;
419*4882a593Smuzhiyun		non-removable;
420*4882a593Smuzhiyun
421*4882a593Smuzhiyun		pinctrl-names = "default";
422*4882a593Smuzhiyun		pinctrl-0 = <&sdhc1_pin_a>;
423*4882a593Smuzhiyun	};
424*4882a593Smuzhiyun
425*4882a593Smuzhiyun	sdhci@f98a4900 {
426*4882a593Smuzhiyun		status = "ok";
427*4882a593Smuzhiyun
428*4882a593Smuzhiyun		max-frequency = <100000000>;
429*4882a593Smuzhiyun		bus-width = <4>;
430*4882a593Smuzhiyun		non-removable;
431*4882a593Smuzhiyun		vmmc-supply = <&vreg_wlan>;
432*4882a593Smuzhiyun		vqmmc-supply = <&pm8941_s3>;
433*4882a593Smuzhiyun
434*4882a593Smuzhiyun		pinctrl-names = "default";
435*4882a593Smuzhiyun		pinctrl-0 = <&sdhc2_pin_a>;
436*4882a593Smuzhiyun
437*4882a593Smuzhiyun		#address-cells = <1>;
438*4882a593Smuzhiyun		#size-cells = <0>;
439*4882a593Smuzhiyun
440*4882a593Smuzhiyun		bcrmf@1 {
441*4882a593Smuzhiyun			compatible = "brcm,bcm4339-fmac", "brcm,bcm4329-fmac";
442*4882a593Smuzhiyun			reg = <1>;
443*4882a593Smuzhiyun
444*4882a593Smuzhiyun			brcm,drive-strength = <10>;
445*4882a593Smuzhiyun
446*4882a593Smuzhiyun			pinctrl-names = "default";
447*4882a593Smuzhiyun			pinctrl-0 = <&wlan_sleep_clk_pin>;
448*4882a593Smuzhiyun		};
449*4882a593Smuzhiyun	};
450*4882a593Smuzhiyun
451*4882a593Smuzhiyun	gpio-keys {
452*4882a593Smuzhiyun		compatible = "gpio-keys";
453*4882a593Smuzhiyun		input-name = "gpio-keys";
454*4882a593Smuzhiyun
455*4882a593Smuzhiyun		pinctrl-names = "default";
456*4882a593Smuzhiyun		pinctrl-0 = <&gpio_keys_pin_a>;
457*4882a593Smuzhiyun
458*4882a593Smuzhiyun		volume-up {
459*4882a593Smuzhiyun			label = "volume_up";
460*4882a593Smuzhiyun			gpios = <&pm8941_gpios 2 GPIO_ACTIVE_LOW>;
461*4882a593Smuzhiyun			linux,input-type = <1>;
462*4882a593Smuzhiyun			linux,code = <KEY_VOLUMEUP>;
463*4882a593Smuzhiyun		};
464*4882a593Smuzhiyun
465*4882a593Smuzhiyun		volume-down {
466*4882a593Smuzhiyun			label = "volume_down";
467*4882a593Smuzhiyun			gpios = <&pm8941_gpios 3 GPIO_ACTIVE_LOW>;
468*4882a593Smuzhiyun			linux,input-type = <1>;
469*4882a593Smuzhiyun			linux,code = <KEY_VOLUMEDOWN>;
470*4882a593Smuzhiyun		};
471*4882a593Smuzhiyun	};
472*4882a593Smuzhiyun
473*4882a593Smuzhiyun	serial@f9960000 {
474*4882a593Smuzhiyun		status = "ok";
475*4882a593Smuzhiyun
476*4882a593Smuzhiyun		pinctrl-names = "default";
477*4882a593Smuzhiyun		pinctrl-0 = <&blsp2_uart10_pin_a>;
478*4882a593Smuzhiyun
479*4882a593Smuzhiyun		bluetooth {
480*4882a593Smuzhiyun			compatible = "brcm,bcm43438-bt";
481*4882a593Smuzhiyun			max-speed = <3000000>;
482*4882a593Smuzhiyun
483*4882a593Smuzhiyun			pinctrl-names = "default";
484*4882a593Smuzhiyun			pinctrl-0 = <&bt_pin>;
485*4882a593Smuzhiyun
486*4882a593Smuzhiyun			host-wakeup-gpios = <&msmgpio 42 GPIO_ACTIVE_HIGH>;
487*4882a593Smuzhiyun			device-wakeup-gpios = <&msmgpio 62 GPIO_ACTIVE_HIGH>;
488*4882a593Smuzhiyun			shutdown-gpios = <&msmgpio 41 GPIO_ACTIVE_HIGH>;
489*4882a593Smuzhiyun		};
490*4882a593Smuzhiyun	};
491*4882a593Smuzhiyun
492*4882a593Smuzhiyun	i2c@f9967000 {
493*4882a593Smuzhiyun		status = "ok";
494*4882a593Smuzhiyun		pinctrl-names = "default";
495*4882a593Smuzhiyun		pinctrl-0 = <&i2c11_pins>;
496*4882a593Smuzhiyun		clock-frequency = <355000>;
497*4882a593Smuzhiyun		qcom,src-freq = <50000000>;
498*4882a593Smuzhiyun
499*4882a593Smuzhiyun		led-controller@38 {
500*4882a593Smuzhiyun			compatible = "ti,lm3630a";
501*4882a593Smuzhiyun			status = "ok";
502*4882a593Smuzhiyun			reg = <0x38>;
503*4882a593Smuzhiyun
504*4882a593Smuzhiyun			#address-cells = <1>;
505*4882a593Smuzhiyun			#size-cells = <0>;
506*4882a593Smuzhiyun
507*4882a593Smuzhiyun			led@0 {
508*4882a593Smuzhiyun				reg = <0>;
509*4882a593Smuzhiyun				led-sources = <0 1>;
510*4882a593Smuzhiyun				label = "lcd-backlight";
511*4882a593Smuzhiyun				default-brightness = <200>;
512*4882a593Smuzhiyun			};
513*4882a593Smuzhiyun		};
514*4882a593Smuzhiyun	};
515*4882a593Smuzhiyun
516*4882a593Smuzhiyun	i2c@f9968000 {
517*4882a593Smuzhiyun		status = "ok";
518*4882a593Smuzhiyun		pinctrl-names = "default";
519*4882a593Smuzhiyun		pinctrl-0 = <&i2c12_pins>;
520*4882a593Smuzhiyun		clock-frequency = <100000>;
521*4882a593Smuzhiyun		qcom,src-freq = <50000000>;
522*4882a593Smuzhiyun
523*4882a593Smuzhiyun		mpu6515@68 {
524*4882a593Smuzhiyun			compatible = "invensense,mpu6515";
525*4882a593Smuzhiyun			reg = <0x68>;
526*4882a593Smuzhiyun			interrupts-extended = <&msmgpio 73 IRQ_TYPE_EDGE_FALLING>;
527*4882a593Smuzhiyun			vddio-supply = <&pm8941_lvs1>;
528*4882a593Smuzhiyun
529*4882a593Smuzhiyun			pinctrl-names = "default";
530*4882a593Smuzhiyun			pinctrl-0 = <&mpu6515_pin>;
531*4882a593Smuzhiyun
532*4882a593Smuzhiyun			i2c-gate {
533*4882a593Smuzhiyun				#address-cells = <1>;
534*4882a593Smuzhiyun				#size-cells = <0>;
535*4882a593Smuzhiyun				ak8963@f {
536*4882a593Smuzhiyun					compatible = "asahi-kasei,ak8963";
537*4882a593Smuzhiyun					reg = <0x0f>;
538*4882a593Smuzhiyun					gpios = <&msmgpio 67 0>;
539*4882a593Smuzhiyun					vid-supply = <&pm8941_lvs1>;
540*4882a593Smuzhiyun					vdd-supply = <&pm8941_l17>;
541*4882a593Smuzhiyun				};
542*4882a593Smuzhiyun
543*4882a593Smuzhiyun				bmp280@76 {
544*4882a593Smuzhiyun					compatible = "bosch,bmp280";
545*4882a593Smuzhiyun					reg = <0x76>;
546*4882a593Smuzhiyun					vdda-supply = <&pm8941_lvs1>;
547*4882a593Smuzhiyun					vddd-supply = <&pm8941_l17>;
548*4882a593Smuzhiyun				};
549*4882a593Smuzhiyun			};
550*4882a593Smuzhiyun		};
551*4882a593Smuzhiyun	};
552*4882a593Smuzhiyun
553*4882a593Smuzhiyun	i2c@f9923000 {
554*4882a593Smuzhiyun		status = "ok";
555*4882a593Smuzhiyun		pinctrl-names = "default";
556*4882a593Smuzhiyun		pinctrl-0 = <&i2c1_pins>;
557*4882a593Smuzhiyun		clock-frequency = <100000>;
558*4882a593Smuzhiyun		qcom,src-freq = <50000000>;
559*4882a593Smuzhiyun
560*4882a593Smuzhiyun		charger: bq24192@6b {
561*4882a593Smuzhiyun			compatible = "ti,bq24192";
562*4882a593Smuzhiyun			reg = <0x6b>;
563*4882a593Smuzhiyun			interrupts-extended = <&spmi_bus 0 0xd5 0 IRQ_TYPE_EDGE_FALLING>;
564*4882a593Smuzhiyun
565*4882a593Smuzhiyun			omit-battery-class;
566*4882a593Smuzhiyun
567*4882a593Smuzhiyun			usb_otg_vbus: usb-otg-vbus { };
568*4882a593Smuzhiyun		};
569*4882a593Smuzhiyun	};
570*4882a593Smuzhiyun
571*4882a593Smuzhiyun	i2c@f9924000 {
572*4882a593Smuzhiyun		status = "ok";
573*4882a593Smuzhiyun
574*4882a593Smuzhiyun		clock-frequency = <355000>;
575*4882a593Smuzhiyun		qcom,src-freq = <50000000>;
576*4882a593Smuzhiyun
577*4882a593Smuzhiyun		pinctrl-names = "default";
578*4882a593Smuzhiyun		pinctrl-0 = <&i2c2_pins>;
579*4882a593Smuzhiyun
580*4882a593Smuzhiyun		synaptics@70 {
581*4882a593Smuzhiyun			compatible = "syna,rmi4-i2c";
582*4882a593Smuzhiyun			reg = <0x70>;
583*4882a593Smuzhiyun
584*4882a593Smuzhiyun			interrupts-extended = <&msmgpio 5 IRQ_TYPE_EDGE_FALLING>;
585*4882a593Smuzhiyun			vdd-supply = <&pm8941_l22>;
586*4882a593Smuzhiyun			vio-supply = <&pm8941_lvs3>;
587*4882a593Smuzhiyun
588*4882a593Smuzhiyun			pinctrl-names = "default";
589*4882a593Smuzhiyun			pinctrl-0 = <&touch_pin>;
590*4882a593Smuzhiyun
591*4882a593Smuzhiyun			#address-cells = <1>;
592*4882a593Smuzhiyun			#size-cells = <0>;
593*4882a593Smuzhiyun
594*4882a593Smuzhiyun			rmi4-f01@1 {
595*4882a593Smuzhiyun				reg = <0x1>;
596*4882a593Smuzhiyun				syna,nosleep-mode = <1>;
597*4882a593Smuzhiyun			};
598*4882a593Smuzhiyun
599*4882a593Smuzhiyun			rmi4-f12@12 {
600*4882a593Smuzhiyun				reg = <0x12>;
601*4882a593Smuzhiyun				syna,sensor-type = <1>;
602*4882a593Smuzhiyun			};
603*4882a593Smuzhiyun		};
604*4882a593Smuzhiyun	};
605*4882a593Smuzhiyun
606*4882a593Smuzhiyun	i2c@f9925000 {
607*4882a593Smuzhiyun		status = "ok";
608*4882a593Smuzhiyun		pinctrl-names = "default";
609*4882a593Smuzhiyun		pinctrl-0 = <&i2c3_pins>;
610*4882a593Smuzhiyun		clock-frequency = <100000>;
611*4882a593Smuzhiyun		qcom,src-freq = <50000000>;
612*4882a593Smuzhiyun
613*4882a593Smuzhiyun		avago_apds993@39 {
614*4882a593Smuzhiyun			compatible = "avago,apds9930";
615*4882a593Smuzhiyun			reg = <0x39>;
616*4882a593Smuzhiyun			interrupts-extended = <&msmgpio 61 IRQ_TYPE_EDGE_FALLING>;
617*4882a593Smuzhiyun			vdd-supply = <&pm8941_l17>;
618*4882a593Smuzhiyun			vddio-supply = <&pm8941_lvs1>;
619*4882a593Smuzhiyun			led-max-microamp = <100000>;
620*4882a593Smuzhiyun			amstaos,proximity-diodes = <0>;
621*4882a593Smuzhiyun		};
622*4882a593Smuzhiyun	};
623*4882a593Smuzhiyun
624*4882a593Smuzhiyun	usb@f9a55000 {
625*4882a593Smuzhiyun		status = "ok";
626*4882a593Smuzhiyun
627*4882a593Smuzhiyun		phys = <&usb_hs1_phy>;
628*4882a593Smuzhiyun		phy-select = <&tcsr 0xb000 0>;
629*4882a593Smuzhiyun
630*4882a593Smuzhiyun		extcon = <&charger>, <&usb_id>;
631*4882a593Smuzhiyun		vbus-supply = <&usb_otg_vbus>;
632*4882a593Smuzhiyun
633*4882a593Smuzhiyun		hnp-disable;
634*4882a593Smuzhiyun		srp-disable;
635*4882a593Smuzhiyun		adp-disable;
636*4882a593Smuzhiyun
637*4882a593Smuzhiyun		ulpi {
638*4882a593Smuzhiyun			phy@a {
639*4882a593Smuzhiyun				status = "ok";
640*4882a593Smuzhiyun
641*4882a593Smuzhiyun				v1p8-supply = <&pm8941_l6>;
642*4882a593Smuzhiyun				v3p3-supply = <&pm8941_l24>;
643*4882a593Smuzhiyun
644*4882a593Smuzhiyun				qcom,init-seq = /bits/ 8 <0x1 0x64>;
645*4882a593Smuzhiyun			};
646*4882a593Smuzhiyun		};
647*4882a593Smuzhiyun	};
648*4882a593Smuzhiyun
649*4882a593Smuzhiyun	mdss@fd900000 {
650*4882a593Smuzhiyun		status = "ok";
651*4882a593Smuzhiyun
652*4882a593Smuzhiyun		mdp@fd900000 {
653*4882a593Smuzhiyun			status = "ok";
654*4882a593Smuzhiyun		};
655*4882a593Smuzhiyun
656*4882a593Smuzhiyun		dsi@fd922800 {
657*4882a593Smuzhiyun			status = "ok";
658*4882a593Smuzhiyun
659*4882a593Smuzhiyun			vdda-supply = <&pm8941_l2>;
660*4882a593Smuzhiyun			vdd-supply = <&pm8941_lvs3>;
661*4882a593Smuzhiyun			vddio-supply = <&pm8941_l12>;
662*4882a593Smuzhiyun
663*4882a593Smuzhiyun			#address-cells = <1>;
664*4882a593Smuzhiyun			#size-cells = <0>;
665*4882a593Smuzhiyun
666*4882a593Smuzhiyun			ports {
667*4882a593Smuzhiyun				port@1 {
668*4882a593Smuzhiyun					endpoint {
669*4882a593Smuzhiyun						remote-endpoint = <&panel_in>;
670*4882a593Smuzhiyun						data-lanes = <0 1 2 3>;
671*4882a593Smuzhiyun					};
672*4882a593Smuzhiyun				};
673*4882a593Smuzhiyun			};
674*4882a593Smuzhiyun
675*4882a593Smuzhiyun			panel: panel@0 {
676*4882a593Smuzhiyun				reg = <0>;
677*4882a593Smuzhiyun				compatible = "lg,acx467akm-7";
678*4882a593Smuzhiyun
679*4882a593Smuzhiyun				pinctrl-names = "default";
680*4882a593Smuzhiyun				pinctrl-0 = <&panel_pin>;
681*4882a593Smuzhiyun
682*4882a593Smuzhiyun				port {
683*4882a593Smuzhiyun					panel_in: endpoint {
684*4882a593Smuzhiyun						remote-endpoint = <&dsi0_out>;
685*4882a593Smuzhiyun					};
686*4882a593Smuzhiyun				};
687*4882a593Smuzhiyun			};
688*4882a593Smuzhiyun		};
689*4882a593Smuzhiyun
690*4882a593Smuzhiyun		dsi-phy@fd922a00 {
691*4882a593Smuzhiyun			status = "ok";
692*4882a593Smuzhiyun
693*4882a593Smuzhiyun			vddio-supply = <&pm8941_l12>;
694*4882a593Smuzhiyun		};
695*4882a593Smuzhiyun	};
696*4882a593Smuzhiyun};
697*4882a593Smuzhiyun
698*4882a593Smuzhiyun&spmi_bus {
699*4882a593Smuzhiyun	pm8941@0 {
700*4882a593Smuzhiyun		gpios@c000 {
701*4882a593Smuzhiyun			gpio_keys_pin_a: gpio-keys-active {
702*4882a593Smuzhiyun				pins = "gpio2", "gpio3";
703*4882a593Smuzhiyun				function = "normal";
704*4882a593Smuzhiyun
705*4882a593Smuzhiyun				bias-pull-up;
706*4882a593Smuzhiyun				power-source = <PM8941_GPIO_S3>;
707*4882a593Smuzhiyun			};
708*4882a593Smuzhiyun
709*4882a593Smuzhiyun			wlan_sleep_clk_pin: wl-sleep-clk {
710*4882a593Smuzhiyun				pins = "gpio16";
711*4882a593Smuzhiyun				function = "func2";
712*4882a593Smuzhiyun
713*4882a593Smuzhiyun				output-high;
714*4882a593Smuzhiyun				power-source = <PM8941_GPIO_S3>;
715*4882a593Smuzhiyun			};
716*4882a593Smuzhiyun
717*4882a593Smuzhiyun			wlan_regulator_pin: wl-reg-active {
718*4882a593Smuzhiyun				pins = "gpio17";
719*4882a593Smuzhiyun				function = "normal";
720*4882a593Smuzhiyun
721*4882a593Smuzhiyun				bias-disable;
722*4882a593Smuzhiyun				power-source = <PM8941_GPIO_S3>;
723*4882a593Smuzhiyun			};
724*4882a593Smuzhiyun
725*4882a593Smuzhiyun			otg {
726*4882a593Smuzhiyun				gpio-hog;
727*4882a593Smuzhiyun				gpios = <35 GPIO_ACTIVE_HIGH>;
728*4882a593Smuzhiyun				output-high;
729*4882a593Smuzhiyun				line-name = "otg-gpio";
730*4882a593Smuzhiyun			};
731*4882a593Smuzhiyun		};
732*4882a593Smuzhiyun	};
733*4882a593Smuzhiyun};
734