xref: /OK3568_Linux_fs/kernel/arch/arm64/boot/dts/qcom/sdm850-lenovo-yoga-c630.dts (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun// SPDX-License-Identifier: BSD-3-Clause
2*4882a593Smuzhiyun/*
3*4882a593Smuzhiyun * Lenovo Yoga C630
4*4882a593Smuzhiyun *
5*4882a593Smuzhiyun * Copyright (c) 2019, Linaro Ltd.
6*4882a593Smuzhiyun */
7*4882a593Smuzhiyun
8*4882a593Smuzhiyun/dts-v1/;
9*4882a593Smuzhiyun
10*4882a593Smuzhiyun#include <dt-bindings/gpio/gpio.h>
11*4882a593Smuzhiyun#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
12*4882a593Smuzhiyun#include <dt-bindings/sound/qcom,q6afe.h>
13*4882a593Smuzhiyun#include <dt-bindings/sound/qcom,q6asm.h>
14*4882a593Smuzhiyun#include "sdm845.dtsi"
15*4882a593Smuzhiyun#include "pm8998.dtsi"
16*4882a593Smuzhiyun
17*4882a593Smuzhiyun/ {
18*4882a593Smuzhiyun	model = "Lenovo Yoga C630";
19*4882a593Smuzhiyun	compatible = "lenovo,yoga-c630", "qcom,sdm845";
20*4882a593Smuzhiyun
21*4882a593Smuzhiyun	aliases {
22*4882a593Smuzhiyun		hsuart0 = &uart6;
23*4882a593Smuzhiyun	};
24*4882a593Smuzhiyun};
25*4882a593Smuzhiyun
26*4882a593Smuzhiyun&adsp_pas {
27*4882a593Smuzhiyun	firmware-name = "qcom/LENOVO/81JL/qcadsp850.mbn";
28*4882a593Smuzhiyun	status = "okay";
29*4882a593Smuzhiyun};
30*4882a593Smuzhiyun
31*4882a593Smuzhiyun&apps_rsc {
32*4882a593Smuzhiyun	pm8998-rpmh-regulators {
33*4882a593Smuzhiyun		compatible = "qcom,pm8998-rpmh-regulators";
34*4882a593Smuzhiyun		qcom,pmic-id = "a";
35*4882a593Smuzhiyun
36*4882a593Smuzhiyun		vdd-l2-l8-l17-supply = <&vreg_s3a_1p35>;
37*4882a593Smuzhiyun		vdd-l7-l12-l14-l15-supply = <&vreg_s5a_2p04>;
38*4882a593Smuzhiyun
39*4882a593Smuzhiyun		vreg_s2a_1p125: smps2 {
40*4882a593Smuzhiyun		};
41*4882a593Smuzhiyun
42*4882a593Smuzhiyun		vreg_s3a_1p35: smps3 {
43*4882a593Smuzhiyun			regulator-min-microvolt = <1352000>;
44*4882a593Smuzhiyun			regulator-max-microvolt = <1352000>;
45*4882a593Smuzhiyun			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
46*4882a593Smuzhiyun		};
47*4882a593Smuzhiyun
48*4882a593Smuzhiyun		vreg_s4a_1p8: smps4 {
49*4882a593Smuzhiyun			regulator-min-microvolt = <1800000>;
50*4882a593Smuzhiyun			regulator-max-microvolt = <1800000>;
51*4882a593Smuzhiyun			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
52*4882a593Smuzhiyun		};
53*4882a593Smuzhiyun
54*4882a593Smuzhiyun		vreg_s5a_2p04: smps5 {
55*4882a593Smuzhiyun			regulator-min-microvolt = <2040000>;
56*4882a593Smuzhiyun			regulator-max-microvolt = <2040000>;
57*4882a593Smuzhiyun			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
58*4882a593Smuzhiyun		};
59*4882a593Smuzhiyun
60*4882a593Smuzhiyun		vreg_s7a_1p025: smps7 {
61*4882a593Smuzhiyun		};
62*4882a593Smuzhiyun
63*4882a593Smuzhiyun		vdd_qusb_hs0:
64*4882a593Smuzhiyun		vdda_hp_pcie_core:
65*4882a593Smuzhiyun		vdda_mipi_csi0_0p9:
66*4882a593Smuzhiyun		vdda_mipi_csi1_0p9:
67*4882a593Smuzhiyun		vdda_mipi_csi2_0p9:
68*4882a593Smuzhiyun		vdda_mipi_dsi0_pll:
69*4882a593Smuzhiyun		vdda_mipi_dsi1_pll:
70*4882a593Smuzhiyun		vdda_qlink_lv:
71*4882a593Smuzhiyun		vdda_qlink_lv_ck:
72*4882a593Smuzhiyun		vdda_qrefs_0p875:
73*4882a593Smuzhiyun		vdda_pcie_core:
74*4882a593Smuzhiyun		vdda_pll_cc_ebi01:
75*4882a593Smuzhiyun		vdda_pll_cc_ebi23:
76*4882a593Smuzhiyun		vdda_sp_sensor:
77*4882a593Smuzhiyun		vdda_ufs1_core:
78*4882a593Smuzhiyun		vdda_ufs2_core:
79*4882a593Smuzhiyun		vdda_usb1_ss_core:
80*4882a593Smuzhiyun		vdda_usb2_ss_core:
81*4882a593Smuzhiyun		vreg_l1a_0p875: ldo1 {
82*4882a593Smuzhiyun			regulator-min-microvolt = <880000>;
83*4882a593Smuzhiyun			regulator-max-microvolt = <880000>;
84*4882a593Smuzhiyun			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
85*4882a593Smuzhiyun		};
86*4882a593Smuzhiyun
87*4882a593Smuzhiyun		vddpx_10:
88*4882a593Smuzhiyun		vreg_l2a_1p2: ldo2 {
89*4882a593Smuzhiyun			regulator-min-microvolt = <1200000>;
90*4882a593Smuzhiyun			regulator-max-microvolt = <1200000>;
91*4882a593Smuzhiyun			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
92*4882a593Smuzhiyun			regulator-always-on;
93*4882a593Smuzhiyun		};
94*4882a593Smuzhiyun
95*4882a593Smuzhiyun		vreg_l3a_1p0: ldo3 {
96*4882a593Smuzhiyun		};
97*4882a593Smuzhiyun
98*4882a593Smuzhiyun		vdd_wcss_cx:
99*4882a593Smuzhiyun		vdd_wcss_mx:
100*4882a593Smuzhiyun		vdda_wcss_pll:
101*4882a593Smuzhiyun		vreg_l5a_0p8: ldo5 {
102*4882a593Smuzhiyun			regulator-min-microvolt = <800000>;
103*4882a593Smuzhiyun			regulator-max-microvolt = <800000>;
104*4882a593Smuzhiyun			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
105*4882a593Smuzhiyun		};
106*4882a593Smuzhiyun
107*4882a593Smuzhiyun		vddpx_13:
108*4882a593Smuzhiyun		vreg_l6a_1p8: ldo6 {
109*4882a593Smuzhiyun			regulator-min-microvolt = <1800000>;
110*4882a593Smuzhiyun			regulator-max-microvolt = <1800000>;
111*4882a593Smuzhiyun			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
112*4882a593Smuzhiyun		};
113*4882a593Smuzhiyun
114*4882a593Smuzhiyun		vreg_l7a_1p8: ldo7 {
115*4882a593Smuzhiyun			regulator-min-microvolt = <1800000>;
116*4882a593Smuzhiyun			regulator-max-microvolt = <1800000>;
117*4882a593Smuzhiyun			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
118*4882a593Smuzhiyun		};
119*4882a593Smuzhiyun
120*4882a593Smuzhiyun		vreg_l8a_1p2: ldo8 {
121*4882a593Smuzhiyun		};
122*4882a593Smuzhiyun
123*4882a593Smuzhiyun		vreg_l9a_1p8: ldo9 {
124*4882a593Smuzhiyun		};
125*4882a593Smuzhiyun
126*4882a593Smuzhiyun		vreg_l10a_1p8: ldo10 {
127*4882a593Smuzhiyun		};
128*4882a593Smuzhiyun
129*4882a593Smuzhiyun		vreg_l11a_1p0: ldo11 {
130*4882a593Smuzhiyun		};
131*4882a593Smuzhiyun
132*4882a593Smuzhiyun		vdd_qfprom:
133*4882a593Smuzhiyun		vdd_qfprom_sp:
134*4882a593Smuzhiyun		vdda_apc1_cs_1p8:
135*4882a593Smuzhiyun		vdda_gfx_cs_1p8:
136*4882a593Smuzhiyun		vdda_qrefs_1p8:
137*4882a593Smuzhiyun		vdda_qusb_hs0_1p8:
138*4882a593Smuzhiyun		vddpx_11:
139*4882a593Smuzhiyun		vreg_l12a_1p8: ldo12 {
140*4882a593Smuzhiyun			regulator-min-microvolt = <1800000>;
141*4882a593Smuzhiyun			regulator-max-microvolt = <1800000>;
142*4882a593Smuzhiyun			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
143*4882a593Smuzhiyun		};
144*4882a593Smuzhiyun
145*4882a593Smuzhiyun		vddpx_2:
146*4882a593Smuzhiyun		vreg_l13a_2p95: ldo13 {
147*4882a593Smuzhiyun		};
148*4882a593Smuzhiyun
149*4882a593Smuzhiyun		vreg_l14a_1p88: ldo14 {
150*4882a593Smuzhiyun			regulator-min-microvolt = <1880000>;
151*4882a593Smuzhiyun			regulator-max-microvolt = <1880000>;
152*4882a593Smuzhiyun			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
153*4882a593Smuzhiyun			regulator-always-on;
154*4882a593Smuzhiyun		};
155*4882a593Smuzhiyun
156*4882a593Smuzhiyun		vreg_l15a_1p8: ldo15 {
157*4882a593Smuzhiyun		};
158*4882a593Smuzhiyun
159*4882a593Smuzhiyun		vreg_l16a_2p7: ldo16 {
160*4882a593Smuzhiyun		};
161*4882a593Smuzhiyun
162*4882a593Smuzhiyun		vreg_l17a_1p3: ldo17 {
163*4882a593Smuzhiyun			regulator-min-microvolt = <1304000>;
164*4882a593Smuzhiyun			regulator-max-microvolt = <1304000>;
165*4882a593Smuzhiyun			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
166*4882a593Smuzhiyun		};
167*4882a593Smuzhiyun
168*4882a593Smuzhiyun		vreg_l18a_2p7: ldo18 {
169*4882a593Smuzhiyun		};
170*4882a593Smuzhiyun
171*4882a593Smuzhiyun		vreg_l19a_3p0: ldo19 {
172*4882a593Smuzhiyun			regulator-min-microvolt = <3100000>;
173*4882a593Smuzhiyun			regulator-max-microvolt = <3108000>;
174*4882a593Smuzhiyun			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
175*4882a593Smuzhiyun		};
176*4882a593Smuzhiyun
177*4882a593Smuzhiyun		vreg_l20a_2p95: ldo20 {
178*4882a593Smuzhiyun			regulator-min-microvolt = <2960000>;
179*4882a593Smuzhiyun			regulator-max-microvolt = <2960000>;
180*4882a593Smuzhiyun			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
181*4882a593Smuzhiyun		};
182*4882a593Smuzhiyun
183*4882a593Smuzhiyun		vreg_l21a_2p95: ldo21 {
184*4882a593Smuzhiyun		};
185*4882a593Smuzhiyun
186*4882a593Smuzhiyun		vreg_l22a_2p85: ldo22 {
187*4882a593Smuzhiyun		};
188*4882a593Smuzhiyun
189*4882a593Smuzhiyun		vreg_l23a_3p3: ldo23 {
190*4882a593Smuzhiyun		};
191*4882a593Smuzhiyun
192*4882a593Smuzhiyun		vdda_qusb_hs0_3p1:
193*4882a593Smuzhiyun		vreg_l24a_3p075: ldo24 {
194*4882a593Smuzhiyun			regulator-min-microvolt = <3075000>;
195*4882a593Smuzhiyun			regulator-max-microvolt = <3083000>;
196*4882a593Smuzhiyun			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
197*4882a593Smuzhiyun		};
198*4882a593Smuzhiyun
199*4882a593Smuzhiyun		vreg_l25a_3p3: ldo25 {
200*4882a593Smuzhiyun			regulator-min-microvolt = <3104000>;
201*4882a593Smuzhiyun			regulator-max-microvolt = <3112000>;
202*4882a593Smuzhiyun			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
203*4882a593Smuzhiyun		};
204*4882a593Smuzhiyun
205*4882a593Smuzhiyun		vdda_hp_pcie_1p2:
206*4882a593Smuzhiyun		vdda_hv_ebi0:
207*4882a593Smuzhiyun		vdda_hv_ebi1:
208*4882a593Smuzhiyun		vdda_hv_ebi2:
209*4882a593Smuzhiyun		vdda_hv_ebi3:
210*4882a593Smuzhiyun		vdda_mipi_csi_1p25:
211*4882a593Smuzhiyun		vdda_mipi_dsi0_1p2:
212*4882a593Smuzhiyun		vdda_mipi_dsi1_1p2:
213*4882a593Smuzhiyun		vdda_pcie_1p2:
214*4882a593Smuzhiyun		vdda_ufs1_1p2:
215*4882a593Smuzhiyun		vdda_ufs2_1p2:
216*4882a593Smuzhiyun		vdda_usb1_ss_1p2:
217*4882a593Smuzhiyun		vdda_usb2_ss_1p2:
218*4882a593Smuzhiyun		vreg_l26a_1p2: ldo26 {
219*4882a593Smuzhiyun			regulator-min-microvolt = <1200000>;
220*4882a593Smuzhiyun			regulator-max-microvolt = <1208000>;
221*4882a593Smuzhiyun			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
222*4882a593Smuzhiyun		};
223*4882a593Smuzhiyun
224*4882a593Smuzhiyun		vreg_l28a_3p0: ldo28 {
225*4882a593Smuzhiyun		};
226*4882a593Smuzhiyun
227*4882a593Smuzhiyun		vreg_lvs1a_1p8: lvs1 {
228*4882a593Smuzhiyun		};
229*4882a593Smuzhiyun
230*4882a593Smuzhiyun		vreg_lvs2a_1p8: lvs2 {
231*4882a593Smuzhiyun		};
232*4882a593Smuzhiyun	};
233*4882a593Smuzhiyun};
234*4882a593Smuzhiyun
235*4882a593Smuzhiyun&apps_smmu {
236*4882a593Smuzhiyun	/* TODO: Figure out how to survive booting with this enabled */
237*4882a593Smuzhiyun	status = "disabled";
238*4882a593Smuzhiyun};
239*4882a593Smuzhiyun
240*4882a593Smuzhiyun&cdsp_pas {
241*4882a593Smuzhiyun	firmware-name = "qcom/LENOVO/81JL/qccdsp850.mbn";
242*4882a593Smuzhiyun	status = "okay";
243*4882a593Smuzhiyun};
244*4882a593Smuzhiyun
245*4882a593Smuzhiyun&gcc {
246*4882a593Smuzhiyun	protected-clocks = <GCC_QSPI_CORE_CLK>,
247*4882a593Smuzhiyun			   <GCC_QSPI_CORE_CLK_SRC>,
248*4882a593Smuzhiyun			   <GCC_QSPI_CNOC_PERIPH_AHB_CLK>,
249*4882a593Smuzhiyun			   <GCC_LPASS_Q6_AXI_CLK>,
250*4882a593Smuzhiyun			   <GCC_LPASS_SWAY_CLK>;
251*4882a593Smuzhiyun};
252*4882a593Smuzhiyun
253*4882a593Smuzhiyun&gpu {
254*4882a593Smuzhiyun	zap-shader {
255*4882a593Smuzhiyun		memory-region = <&gpu_mem>;
256*4882a593Smuzhiyun		firmware-name = "qcom/LENOVO/81JL/qcdxkmsuc850.mbn";
257*4882a593Smuzhiyun	};
258*4882a593Smuzhiyun};
259*4882a593Smuzhiyun
260*4882a593Smuzhiyun&i2c1 {
261*4882a593Smuzhiyun	status = "okay";
262*4882a593Smuzhiyun	clock-frequency = <400000>;
263*4882a593Smuzhiyun};
264*4882a593Smuzhiyun
265*4882a593Smuzhiyun&i2c3 {
266*4882a593Smuzhiyun	status = "okay";
267*4882a593Smuzhiyun	clock-frequency = <400000>;
268*4882a593Smuzhiyun	/* Overwrite pinctrl-0 from sdm845.dtsi */
269*4882a593Smuzhiyun	pinctrl-0 = <&qup_i2c3_default &i2c3_hid_active>;
270*4882a593Smuzhiyun
271*4882a593Smuzhiyun	tsel: hid@15 {
272*4882a593Smuzhiyun		compatible = "hid-over-i2c";
273*4882a593Smuzhiyun		reg = <0x15>;
274*4882a593Smuzhiyun		hid-descr-addr = <0x1>;
275*4882a593Smuzhiyun
276*4882a593Smuzhiyun		interrupts-extended = <&tlmm 37 IRQ_TYPE_LEVEL_HIGH>;
277*4882a593Smuzhiyun	};
278*4882a593Smuzhiyun
279*4882a593Smuzhiyun	tsc2: hid@2c {
280*4882a593Smuzhiyun		compatible = "hid-over-i2c";
281*4882a593Smuzhiyun		reg = <0x2c>;
282*4882a593Smuzhiyun		hid-descr-addr = <0x20>;
283*4882a593Smuzhiyun
284*4882a593Smuzhiyun		interrupts-extended = <&tlmm 37 IRQ_TYPE_LEVEL_HIGH>;
285*4882a593Smuzhiyun	};
286*4882a593Smuzhiyun};
287*4882a593Smuzhiyun
288*4882a593Smuzhiyun&i2c5 {
289*4882a593Smuzhiyun	status = "okay";
290*4882a593Smuzhiyun	clock-frequency = <400000>;
291*4882a593Smuzhiyun
292*4882a593Smuzhiyun	tsc1: hid@10 {
293*4882a593Smuzhiyun		compatible = "hid-over-i2c";
294*4882a593Smuzhiyun		reg = <0x10>;
295*4882a593Smuzhiyun		hid-descr-addr = <0x1>;
296*4882a593Smuzhiyun
297*4882a593Smuzhiyun		interrupts-extended = <&tlmm 125 IRQ_TYPE_LEVEL_LOW>;
298*4882a593Smuzhiyun
299*4882a593Smuzhiyun		pinctrl-names = "default";
300*4882a593Smuzhiyun		pinctrl-0 = <&i2c5_hid_active>;
301*4882a593Smuzhiyun	};
302*4882a593Smuzhiyun};
303*4882a593Smuzhiyun
304*4882a593Smuzhiyun&i2c11 {
305*4882a593Smuzhiyun	status = "okay";
306*4882a593Smuzhiyun	clock-frequency = <400000>;
307*4882a593Smuzhiyun
308*4882a593Smuzhiyun	ecsh: hid@5c {
309*4882a593Smuzhiyun		compatible = "hid-over-i2c";
310*4882a593Smuzhiyun		reg = <0x5c>;
311*4882a593Smuzhiyun		hid-descr-addr = <0x1>;
312*4882a593Smuzhiyun
313*4882a593Smuzhiyun		interrupts-extended = <&tlmm 92 IRQ_TYPE_LEVEL_LOW>;
314*4882a593Smuzhiyun
315*4882a593Smuzhiyun		pinctrl-names = "default";
316*4882a593Smuzhiyun		pinctrl-0 = <&i2c11_hid_active>;
317*4882a593Smuzhiyun	};
318*4882a593Smuzhiyun};
319*4882a593Smuzhiyun
320*4882a593Smuzhiyun&mss_pil {
321*4882a593Smuzhiyun	firmware-name = "qcom/LENOVO/81JL/qcdsp1v2850.mbn", "qcom/LENOVO/81JL/qcdsp2850.mbn";
322*4882a593Smuzhiyun};
323*4882a593Smuzhiyun
324*4882a593Smuzhiyun&qup_i2c12_default {
325*4882a593Smuzhiyun	drive-strength = <2>;
326*4882a593Smuzhiyun	bias-disable;
327*4882a593Smuzhiyun};
328*4882a593Smuzhiyun
329*4882a593Smuzhiyun&qup_uart6_default {
330*4882a593Smuzhiyun	pinmux {
331*4882a593Smuzhiyun		 pins = "gpio45", "gpio46", "gpio47", "gpio48";
332*4882a593Smuzhiyun		 function = "qup6";
333*4882a593Smuzhiyun	};
334*4882a593Smuzhiyun
335*4882a593Smuzhiyun	cts {
336*4882a593Smuzhiyun		pins = "gpio45";
337*4882a593Smuzhiyun		bias-pull-down;
338*4882a593Smuzhiyun	};
339*4882a593Smuzhiyun
340*4882a593Smuzhiyun	rts-tx {
341*4882a593Smuzhiyun		pins = "gpio46", "gpio47";
342*4882a593Smuzhiyun		drive-strength = <2>;
343*4882a593Smuzhiyun		bias-disable;
344*4882a593Smuzhiyun	};
345*4882a593Smuzhiyun
346*4882a593Smuzhiyun	rx {
347*4882a593Smuzhiyun		pins = "gpio48";
348*4882a593Smuzhiyun		bias-pull-up;
349*4882a593Smuzhiyun	};
350*4882a593Smuzhiyun};
351*4882a593Smuzhiyun
352*4882a593Smuzhiyun&qupv3_id_0 {
353*4882a593Smuzhiyun	status = "okay";
354*4882a593Smuzhiyun};
355*4882a593Smuzhiyun
356*4882a593Smuzhiyun&qupv3_id_1 {
357*4882a593Smuzhiyun	status = "okay";
358*4882a593Smuzhiyun};
359*4882a593Smuzhiyun
360*4882a593Smuzhiyun&q6asmdai {
361*4882a593Smuzhiyun	dai@0 {
362*4882a593Smuzhiyun		reg = <0>;
363*4882a593Smuzhiyun	};
364*4882a593Smuzhiyun
365*4882a593Smuzhiyun	dai@1 {
366*4882a593Smuzhiyun		reg = <1>;
367*4882a593Smuzhiyun	};
368*4882a593Smuzhiyun
369*4882a593Smuzhiyun	dai@2 {
370*4882a593Smuzhiyun		reg = <2>;
371*4882a593Smuzhiyun	};
372*4882a593Smuzhiyun};
373*4882a593Smuzhiyun
374*4882a593Smuzhiyun&sound {
375*4882a593Smuzhiyun	compatible = "qcom,db845c-sndcard";
376*4882a593Smuzhiyun	model = "Lenovo-YOGA-C630-13Q50";
377*4882a593Smuzhiyun
378*4882a593Smuzhiyun	audio-routing =
379*4882a593Smuzhiyun		"RX_BIAS", "MCLK",
380*4882a593Smuzhiyun		"AMIC2", "MIC BIAS2",
381*4882a593Smuzhiyun		"SpkrLeft IN", "SPK1 OUT",
382*4882a593Smuzhiyun		"SpkrRight IN", "SPK2 OUT",
383*4882a593Smuzhiyun		"MM_DL1",  "MultiMedia1 Playback",
384*4882a593Smuzhiyun		"MM_DL3",  "MultiMedia3 Playback",
385*4882a593Smuzhiyun		"MultiMedia2 Capture", "MM_UL2";
386*4882a593Smuzhiyun
387*4882a593Smuzhiyun	mm1-dai-link {
388*4882a593Smuzhiyun		link-name = "MultiMedia1";
389*4882a593Smuzhiyun		cpu {
390*4882a593Smuzhiyun			sound-dai = <&q6asmdai  MSM_FRONTEND_DAI_MULTIMEDIA1>;
391*4882a593Smuzhiyun		};
392*4882a593Smuzhiyun	};
393*4882a593Smuzhiyun
394*4882a593Smuzhiyun	mm2-dai-link {
395*4882a593Smuzhiyun		link-name = "MultiMedia2";
396*4882a593Smuzhiyun		cpu {
397*4882a593Smuzhiyun			sound-dai = <&q6asmdai  MSM_FRONTEND_DAI_MULTIMEDIA2>;
398*4882a593Smuzhiyun		};
399*4882a593Smuzhiyun	};
400*4882a593Smuzhiyun
401*4882a593Smuzhiyun	mm3-dai-link {
402*4882a593Smuzhiyun		link-name = "MultiMedia3";
403*4882a593Smuzhiyun		cpu {
404*4882a593Smuzhiyun			sound-dai = <&q6asmdai  MSM_FRONTEND_DAI_MULTIMEDIA3>;
405*4882a593Smuzhiyun		};
406*4882a593Smuzhiyun	};
407*4882a593Smuzhiyun
408*4882a593Smuzhiyun	slim-dai-link {
409*4882a593Smuzhiyun		link-name = "SLIM Playback";
410*4882a593Smuzhiyun		cpu {
411*4882a593Smuzhiyun			sound-dai = <&q6afedai SLIMBUS_0_RX>;
412*4882a593Smuzhiyun		};
413*4882a593Smuzhiyun
414*4882a593Smuzhiyun		platform {
415*4882a593Smuzhiyun			sound-dai = <&q6routing>;
416*4882a593Smuzhiyun		};
417*4882a593Smuzhiyun
418*4882a593Smuzhiyun		codec {
419*4882a593Smuzhiyun			sound-dai =  <&left_spkr>, <&right_spkr>, <&swm 0>, <&wcd9340 0>;
420*4882a593Smuzhiyun		};
421*4882a593Smuzhiyun	};
422*4882a593Smuzhiyun
423*4882a593Smuzhiyun	slimcap-dai-link {
424*4882a593Smuzhiyun		link-name = "SLIM Capture";
425*4882a593Smuzhiyun		cpu {
426*4882a593Smuzhiyun			sound-dai = <&q6afedai SLIMBUS_0_TX>;
427*4882a593Smuzhiyun		};
428*4882a593Smuzhiyun
429*4882a593Smuzhiyun		platform {
430*4882a593Smuzhiyun			sound-dai = <&q6routing>;
431*4882a593Smuzhiyun		};
432*4882a593Smuzhiyun
433*4882a593Smuzhiyun		codec {
434*4882a593Smuzhiyun			sound-dai = <&wcd9340 1>;
435*4882a593Smuzhiyun		};
436*4882a593Smuzhiyun	};
437*4882a593Smuzhiyun
438*4882a593Smuzhiyun	slim-wcd-dai-link {
439*4882a593Smuzhiyun		link-name = "SLIM WCD Playback";
440*4882a593Smuzhiyun		cpu {
441*4882a593Smuzhiyun			sound-dai = <&q6afedai SLIMBUS_1_RX>;
442*4882a593Smuzhiyun		};
443*4882a593Smuzhiyun
444*4882a593Smuzhiyun		platform {
445*4882a593Smuzhiyun			sound-dai = <&q6routing>;
446*4882a593Smuzhiyun		};
447*4882a593Smuzhiyun
448*4882a593Smuzhiyun		codec {
449*4882a593Smuzhiyun			sound-dai =  <&wcd9340 2>;
450*4882a593Smuzhiyun		};
451*4882a593Smuzhiyun	};
452*4882a593Smuzhiyun};
453*4882a593Smuzhiyun
454*4882a593Smuzhiyun&tlmm {
455*4882a593Smuzhiyun	gpio-reserved-ranges = <0 4>, <81 4>;
456*4882a593Smuzhiyun
457*4882a593Smuzhiyun	i2c3_hid_active: i2c2-hid-active {
458*4882a593Smuzhiyun		pins = "gpio37";
459*4882a593Smuzhiyun		function = "gpio";
460*4882a593Smuzhiyun
461*4882a593Smuzhiyun		input-enable;
462*4882a593Smuzhiyun		bias-pull-up;
463*4882a593Smuzhiyun		drive-strength = <2>;
464*4882a593Smuzhiyun	};
465*4882a593Smuzhiyun
466*4882a593Smuzhiyun	i2c5_hid_active: i2c5-hid-active {
467*4882a593Smuzhiyun		pins = "gpio125";
468*4882a593Smuzhiyun		function = "gpio";
469*4882a593Smuzhiyun
470*4882a593Smuzhiyun		input-enable;
471*4882a593Smuzhiyun		bias-pull-up;
472*4882a593Smuzhiyun		drive-strength = <2>;
473*4882a593Smuzhiyun	};
474*4882a593Smuzhiyun
475*4882a593Smuzhiyun	i2c11_hid_active: i2c11-hid-active {
476*4882a593Smuzhiyun		pins = "gpio92";
477*4882a593Smuzhiyun		function = "gpio";
478*4882a593Smuzhiyun
479*4882a593Smuzhiyun		input-enable;
480*4882a593Smuzhiyun		bias-pull-up;
481*4882a593Smuzhiyun		drive-strength = <2>;
482*4882a593Smuzhiyun	};
483*4882a593Smuzhiyun
484*4882a593Smuzhiyun	wcd_intr_default: wcd_intr_default {
485*4882a593Smuzhiyun		pins = "gpio54";
486*4882a593Smuzhiyun		function = "gpio";
487*4882a593Smuzhiyun
488*4882a593Smuzhiyun		input-enable;
489*4882a593Smuzhiyun		bias-pull-down;
490*4882a593Smuzhiyun		drive-strength = <2>;
491*4882a593Smuzhiyun	};
492*4882a593Smuzhiyun};
493*4882a593Smuzhiyun
494*4882a593Smuzhiyun&uart6 {
495*4882a593Smuzhiyun	status = "okay";
496*4882a593Smuzhiyun
497*4882a593Smuzhiyun	bluetooth {
498*4882a593Smuzhiyun		compatible = "qcom,wcn3990-bt";
499*4882a593Smuzhiyun
500*4882a593Smuzhiyun		vddio-supply = <&vreg_s4a_1p8>;
501*4882a593Smuzhiyun		vddxo-supply = <&vreg_l7a_1p8>;
502*4882a593Smuzhiyun		vddrf-supply = <&vreg_l17a_1p3>;
503*4882a593Smuzhiyun		vddch0-supply = <&vreg_l25a_3p3>;
504*4882a593Smuzhiyun		max-speed = <3200000>;
505*4882a593Smuzhiyun	};
506*4882a593Smuzhiyun};
507*4882a593Smuzhiyun
508*4882a593Smuzhiyun&ufs_mem_hc {
509*4882a593Smuzhiyun	status = "okay";
510*4882a593Smuzhiyun
511*4882a593Smuzhiyun	reset-gpios = <&tlmm 150 GPIO_ACTIVE_LOW>;
512*4882a593Smuzhiyun
513*4882a593Smuzhiyun	vcc-supply = <&vreg_l20a_2p95>;
514*4882a593Smuzhiyun	vcc-max-microamp = <600000>;
515*4882a593Smuzhiyun};
516*4882a593Smuzhiyun
517*4882a593Smuzhiyun&ufs_mem_phy {
518*4882a593Smuzhiyun	status = "okay";
519*4882a593Smuzhiyun
520*4882a593Smuzhiyun	vdda-phy-supply = <&vdda_ufs1_core>;
521*4882a593Smuzhiyun	vdda-pll-supply = <&vdda_ufs1_1p2>;
522*4882a593Smuzhiyun};
523*4882a593Smuzhiyun
524*4882a593Smuzhiyun&usb_1 {
525*4882a593Smuzhiyun	status = "okay";
526*4882a593Smuzhiyun};
527*4882a593Smuzhiyun
528*4882a593Smuzhiyun&usb_1_dwc3 {
529*4882a593Smuzhiyun	dr_mode = "host";
530*4882a593Smuzhiyun};
531*4882a593Smuzhiyun
532*4882a593Smuzhiyun&usb_1_hsphy {
533*4882a593Smuzhiyun	status = "okay";
534*4882a593Smuzhiyun
535*4882a593Smuzhiyun	vdd-supply = <&vdda_usb1_ss_core>;
536*4882a593Smuzhiyun	vdda-pll-supply = <&vdda_qusb_hs0_1p8>;
537*4882a593Smuzhiyun	vdda-phy-dpdm-supply = <&vdda_qusb_hs0_3p1>;
538*4882a593Smuzhiyun
539*4882a593Smuzhiyun	qcom,imp-res-offset-value = <8>;
540*4882a593Smuzhiyun	qcom,hstx-trim-value = <QUSB2_V2_HSTX_TRIM_21_6_MA>;
541*4882a593Smuzhiyun	qcom,preemphasis-level = <QUSB2_V2_PREEMPHASIS_5_PERCENT>;
542*4882a593Smuzhiyun	qcom,preemphasis-width = <QUSB2_V2_PREEMPHASIS_WIDTH_HALF_BIT>;
543*4882a593Smuzhiyun};
544*4882a593Smuzhiyun
545*4882a593Smuzhiyun&usb_1_qmpphy {
546*4882a593Smuzhiyun	status = "okay";
547*4882a593Smuzhiyun
548*4882a593Smuzhiyun	vdda-phy-supply = <&vdda_usb1_ss_1p2>;
549*4882a593Smuzhiyun	vdda-pll-supply = <&vdda_usb1_ss_core>;
550*4882a593Smuzhiyun};
551*4882a593Smuzhiyun
552*4882a593Smuzhiyun&usb_2 {
553*4882a593Smuzhiyun	status = "okay";
554*4882a593Smuzhiyun};
555*4882a593Smuzhiyun
556*4882a593Smuzhiyun&usb_2_dwc3 {
557*4882a593Smuzhiyun	dr_mode = "host";
558*4882a593Smuzhiyun};
559*4882a593Smuzhiyun
560*4882a593Smuzhiyun&usb_2_hsphy {
561*4882a593Smuzhiyun	status = "okay";
562*4882a593Smuzhiyun
563*4882a593Smuzhiyun	vdd-supply = <&vdda_usb2_ss_core>;
564*4882a593Smuzhiyun	vdda-pll-supply = <&vdda_qusb_hs0_1p8>;
565*4882a593Smuzhiyun	vdda-phy-dpdm-supply = <&vdda_qusb_hs0_3p1>;
566*4882a593Smuzhiyun
567*4882a593Smuzhiyun	qcom,imp-res-offset-value = <8>;
568*4882a593Smuzhiyun	qcom,hstx-trim-value = <QUSB2_V2_HSTX_TRIM_22_8_MA>;
569*4882a593Smuzhiyun};
570*4882a593Smuzhiyun
571*4882a593Smuzhiyun&usb_2_qmpphy {
572*4882a593Smuzhiyun	status = "okay";
573*4882a593Smuzhiyun
574*4882a593Smuzhiyun	vdda-phy-supply = <&vdda_usb2_ss_1p2>;
575*4882a593Smuzhiyun	vdda-pll-supply = <&vdda_usb2_ss_core>;
576*4882a593Smuzhiyun};
577*4882a593Smuzhiyun
578*4882a593Smuzhiyun&wcd9340{
579*4882a593Smuzhiyun	pinctrl-0 = <&wcd_intr_default>;
580*4882a593Smuzhiyun	pinctrl-names = "default";
581*4882a593Smuzhiyun	clock-names = "extclk";
582*4882a593Smuzhiyun	clocks = <&rpmhcc RPMH_LN_BB_CLK2>;
583*4882a593Smuzhiyun	reset-gpios = <&tlmm 64 0>;
584*4882a593Smuzhiyun	vdd-buck-supply = <&vreg_s4a_1p8>;
585*4882a593Smuzhiyun	vdd-buck-sido-supply = <&vreg_s4a_1p8>;
586*4882a593Smuzhiyun	vdd-tx-supply = <&vreg_s4a_1p8>;
587*4882a593Smuzhiyun	vdd-rx-supply = <&vreg_s4a_1p8>;
588*4882a593Smuzhiyun	vdd-io-supply = <&vreg_s4a_1p8>;
589*4882a593Smuzhiyun
590*4882a593Smuzhiyun	swm: swm@c85 {
591*4882a593Smuzhiyun		left_spkr: wsa8810-left{
592*4882a593Smuzhiyun			compatible = "sdw10217211000";
593*4882a593Smuzhiyun			reg = <0 3>;
594*4882a593Smuzhiyun			powerdown-gpios = <&wcdgpio 1 GPIO_ACTIVE_HIGH>;
595*4882a593Smuzhiyun			#thermal-sensor-cells = <0>;
596*4882a593Smuzhiyun			sound-name-prefix = "SpkrLeft";
597*4882a593Smuzhiyun			#sound-dai-cells = <0>;
598*4882a593Smuzhiyun		};
599*4882a593Smuzhiyun
600*4882a593Smuzhiyun		right_spkr: wsa8810-right{
601*4882a593Smuzhiyun			compatible = "sdw10217211000";
602*4882a593Smuzhiyun			powerdown-gpios = <&wcdgpio 2 GPIO_ACTIVE_HIGH>;
603*4882a593Smuzhiyun			reg = <0 4>;
604*4882a593Smuzhiyun			#thermal-sensor-cells = <0>;
605*4882a593Smuzhiyun			sound-name-prefix = "SpkrRight";
606*4882a593Smuzhiyun			#sound-dai-cells = <0>;
607*4882a593Smuzhiyun		};
608*4882a593Smuzhiyun	};
609*4882a593Smuzhiyun};
610*4882a593Smuzhiyun
611*4882a593Smuzhiyun&wifi {
612*4882a593Smuzhiyun	status = "okay";
613*4882a593Smuzhiyun
614*4882a593Smuzhiyun	vdd-0.8-cx-mx-supply = <&vreg_l5a_0p8>;
615*4882a593Smuzhiyun	vdd-1.8-xo-supply = <&vreg_l7a_1p8>;
616*4882a593Smuzhiyun	vdd-1.3-rfa-supply = <&vreg_l17a_1p3>;
617*4882a593Smuzhiyun	vdd-3.3-ch0-supply = <&vreg_l25a_3p3>;
618*4882a593Smuzhiyun
619*4882a593Smuzhiyun	qcom,snoc-host-cap-8bit-quirk;
620*4882a593Smuzhiyun};
621