xref: /OK3568_Linux_fs/kernel/scripts/dtc/include-prefixes/arm64/qcom/msm8998-clamshell.dtsi (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun// SPDX-License-Identifier: GPL-2.0
2*4882a593Smuzhiyun/* Copyright (c) 2019, Jeffrey Hugo. All rights reserved. */
3*4882a593Smuzhiyun
4*4882a593Smuzhiyun/*
5*4882a593Smuzhiyun * Common include for MSM8998 clamshell devices, ie the Lenovo Miix 630,
6*4882a593Smuzhiyun * Asus NovaGo TP370QL, and HP Envy x2.  All three devices are basically the
7*4882a593Smuzhiyun * same, with differences in peripherals.
8*4882a593Smuzhiyun */
9*4882a593Smuzhiyun
10*4882a593Smuzhiyun#include "msm8998.dtsi"
11*4882a593Smuzhiyun#include "pm8998.dtsi"
12*4882a593Smuzhiyun#include "pm8005.dtsi"
13*4882a593Smuzhiyun
14*4882a593Smuzhiyun/ {
15*4882a593Smuzhiyun	chosen {
16*4882a593Smuzhiyun	};
17*4882a593Smuzhiyun
18*4882a593Smuzhiyun	vph_pwr: vph-pwr-regulator {
19*4882a593Smuzhiyun		compatible = "regulator-fixed";
20*4882a593Smuzhiyun		regulator-name = "vph_pwr";
21*4882a593Smuzhiyun		regulator-always-on;
22*4882a593Smuzhiyun		regulator-boot-on;
23*4882a593Smuzhiyun	};
24*4882a593Smuzhiyun};
25*4882a593Smuzhiyun
26*4882a593Smuzhiyun&blsp1_uart3 {
27*4882a593Smuzhiyun	status = "okay";
28*4882a593Smuzhiyun
29*4882a593Smuzhiyun	bluetooth {
30*4882a593Smuzhiyun		compatible = "qcom,wcn3990-bt";
31*4882a593Smuzhiyun
32*4882a593Smuzhiyun		vddio-supply = <&vreg_s4a_1p8>;
33*4882a593Smuzhiyun		vddxo-supply = <&vreg_l7a_1p8>;
34*4882a593Smuzhiyun		vddrf-supply = <&vreg_l17a_1p3>;
35*4882a593Smuzhiyun		vddch0-supply = <&vreg_l25a_3p3>;
36*4882a593Smuzhiyun		max-speed = <3200000>;
37*4882a593Smuzhiyun	};
38*4882a593Smuzhiyun};
39*4882a593Smuzhiyun
40*4882a593Smuzhiyun/*
41*4882a593Smuzhiyun * The laptop FW does not appear to support the retention state as it is
42*4882a593Smuzhiyun * not advertised as enabled in ACPI, and enabling it in DT can cause boot
43*4882a593Smuzhiyun * hangs.
44*4882a593Smuzhiyun */
45*4882a593Smuzhiyun&CPU0 {
46*4882a593Smuzhiyun	cpu-idle-states = <&LITTLE_CPU_SLEEP_1>;
47*4882a593Smuzhiyun};
48*4882a593Smuzhiyun
49*4882a593Smuzhiyun&CPU1 {
50*4882a593Smuzhiyun	cpu-idle-states = <&LITTLE_CPU_SLEEP_1>;
51*4882a593Smuzhiyun};
52*4882a593Smuzhiyun
53*4882a593Smuzhiyun&CPU2 {
54*4882a593Smuzhiyun	cpu-idle-states = <&LITTLE_CPU_SLEEP_1>;
55*4882a593Smuzhiyun};
56*4882a593Smuzhiyun
57*4882a593Smuzhiyun&CPU3 {
58*4882a593Smuzhiyun	cpu-idle-states = <&LITTLE_CPU_SLEEP_1>;
59*4882a593Smuzhiyun};
60*4882a593Smuzhiyun
61*4882a593Smuzhiyun&CPU4 {
62*4882a593Smuzhiyun	cpu-idle-states = <&BIG_CPU_SLEEP_1>;
63*4882a593Smuzhiyun};
64*4882a593Smuzhiyun
65*4882a593Smuzhiyun&CPU5 {
66*4882a593Smuzhiyun	cpu-idle-states = <&BIG_CPU_SLEEP_1>;
67*4882a593Smuzhiyun};
68*4882a593Smuzhiyun
69*4882a593Smuzhiyun&CPU6 {
70*4882a593Smuzhiyun	cpu-idle-states = <&BIG_CPU_SLEEP_1>;
71*4882a593Smuzhiyun};
72*4882a593Smuzhiyun
73*4882a593Smuzhiyun&CPU7 {
74*4882a593Smuzhiyun	cpu-idle-states = <&BIG_CPU_SLEEP_1>;
75*4882a593Smuzhiyun};
76*4882a593Smuzhiyun
77*4882a593Smuzhiyun&pm8005_lsid1 {
78*4882a593Smuzhiyun	pm8005-regulators {
79*4882a593Smuzhiyun		compatible = "qcom,pm8005-regulators";
80*4882a593Smuzhiyun
81*4882a593Smuzhiyun		vdd_s1-supply = <&vph_pwr>;
82*4882a593Smuzhiyun
83*4882a593Smuzhiyun		pm8005_s1: s1 { /* VDD_GFX supply */
84*4882a593Smuzhiyun			regulator-min-microvolt = <524000>;
85*4882a593Smuzhiyun			regulator-max-microvolt = <1100000>;
86*4882a593Smuzhiyun			regulator-enable-ramp-delay = <500>;
87*4882a593Smuzhiyun
88*4882a593Smuzhiyun			/* hack until we rig up the gpu consumer */
89*4882a593Smuzhiyun			regulator-always-on;
90*4882a593Smuzhiyun		};
91*4882a593Smuzhiyun	};
92*4882a593Smuzhiyun};
93*4882a593Smuzhiyun
94*4882a593Smuzhiyun&qusb2phy {
95*4882a593Smuzhiyun	status = "okay";
96*4882a593Smuzhiyun
97*4882a593Smuzhiyun	vdda-pll-supply = <&vreg_l12a_1p8>;
98*4882a593Smuzhiyun	vdda-phy-dpdm-supply = <&vreg_l24a_3p075>;
99*4882a593Smuzhiyun};
100*4882a593Smuzhiyun
101*4882a593Smuzhiyun&rpm_requests {
102*4882a593Smuzhiyun	pm8998-regulators {
103*4882a593Smuzhiyun		compatible = "qcom,rpm-pm8998-regulators";
104*4882a593Smuzhiyun
105*4882a593Smuzhiyun		vdd_s1-supply = <&vph_pwr>;
106*4882a593Smuzhiyun		vdd_s2-supply = <&vph_pwr>;
107*4882a593Smuzhiyun		vdd_s3-supply = <&vph_pwr>;
108*4882a593Smuzhiyun		vdd_s4-supply = <&vph_pwr>;
109*4882a593Smuzhiyun		vdd_s5-supply = <&vph_pwr>;
110*4882a593Smuzhiyun		vdd_s6-supply = <&vph_pwr>;
111*4882a593Smuzhiyun		vdd_s7-supply = <&vph_pwr>;
112*4882a593Smuzhiyun		vdd_s8-supply = <&vph_pwr>;
113*4882a593Smuzhiyun		vdd_s9-supply = <&vph_pwr>;
114*4882a593Smuzhiyun		vdd_s10-supply = <&vph_pwr>;
115*4882a593Smuzhiyun		vdd_s11-supply = <&vph_pwr>;
116*4882a593Smuzhiyun		vdd_s12-supply = <&vph_pwr>;
117*4882a593Smuzhiyun		vdd_s13-supply = <&vph_pwr>;
118*4882a593Smuzhiyun		vdd_l1_l27-supply = <&vreg_s7a_1p025>;
119*4882a593Smuzhiyun		vdd_l2_l8_l17-supply = <&vreg_s3a_1p35>;
120*4882a593Smuzhiyun		vdd_l3_l11-supply = <&vreg_s7a_1p025>;
121*4882a593Smuzhiyun		vdd_l4_l5-supply = <&vreg_s7a_1p025>;
122*4882a593Smuzhiyun		vdd_l6-supply = <&vreg_s5a_2p04>;
123*4882a593Smuzhiyun		vdd_l7_l12_l14_l15-supply = <&vreg_s5a_2p04>;
124*4882a593Smuzhiyun		vdd_l9-supply = <&vph_pwr>;
125*4882a593Smuzhiyun		vdd_l10_l23_l25-supply = <&vph_pwr>;
126*4882a593Smuzhiyun		vdd_l13_l19_l21-supply = <&vph_pwr>;
127*4882a593Smuzhiyun		vdd_l16_l28-supply = <&vph_pwr>;
128*4882a593Smuzhiyun		vdd_l18_l22-supply = <&vph_pwr>;
129*4882a593Smuzhiyun		vdd_l20_l24-supply = <&vph_pwr>;
130*4882a593Smuzhiyun		vdd_l26-supply = <&vreg_s3a_1p35>;
131*4882a593Smuzhiyun		vdd_lvs1_lvs2-supply = <&vreg_s4a_1p8>;
132*4882a593Smuzhiyun
133*4882a593Smuzhiyun		vreg_s3a_1p35: s3 {
134*4882a593Smuzhiyun			regulator-min-microvolt = <1352000>;
135*4882a593Smuzhiyun			regulator-max-microvolt = <1352000>;
136*4882a593Smuzhiyun		};
137*4882a593Smuzhiyun		vreg_s4a_1p8: s4 {
138*4882a593Smuzhiyun			regulator-min-microvolt = <1800000>;
139*4882a593Smuzhiyun			regulator-max-microvolt = <1800000>;
140*4882a593Smuzhiyun			regulator-allow-set-load;
141*4882a593Smuzhiyun		};
142*4882a593Smuzhiyun		vreg_s5a_2p04: s5 {
143*4882a593Smuzhiyun			regulator-min-microvolt = <1904000>;
144*4882a593Smuzhiyun			regulator-max-microvolt = <2040000>;
145*4882a593Smuzhiyun		};
146*4882a593Smuzhiyun		vreg_s7a_1p025: s7 {
147*4882a593Smuzhiyun			regulator-min-microvolt = <900000>;
148*4882a593Smuzhiyun			regulator-max-microvolt = <1028000>;
149*4882a593Smuzhiyun		};
150*4882a593Smuzhiyun		vreg_l1a_0p875: l1 {
151*4882a593Smuzhiyun			regulator-min-microvolt = <880000>;
152*4882a593Smuzhiyun			regulator-max-microvolt = <880000>;
153*4882a593Smuzhiyun			regulator-allow-set-load;
154*4882a593Smuzhiyun		};
155*4882a593Smuzhiyun		vreg_l2a_1p2: l2 {
156*4882a593Smuzhiyun			regulator-min-microvolt = <1200000>;
157*4882a593Smuzhiyun			regulator-max-microvolt = <1200000>;
158*4882a593Smuzhiyun			regulator-allow-set-load;
159*4882a593Smuzhiyun		};
160*4882a593Smuzhiyun		vreg_l3a_1p0: l3 {
161*4882a593Smuzhiyun			regulator-min-microvolt = <1000000>;
162*4882a593Smuzhiyun			regulator-max-microvolt = <1000000>;
163*4882a593Smuzhiyun		};
164*4882a593Smuzhiyun		vreg_l5a_0p8: l5 {
165*4882a593Smuzhiyun			regulator-min-microvolt = <800000>;
166*4882a593Smuzhiyun			regulator-max-microvolt = <800000>;
167*4882a593Smuzhiyun		};
168*4882a593Smuzhiyun		vreg_l6a_1p8: l6 {
169*4882a593Smuzhiyun			regulator-min-microvolt = <1808000>;
170*4882a593Smuzhiyun			regulator-max-microvolt = <1808000>;
171*4882a593Smuzhiyun		};
172*4882a593Smuzhiyun		vreg_l7a_1p8: l7 {
173*4882a593Smuzhiyun			regulator-min-microvolt = <1800000>;
174*4882a593Smuzhiyun			regulator-max-microvolt = <1800000>;
175*4882a593Smuzhiyun			regulator-allow-set-load;
176*4882a593Smuzhiyun		};
177*4882a593Smuzhiyun		vreg_l8a_1p2: l8 {
178*4882a593Smuzhiyun			regulator-min-microvolt = <1200000>;
179*4882a593Smuzhiyun			regulator-max-microvolt = <1200000>;
180*4882a593Smuzhiyun		};
181*4882a593Smuzhiyun		vreg_l9a_1p8: l9 {
182*4882a593Smuzhiyun			regulator-min-microvolt = <1808000>;
183*4882a593Smuzhiyun			regulator-max-microvolt = <2960000>;
184*4882a593Smuzhiyun		};
185*4882a593Smuzhiyun		vreg_l10a_1p8: l10 {
186*4882a593Smuzhiyun			regulator-min-microvolt = <1808000>;
187*4882a593Smuzhiyun			regulator-max-microvolt = <2960000>;
188*4882a593Smuzhiyun		};
189*4882a593Smuzhiyun		vreg_l11a_1p0: l11 {
190*4882a593Smuzhiyun			regulator-min-microvolt = <1000000>;
191*4882a593Smuzhiyun			regulator-max-microvolt = <1000000>;
192*4882a593Smuzhiyun		};
193*4882a593Smuzhiyun		vreg_l12a_1p8: l12 {
194*4882a593Smuzhiyun			regulator-min-microvolt = <1800000>;
195*4882a593Smuzhiyun			regulator-max-microvolt = <1800000>;
196*4882a593Smuzhiyun		};
197*4882a593Smuzhiyun		vreg_l13a_2p95: l13 {
198*4882a593Smuzhiyun			regulator-min-microvolt = <1808000>;
199*4882a593Smuzhiyun			regulator-max-microvolt = <2960000>;
200*4882a593Smuzhiyun		};
201*4882a593Smuzhiyun		vreg_l14a_1p88: l14 {
202*4882a593Smuzhiyun			regulator-min-microvolt = <1880000>;
203*4882a593Smuzhiyun			regulator-max-microvolt = <1880000>;
204*4882a593Smuzhiyun		};
205*4882a593Smuzhiyun		vreg_l15a_1p8: l15 {
206*4882a593Smuzhiyun			regulator-min-microvolt = <1800000>;
207*4882a593Smuzhiyun			regulator-max-microvolt = <1800000>;
208*4882a593Smuzhiyun		};
209*4882a593Smuzhiyun		vreg_l16a_2p7: l16 {
210*4882a593Smuzhiyun			regulator-min-microvolt = <2704000>;
211*4882a593Smuzhiyun			regulator-max-microvolt = <2704000>;
212*4882a593Smuzhiyun		};
213*4882a593Smuzhiyun		vreg_l17a_1p3: l17 {
214*4882a593Smuzhiyun			regulator-min-microvolt = <1304000>;
215*4882a593Smuzhiyun			regulator-max-microvolt = <1304000>;
216*4882a593Smuzhiyun			regulator-allow-set-load;
217*4882a593Smuzhiyun		};
218*4882a593Smuzhiyun		vreg_l18a_2p7: l18 {
219*4882a593Smuzhiyun			regulator-min-microvolt = <2704000>;
220*4882a593Smuzhiyun			regulator-max-microvolt = <2704000>;
221*4882a593Smuzhiyun		};
222*4882a593Smuzhiyun		vreg_l19a_3p0: l19 {
223*4882a593Smuzhiyun			regulator-min-microvolt = <3008000>;
224*4882a593Smuzhiyun			regulator-max-microvolt = <3008000>;
225*4882a593Smuzhiyun		};
226*4882a593Smuzhiyun		vreg_l20a_2p95: l20 {
227*4882a593Smuzhiyun			regulator-min-microvolt = <2960000>;
228*4882a593Smuzhiyun			regulator-max-microvolt = <2960000>;
229*4882a593Smuzhiyun			regulator-allow-set-load;
230*4882a593Smuzhiyun		};
231*4882a593Smuzhiyun		vreg_l21a_2p95: l21 {
232*4882a593Smuzhiyun			regulator-min-microvolt = <2960000>;
233*4882a593Smuzhiyun			regulator-max-microvolt = <2960000>;
234*4882a593Smuzhiyun			regulator-allow-set-load;
235*4882a593Smuzhiyun			regulator-system-load = <800000>;
236*4882a593Smuzhiyun		};
237*4882a593Smuzhiyun		vreg_l22a_2p85: l22 {
238*4882a593Smuzhiyun			regulator-min-microvolt = <2864000>;
239*4882a593Smuzhiyun			regulator-max-microvolt = <2864000>;
240*4882a593Smuzhiyun		};
241*4882a593Smuzhiyun		vreg_l23a_3p3: l23 {
242*4882a593Smuzhiyun			regulator-min-microvolt = <3312000>;
243*4882a593Smuzhiyun			regulator-max-microvolt = <3312000>;
244*4882a593Smuzhiyun		};
245*4882a593Smuzhiyun		vreg_l24a_3p075: l24 {
246*4882a593Smuzhiyun			regulator-min-microvolt = <3088000>;
247*4882a593Smuzhiyun			regulator-max-microvolt = <3088000>;
248*4882a593Smuzhiyun		};
249*4882a593Smuzhiyun		vreg_l25a_3p3: l25 {
250*4882a593Smuzhiyun			regulator-min-microvolt = <3104000>;
251*4882a593Smuzhiyun			regulator-max-microvolt = <3312000>;
252*4882a593Smuzhiyun			regulator-allow-set-load;
253*4882a593Smuzhiyun		};
254*4882a593Smuzhiyun		vreg_l26a_1p2: l26 {
255*4882a593Smuzhiyun			regulator-min-microvolt = <1200000>;
256*4882a593Smuzhiyun			regulator-max-microvolt = <1200000>;
257*4882a593Smuzhiyun		};
258*4882a593Smuzhiyun		vreg_l28_3p0: l28 {
259*4882a593Smuzhiyun			regulator-min-microvolt = <3008000>;
260*4882a593Smuzhiyun			regulator-max-microvolt = <3008000>;
261*4882a593Smuzhiyun		};
262*4882a593Smuzhiyun
263*4882a593Smuzhiyun		vreg_lvs1a_1p8: lvs1 {
264*4882a593Smuzhiyun			regulator-min-microvolt = <1800000>;
265*4882a593Smuzhiyun			regulator-max-microvolt = <1800000>;
266*4882a593Smuzhiyun		};
267*4882a593Smuzhiyun
268*4882a593Smuzhiyun		vreg_lvs2a_1p8: lvs2 {
269*4882a593Smuzhiyun			regulator-min-microvolt = <1800000>;
270*4882a593Smuzhiyun			regulator-max-microvolt = <1800000>;
271*4882a593Smuzhiyun		};
272*4882a593Smuzhiyun
273*4882a593Smuzhiyun	};
274*4882a593Smuzhiyun};
275*4882a593Smuzhiyun
276*4882a593Smuzhiyun&tlmm {
277*4882a593Smuzhiyun	gpio-reserved-ranges = <0 4>, <81 4>;
278*4882a593Smuzhiyun
279*4882a593Smuzhiyun	touchpad: touchpad {
280*4882a593Smuzhiyun		config {
281*4882a593Smuzhiyun			pins = "gpio123";
282*4882a593Smuzhiyun			bias-pull-up;           /* pull up */
283*4882a593Smuzhiyun		};
284*4882a593Smuzhiyun	};
285*4882a593Smuzhiyun};
286*4882a593Smuzhiyun
287*4882a593Smuzhiyun&sdhc2 {
288*4882a593Smuzhiyun	status = "okay";
289*4882a593Smuzhiyun
290*4882a593Smuzhiyun	vmmc-supply = <&vreg_l21a_2p95>;
291*4882a593Smuzhiyun	vqmmc-supply = <&vreg_l13a_2p95>;
292*4882a593Smuzhiyun
293*4882a593Smuzhiyun	pinctrl-names = "default", "sleep";
294*4882a593Smuzhiyun	pinctrl-0 = <&sdc2_clk_on  &sdc2_cmd_on  &sdc2_data_on  &sdc2_cd_on>;
295*4882a593Smuzhiyun	pinctrl-1 = <&sdc2_clk_off &sdc2_cmd_off &sdc2_data_off &sdc2_cd_off>;
296*4882a593Smuzhiyun};
297*4882a593Smuzhiyun
298*4882a593Smuzhiyun&usb3 {
299*4882a593Smuzhiyun	status = "okay";
300*4882a593Smuzhiyun};
301*4882a593Smuzhiyun
302*4882a593Smuzhiyun&usb3_dwc3 {
303*4882a593Smuzhiyun	dr_mode = "host"; /* Force to host until we have Type-C hooked up */
304*4882a593Smuzhiyun};
305*4882a593Smuzhiyun
306*4882a593Smuzhiyun&usb3phy {
307*4882a593Smuzhiyun	status = "okay";
308*4882a593Smuzhiyun
309*4882a593Smuzhiyun	vdda-phy-supply = <&vreg_l1a_0p875>;
310*4882a593Smuzhiyun	vdda-pll-supply = <&vreg_l2a_1p2>;
311*4882a593Smuzhiyun};
312*4882a593Smuzhiyun
313*4882a593Smuzhiyun&wifi {
314*4882a593Smuzhiyun	status = "okay";
315*4882a593Smuzhiyun
316*4882a593Smuzhiyun	vdd-0.8-cx-mx-supply = <&vreg_l5a_0p8>;
317*4882a593Smuzhiyun	vdd-1.8-xo-supply = <&vreg_l7a_1p8>;
318*4882a593Smuzhiyun	vdd-1.3-rfa-supply = <&vreg_l17a_1p3>;
319*4882a593Smuzhiyun	vdd-3.3-ch0-supply = <&vreg_l25a_3p3>;
320*4882a593Smuzhiyun};
321*4882a593Smuzhiyun
322*4882a593Smuzhiyun/* PINCTRL - board-specific pinctrl */
323*4882a593Smuzhiyun&blsp1_uart3_on {
324*4882a593Smuzhiyun	rx {
325*4882a593Smuzhiyun		/delete-property/ bias-disable;
326*4882a593Smuzhiyun		/*
327*4882a593Smuzhiyun		 * Configure a pull-up on 45 (RX). This is needed to
328*4882a593Smuzhiyun		 * avoid garbage data when the TX pin of the Bluetooth
329*4882a593Smuzhiyun		 * module is in tri-state (module powered off or not
330*4882a593Smuzhiyun		 * driving the signal yet).
331*4882a593Smuzhiyun		 */
332*4882a593Smuzhiyun		bias-pull-up;
333*4882a593Smuzhiyun	};
334*4882a593Smuzhiyun
335*4882a593Smuzhiyun	cts {
336*4882a593Smuzhiyun		/delete-property/ bias-disable;
337*4882a593Smuzhiyun		/*
338*4882a593Smuzhiyun		 * Configure a pull-down on 47 (CTS) to match the pull
339*4882a593Smuzhiyun		 * of the Bluetooth module.
340*4882a593Smuzhiyun		 */
341*4882a593Smuzhiyun		bias-pull-down;
342*4882a593Smuzhiyun	};
343*4882a593Smuzhiyun};
344