xref: /freebsd/sys/contrib/device-tree/src/arm64/qcom/sc8280xp-microsoft-arcata.dts (revision 5f62a964e9f8abc6a05d8338273fadd154f0a206)
1*5f62a964SEmmanuel Vadot// SPDX-License-Identifier: BSD-3-Clause
2*5f62a964SEmmanuel Vadot/*
3*5f62a964SEmmanuel Vadot * Copyright (c) 2024, Jérôme de Bretagne <jerome.debretagne@gmail.com>
4*5f62a964SEmmanuel Vadot */
5*5f62a964SEmmanuel Vadot
6*5f62a964SEmmanuel Vadot/dts-v1/;
7*5f62a964SEmmanuel Vadot
8*5f62a964SEmmanuel Vadot#include <dt-bindings/gpio/gpio.h>
9*5f62a964SEmmanuel Vadot#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
10*5f62a964SEmmanuel Vadot
11*5f62a964SEmmanuel Vadot#include "sc8280xp.dtsi"
12*5f62a964SEmmanuel Vadot#include "sc8280xp-pmics.dtsi"
13*5f62a964SEmmanuel Vadot
14*5f62a964SEmmanuel Vadot/ {
15*5f62a964SEmmanuel Vadot	model = "Microsoft Surface Pro 9 5G";
16*5f62a964SEmmanuel Vadot	compatible = "microsoft,arcata", "qcom,sc8280xp";
17*5f62a964SEmmanuel Vadot
18*5f62a964SEmmanuel Vadot	aliases {
19*5f62a964SEmmanuel Vadot		serial0 = &uart18;
20*5f62a964SEmmanuel Vadot		serial1 = &uart2;
21*5f62a964SEmmanuel Vadot	};
22*5f62a964SEmmanuel Vadot
23*5f62a964SEmmanuel Vadot	wcd938x: audio-codec {
24*5f62a964SEmmanuel Vadot		compatible = "qcom,wcd9380-codec";
25*5f62a964SEmmanuel Vadot
26*5f62a964SEmmanuel Vadot		pinctrl-0 = <&wcd_default>;
27*5f62a964SEmmanuel Vadot		pinctrl-names = "default";
28*5f62a964SEmmanuel Vadot
29*5f62a964SEmmanuel Vadot		reset-gpios = <&tlmm 106 GPIO_ACTIVE_LOW>;
30*5f62a964SEmmanuel Vadot
31*5f62a964SEmmanuel Vadot		vdd-buck-supply = <&vreg_s10b>;
32*5f62a964SEmmanuel Vadot		vdd-rxtx-supply = <&vreg_s10b>;
33*5f62a964SEmmanuel Vadot		vdd-io-supply = <&vreg_s10b>;
34*5f62a964SEmmanuel Vadot		vdd-mic-bias-supply = <&vreg_bob>;
35*5f62a964SEmmanuel Vadot
36*5f62a964SEmmanuel Vadot		qcom,micbias1-microvolt = <1800000>;
37*5f62a964SEmmanuel Vadot		qcom,micbias2-microvolt = <1800000>;
38*5f62a964SEmmanuel Vadot		qcom,micbias3-microvolt = <1800000>;
39*5f62a964SEmmanuel Vadot		qcom,micbias4-microvolt = <1800000>;
40*5f62a964SEmmanuel Vadot		qcom,mbhc-buttons-vthreshold-microvolt = <75000 150000 237000 500000 500000 500000 500000 500000>;
41*5f62a964SEmmanuel Vadot		qcom,mbhc-headset-vthreshold-microvolt = <1700000>;
42*5f62a964SEmmanuel Vadot		qcom,mbhc-headphone-vthreshold-microvolt = <50000>;
43*5f62a964SEmmanuel Vadot		qcom,rx-device = <&wcd_rx>;
44*5f62a964SEmmanuel Vadot		qcom,tx-device = <&wcd_tx>;
45*5f62a964SEmmanuel Vadot
46*5f62a964SEmmanuel Vadot		#sound-dai-cells = <1>;
47*5f62a964SEmmanuel Vadot	};
48*5f62a964SEmmanuel Vadot
49*5f62a964SEmmanuel Vadot	pmic-glink {
50*5f62a964SEmmanuel Vadot		compatible = "qcom,sc8280xp-pmic-glink", "qcom,pmic-glink";
51*5f62a964SEmmanuel Vadot
52*5f62a964SEmmanuel Vadot		#address-cells = <1>;
53*5f62a964SEmmanuel Vadot		#size-cells = <0>;
54*5f62a964SEmmanuel Vadot
55*5f62a964SEmmanuel Vadot		/* Left-side top port */
56*5f62a964SEmmanuel Vadot		connector@0 {
57*5f62a964SEmmanuel Vadot			compatible = "usb-c-connector";
58*5f62a964SEmmanuel Vadot			reg = <0>;
59*5f62a964SEmmanuel Vadot			power-role = "dual";
60*5f62a964SEmmanuel Vadot			data-role = "dual";
61*5f62a964SEmmanuel Vadot
62*5f62a964SEmmanuel Vadot			ports {
63*5f62a964SEmmanuel Vadot				#address-cells = <1>;
64*5f62a964SEmmanuel Vadot				#size-cells = <0>;
65*5f62a964SEmmanuel Vadot
66*5f62a964SEmmanuel Vadot				port@0 {
67*5f62a964SEmmanuel Vadot					reg = <0>;
68*5f62a964SEmmanuel Vadot
69*5f62a964SEmmanuel Vadot					pmic_glink_con0_hs: endpoint {
70*5f62a964SEmmanuel Vadot						remote-endpoint = <&usb_0_dwc3_hs>;
71*5f62a964SEmmanuel Vadot					};
72*5f62a964SEmmanuel Vadot				};
73*5f62a964SEmmanuel Vadot
74*5f62a964SEmmanuel Vadot				port@1 {
75*5f62a964SEmmanuel Vadot					reg = <1>;
76*5f62a964SEmmanuel Vadot
77*5f62a964SEmmanuel Vadot					pmic_glink_con0_ss: endpoint {
78*5f62a964SEmmanuel Vadot						remote-endpoint = <&usb_0_qmpphy_out>;
79*5f62a964SEmmanuel Vadot					};
80*5f62a964SEmmanuel Vadot				};
81*5f62a964SEmmanuel Vadot
82*5f62a964SEmmanuel Vadot				port@2 {
83*5f62a964SEmmanuel Vadot					reg = <2>;
84*5f62a964SEmmanuel Vadot
85*5f62a964SEmmanuel Vadot					pmic_glink_con0_sbu: endpoint {
86*5f62a964SEmmanuel Vadot						remote-endpoint = <&usb0_sbu_mux>;
87*5f62a964SEmmanuel Vadot					};
88*5f62a964SEmmanuel Vadot				};
89*5f62a964SEmmanuel Vadot			};
90*5f62a964SEmmanuel Vadot		};
91*5f62a964SEmmanuel Vadot
92*5f62a964SEmmanuel Vadot		/* Left-side bottom port */
93*5f62a964SEmmanuel Vadot		connector@1 {
94*5f62a964SEmmanuel Vadot			compatible = "usb-c-connector";
95*5f62a964SEmmanuel Vadot			reg = <1>;
96*5f62a964SEmmanuel Vadot			power-role = "dual";
97*5f62a964SEmmanuel Vadot			data-role = "dual";
98*5f62a964SEmmanuel Vadot
99*5f62a964SEmmanuel Vadot			ports {
100*5f62a964SEmmanuel Vadot				#address-cells = <1>;
101*5f62a964SEmmanuel Vadot				#size-cells = <0>;
102*5f62a964SEmmanuel Vadot
103*5f62a964SEmmanuel Vadot				port@0 {
104*5f62a964SEmmanuel Vadot					reg = <0>;
105*5f62a964SEmmanuel Vadot
106*5f62a964SEmmanuel Vadot					pmic_glink_con1_hs: endpoint {
107*5f62a964SEmmanuel Vadot						remote-endpoint = <&usb_1_dwc3_hs>;
108*5f62a964SEmmanuel Vadot					};
109*5f62a964SEmmanuel Vadot				};
110*5f62a964SEmmanuel Vadot
111*5f62a964SEmmanuel Vadot				port@1 {
112*5f62a964SEmmanuel Vadot					reg = <1>;
113*5f62a964SEmmanuel Vadot
114*5f62a964SEmmanuel Vadot					pmic_glink_con1_ss: endpoint {
115*5f62a964SEmmanuel Vadot						remote-endpoint = <&usb_1_qmpphy_out>;
116*5f62a964SEmmanuel Vadot					};
117*5f62a964SEmmanuel Vadot				};
118*5f62a964SEmmanuel Vadot
119*5f62a964SEmmanuel Vadot				port@2 {
120*5f62a964SEmmanuel Vadot					reg = <2>;
121*5f62a964SEmmanuel Vadot
122*5f62a964SEmmanuel Vadot					pmic_glink_con1_sbu: endpoint {
123*5f62a964SEmmanuel Vadot						remote-endpoint = <&usb1_sbu_mux>;
124*5f62a964SEmmanuel Vadot					};
125*5f62a964SEmmanuel Vadot				};
126*5f62a964SEmmanuel Vadot			};
127*5f62a964SEmmanuel Vadot		};
128*5f62a964SEmmanuel Vadot	};
129*5f62a964SEmmanuel Vadot
130*5f62a964SEmmanuel Vadot	vreg_nvme: regulator-nvme {
131*5f62a964SEmmanuel Vadot		compatible = "regulator-fixed";
132*5f62a964SEmmanuel Vadot
133*5f62a964SEmmanuel Vadot		regulator-name = "VCC3_SSD";
134*5f62a964SEmmanuel Vadot		regulator-min-microvolt = <3300000>;
135*5f62a964SEmmanuel Vadot		regulator-max-microvolt = <3300000>;
136*5f62a964SEmmanuel Vadot
137*5f62a964SEmmanuel Vadot		gpio = <&tlmm 135 GPIO_ACTIVE_HIGH>;
138*5f62a964SEmmanuel Vadot		enable-active-high;
139*5f62a964SEmmanuel Vadot
140*5f62a964SEmmanuel Vadot		pinctrl-0 = <&nvme_reg_en>;
141*5f62a964SEmmanuel Vadot		pinctrl-names = "default";
142*5f62a964SEmmanuel Vadot
143*5f62a964SEmmanuel Vadot		regulator-boot-on;
144*5f62a964SEmmanuel Vadot	};
145*5f62a964SEmmanuel Vadot
146*5f62a964SEmmanuel Vadot	vreg_vph_pwr: regulator-vph-pwr {
147*5f62a964SEmmanuel Vadot		compatible = "regulator-fixed";
148*5f62a964SEmmanuel Vadot
149*5f62a964SEmmanuel Vadot		regulator-name = "VPH_VCC3R9";
150*5f62a964SEmmanuel Vadot		regulator-min-microvolt = <3900000>;
151*5f62a964SEmmanuel Vadot		regulator-max-microvolt = <3900000>;
152*5f62a964SEmmanuel Vadot
153*5f62a964SEmmanuel Vadot		regulator-always-on;
154*5f62a964SEmmanuel Vadot	};
155*5f62a964SEmmanuel Vadot
156*5f62a964SEmmanuel Vadot	vreg_wlan: regulator-wlan {
157*5f62a964SEmmanuel Vadot		compatible = "regulator-fixed";
158*5f62a964SEmmanuel Vadot
159*5f62a964SEmmanuel Vadot		regulator-name = "VCC_WLAN_3R9";
160*5f62a964SEmmanuel Vadot		regulator-min-microvolt = <3900000>;
161*5f62a964SEmmanuel Vadot		regulator-max-microvolt = <3900000>;
162*5f62a964SEmmanuel Vadot
163*5f62a964SEmmanuel Vadot		gpio = <&pmr735a_gpios 1 GPIO_ACTIVE_HIGH>;
164*5f62a964SEmmanuel Vadot		enable-active-high;
165*5f62a964SEmmanuel Vadot
166*5f62a964SEmmanuel Vadot		pinctrl-0 = <&hastings_reg_en>;
167*5f62a964SEmmanuel Vadot		pinctrl-names = "default";
168*5f62a964SEmmanuel Vadot
169*5f62a964SEmmanuel Vadot		regulator-boot-on;
170*5f62a964SEmmanuel Vadot	};
171*5f62a964SEmmanuel Vadot
172*5f62a964SEmmanuel Vadot	vreg_wwan: regulator-wwan {
173*5f62a964SEmmanuel Vadot		compatible = "regulator-fixed";
174*5f62a964SEmmanuel Vadot
175*5f62a964SEmmanuel Vadot		regulator-name = "VCC3B_WAN";
176*5f62a964SEmmanuel Vadot		regulator-min-microvolt = <3300000>;
177*5f62a964SEmmanuel Vadot		regulator-max-microvolt = <3300000>;
178*5f62a964SEmmanuel Vadot
179*5f62a964SEmmanuel Vadot		gpio = <&pmc8280_2_gpios 1 GPIO_ACTIVE_HIGH>;
180*5f62a964SEmmanuel Vadot		enable-active-high;
181*5f62a964SEmmanuel Vadot
182*5f62a964SEmmanuel Vadot		pinctrl-0 = <&wwan_sw_en>;
183*5f62a964SEmmanuel Vadot		pinctrl-names = "default";
184*5f62a964SEmmanuel Vadot
185*5f62a964SEmmanuel Vadot		regulator-boot-on;
186*5f62a964SEmmanuel Vadot	};
187*5f62a964SEmmanuel Vadot
188*5f62a964SEmmanuel Vadot	reserved-memory {
189*5f62a964SEmmanuel Vadot		gpu_mem: gpu-mem@8bf00000 {
190*5f62a964SEmmanuel Vadot			reg = <0 0x8bf00000 0 0x2000>;
191*5f62a964SEmmanuel Vadot			no-map;
192*5f62a964SEmmanuel Vadot		};
193*5f62a964SEmmanuel Vadot
194*5f62a964SEmmanuel Vadot		linux,cma {
195*5f62a964SEmmanuel Vadot			compatible = "shared-dma-pool";
196*5f62a964SEmmanuel Vadot			size = <0x0 0x8000000>;
197*5f62a964SEmmanuel Vadot			reusable;
198*5f62a964SEmmanuel Vadot			linux,cma-default;
199*5f62a964SEmmanuel Vadot		};
200*5f62a964SEmmanuel Vadot	};
201*5f62a964SEmmanuel Vadot
202*5f62a964SEmmanuel Vadot	thermal-zones {
203*5f62a964SEmmanuel Vadot		skin-temp-thermal {
204*5f62a964SEmmanuel Vadot			polling-delay-passive = <250>;
205*5f62a964SEmmanuel Vadot
206*5f62a964SEmmanuel Vadot			thermal-sensors = <&pmk8280_adc_tm 5>;
207*5f62a964SEmmanuel Vadot
208*5f62a964SEmmanuel Vadot			trips {
209*5f62a964SEmmanuel Vadot				skin_temp_alert0: trip-point0 {
210*5f62a964SEmmanuel Vadot					temperature = <55000>;
211*5f62a964SEmmanuel Vadot					hysteresis = <1000>;
212*5f62a964SEmmanuel Vadot					type = "passive";
213*5f62a964SEmmanuel Vadot				};
214*5f62a964SEmmanuel Vadot
215*5f62a964SEmmanuel Vadot				skin_temp_alert1: trip-point1 {
216*5f62a964SEmmanuel Vadot					temperature = <58000>;
217*5f62a964SEmmanuel Vadot					hysteresis = <1000>;
218*5f62a964SEmmanuel Vadot					type = "passive";
219*5f62a964SEmmanuel Vadot				};
220*5f62a964SEmmanuel Vadot
221*5f62a964SEmmanuel Vadot				skin-temp-crit {
222*5f62a964SEmmanuel Vadot					temperature = <73000>;
223*5f62a964SEmmanuel Vadot					hysteresis = <1000>;
224*5f62a964SEmmanuel Vadot					type = "critical";
225*5f62a964SEmmanuel Vadot				};
226*5f62a964SEmmanuel Vadot			};
227*5f62a964SEmmanuel Vadot
228*5f62a964SEmmanuel Vadot			cooling-maps {
229*5f62a964SEmmanuel Vadot				map0 {
230*5f62a964SEmmanuel Vadot					trip = <&skin_temp_alert0>;
231*5f62a964SEmmanuel Vadot					cooling-device = <&cpu4 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
232*5f62a964SEmmanuel Vadot							 <&cpu5 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
233*5f62a964SEmmanuel Vadot							 <&cpu6 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
234*5f62a964SEmmanuel Vadot							 <&cpu7 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
235*5f62a964SEmmanuel Vadot				};
236*5f62a964SEmmanuel Vadot
237*5f62a964SEmmanuel Vadot				map1 {
238*5f62a964SEmmanuel Vadot					trip = <&skin_temp_alert1>;
239*5f62a964SEmmanuel Vadot					cooling-device = <&cpu4 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
240*5f62a964SEmmanuel Vadot							 <&cpu5 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
241*5f62a964SEmmanuel Vadot							 <&cpu6 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
242*5f62a964SEmmanuel Vadot							 <&cpu7 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
243*5f62a964SEmmanuel Vadot				};
244*5f62a964SEmmanuel Vadot			};
245*5f62a964SEmmanuel Vadot		};
246*5f62a964SEmmanuel Vadot	};
247*5f62a964SEmmanuel Vadot
248*5f62a964SEmmanuel Vadot	usb0-sbu-mux {
249*5f62a964SEmmanuel Vadot		compatible = "pericom,pi3usb102", "gpio-sbu-mux";
250*5f62a964SEmmanuel Vadot
251*5f62a964SEmmanuel Vadot		enable-gpios = <&tlmm 101 GPIO_ACTIVE_LOW>;
252*5f62a964SEmmanuel Vadot		select-gpios = <&tlmm 164 GPIO_ACTIVE_HIGH>;
253*5f62a964SEmmanuel Vadot
254*5f62a964SEmmanuel Vadot		pinctrl-0 = <&usb0_sbu_default>;
255*5f62a964SEmmanuel Vadot		pinctrl-names = "default";
256*5f62a964SEmmanuel Vadot
257*5f62a964SEmmanuel Vadot		mode-switch;
258*5f62a964SEmmanuel Vadot		orientation-switch;
259*5f62a964SEmmanuel Vadot
260*5f62a964SEmmanuel Vadot		port {
261*5f62a964SEmmanuel Vadot			usb0_sbu_mux: endpoint {
262*5f62a964SEmmanuel Vadot				remote-endpoint = <&pmic_glink_con0_sbu>;
263*5f62a964SEmmanuel Vadot			};
264*5f62a964SEmmanuel Vadot		};
265*5f62a964SEmmanuel Vadot	};
266*5f62a964SEmmanuel Vadot
267*5f62a964SEmmanuel Vadot	usb1-sbu-mux {
268*5f62a964SEmmanuel Vadot		compatible = "pericom,pi3usb102", "gpio-sbu-mux";
269*5f62a964SEmmanuel Vadot
270*5f62a964SEmmanuel Vadot		enable-gpios = <&tlmm 48 GPIO_ACTIVE_LOW>;
271*5f62a964SEmmanuel Vadot		select-gpios = <&tlmm 47 GPIO_ACTIVE_HIGH>;
272*5f62a964SEmmanuel Vadot
273*5f62a964SEmmanuel Vadot		pinctrl-0 = <&usb1_sbu_default>;
274*5f62a964SEmmanuel Vadot		pinctrl-names = "default";
275*5f62a964SEmmanuel Vadot
276*5f62a964SEmmanuel Vadot		mode-switch;
277*5f62a964SEmmanuel Vadot		orientation-switch;
278*5f62a964SEmmanuel Vadot
279*5f62a964SEmmanuel Vadot		port {
280*5f62a964SEmmanuel Vadot			usb1_sbu_mux: endpoint {
281*5f62a964SEmmanuel Vadot				remote-endpoint = <&pmic_glink_con1_sbu>;
282*5f62a964SEmmanuel Vadot			};
283*5f62a964SEmmanuel Vadot		};
284*5f62a964SEmmanuel Vadot	};
285*5f62a964SEmmanuel Vadot};
286*5f62a964SEmmanuel Vadot
287*5f62a964SEmmanuel Vadot&apps_rsc {
288*5f62a964SEmmanuel Vadot	regulators-0 {
289*5f62a964SEmmanuel Vadot		compatible = "qcom,pm8350-rpmh-regulators";
290*5f62a964SEmmanuel Vadot		qcom,pmic-id = "b";
291*5f62a964SEmmanuel Vadot
292*5f62a964SEmmanuel Vadot		vdd-l1-l4-supply = <&vreg_s12b>;
293*5f62a964SEmmanuel Vadot		vdd-l2-l7-supply = <&vreg_bob>;
294*5f62a964SEmmanuel Vadot		vdd-l3-l5-supply = <&vreg_s11b>;
295*5f62a964SEmmanuel Vadot		vdd-l6-l9-l10-supply = <&vreg_s12b>;
296*5f62a964SEmmanuel Vadot		vdd-l8-supply = <&vreg_s12b>;
297*5f62a964SEmmanuel Vadot
298*5f62a964SEmmanuel Vadot		vreg_s10b: smps10 {
299*5f62a964SEmmanuel Vadot			regulator-name = "vreg_s10b";
300*5f62a964SEmmanuel Vadot			regulator-min-microvolt = <1800000>;
301*5f62a964SEmmanuel Vadot			regulator-max-microvolt = <1800000>;
302*5f62a964SEmmanuel Vadot			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
303*5f62a964SEmmanuel Vadot			regulator-always-on;
304*5f62a964SEmmanuel Vadot		};
305*5f62a964SEmmanuel Vadot
306*5f62a964SEmmanuel Vadot		vreg_s11b: smps11 {
307*5f62a964SEmmanuel Vadot			regulator-name = "vreg_s11b";
308*5f62a964SEmmanuel Vadot			regulator-min-microvolt = <1272000>;
309*5f62a964SEmmanuel Vadot			regulator-max-microvolt = <1272000>;
310*5f62a964SEmmanuel Vadot			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
311*5f62a964SEmmanuel Vadot			regulator-always-on;
312*5f62a964SEmmanuel Vadot		};
313*5f62a964SEmmanuel Vadot
314*5f62a964SEmmanuel Vadot		vreg_s12b: smps12 {
315*5f62a964SEmmanuel Vadot			regulator-name = "vreg_s12b";
316*5f62a964SEmmanuel Vadot			regulator-min-microvolt = <984000>;
317*5f62a964SEmmanuel Vadot			regulator-max-microvolt = <984000>;
318*5f62a964SEmmanuel Vadot			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
319*5f62a964SEmmanuel Vadot			regulator-always-on;
320*5f62a964SEmmanuel Vadot		};
321*5f62a964SEmmanuel Vadot
322*5f62a964SEmmanuel Vadot		vreg_l3b: ldo3 {
323*5f62a964SEmmanuel Vadot			regulator-name = "vreg_l3b";
324*5f62a964SEmmanuel Vadot			regulator-min-microvolt = <1200000>;
325*5f62a964SEmmanuel Vadot			regulator-max-microvolt = <1200000>;
326*5f62a964SEmmanuel Vadot			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
327*5f62a964SEmmanuel Vadot			regulator-boot-on;
328*5f62a964SEmmanuel Vadot		};
329*5f62a964SEmmanuel Vadot
330*5f62a964SEmmanuel Vadot		vreg_l4b: ldo4 {
331*5f62a964SEmmanuel Vadot			regulator-name = "vreg_l4b";
332*5f62a964SEmmanuel Vadot			regulator-min-microvolt = <912000>;
333*5f62a964SEmmanuel Vadot			regulator-max-microvolt = <912000>;
334*5f62a964SEmmanuel Vadot			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
335*5f62a964SEmmanuel Vadot		};
336*5f62a964SEmmanuel Vadot
337*5f62a964SEmmanuel Vadot		vreg_l6b: ldo6 {
338*5f62a964SEmmanuel Vadot			regulator-name = "vreg_l6b";
339*5f62a964SEmmanuel Vadot			regulator-min-microvolt = <880000>;
340*5f62a964SEmmanuel Vadot			regulator-max-microvolt = <880000>;
341*5f62a964SEmmanuel Vadot			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
342*5f62a964SEmmanuel Vadot			regulator-boot-on;
343*5f62a964SEmmanuel Vadot			regulator-always-on;	// FIXME: VDD_A_EDP_0_0P9
344*5f62a964SEmmanuel Vadot		};
345*5f62a964SEmmanuel Vadot	};
346*5f62a964SEmmanuel Vadot
347*5f62a964SEmmanuel Vadot	regulators-1 {
348*5f62a964SEmmanuel Vadot		compatible = "qcom,pm8350c-rpmh-regulators";
349*5f62a964SEmmanuel Vadot		qcom,pmic-id = "c";
350*5f62a964SEmmanuel Vadot
351*5f62a964SEmmanuel Vadot		vdd-bob-supply = <&vreg_vph_pwr>;
352*5f62a964SEmmanuel Vadot		vdd-l1-l12-supply = <&vreg_s1c>;
353*5f62a964SEmmanuel Vadot		vdd-l2-l8-supply = <&vreg_s1c>;
354*5f62a964SEmmanuel Vadot		vdd-l3-l4-l5-l7-l13-supply = <&vreg_bob>;
355*5f62a964SEmmanuel Vadot		vdd-l6-l9-l11-supply = <&vreg_bob>;
356*5f62a964SEmmanuel Vadot		vdd-l10-supply = <&vreg_s11b>;
357*5f62a964SEmmanuel Vadot
358*5f62a964SEmmanuel Vadot		vreg_s1c: smps1 {
359*5f62a964SEmmanuel Vadot			regulator-name = "vreg_s1c";
360*5f62a964SEmmanuel Vadot			regulator-min-microvolt = <1880000>;
361*5f62a964SEmmanuel Vadot			regulator-max-microvolt = <1900000>;
362*5f62a964SEmmanuel Vadot			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
363*5f62a964SEmmanuel Vadot			regulator-always-on;
364*5f62a964SEmmanuel Vadot		};
365*5f62a964SEmmanuel Vadot
366*5f62a964SEmmanuel Vadot		vreg_l1c: ldo1 {
367*5f62a964SEmmanuel Vadot			regulator-name = "vreg_l1c";
368*5f62a964SEmmanuel Vadot			regulator-min-microvolt = <1800000>;
369*5f62a964SEmmanuel Vadot			regulator-max-microvolt = <1800000>;
370*5f62a964SEmmanuel Vadot			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
371*5f62a964SEmmanuel Vadot		};
372*5f62a964SEmmanuel Vadot
373*5f62a964SEmmanuel Vadot		vreg_l12c: ldo12 {
374*5f62a964SEmmanuel Vadot			regulator-name = "vreg_l12c";
375*5f62a964SEmmanuel Vadot			regulator-min-microvolt = <1800000>;
376*5f62a964SEmmanuel Vadot			regulator-max-microvolt = <1800000>;
377*5f62a964SEmmanuel Vadot			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
378*5f62a964SEmmanuel Vadot		};
379*5f62a964SEmmanuel Vadot
380*5f62a964SEmmanuel Vadot		vreg_l13c: ldo13 {
381*5f62a964SEmmanuel Vadot			regulator-name = "vreg_l13c";
382*5f62a964SEmmanuel Vadot			regulator-min-microvolt = <3072000>;
383*5f62a964SEmmanuel Vadot			regulator-max-microvolt = <3072000>;
384*5f62a964SEmmanuel Vadot			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
385*5f62a964SEmmanuel Vadot		};
386*5f62a964SEmmanuel Vadot
387*5f62a964SEmmanuel Vadot		vreg_bob: bob {
388*5f62a964SEmmanuel Vadot			regulator-name = "vreg_bob";
389*5f62a964SEmmanuel Vadot			regulator-min-microvolt = <3008000>;
390*5f62a964SEmmanuel Vadot			regulator-max-microvolt = <3960000>;
391*5f62a964SEmmanuel Vadot			regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
392*5f62a964SEmmanuel Vadot			regulator-always-on;
393*5f62a964SEmmanuel Vadot		};
394*5f62a964SEmmanuel Vadot	};
395*5f62a964SEmmanuel Vadot
396*5f62a964SEmmanuel Vadot	regulators-2 {
397*5f62a964SEmmanuel Vadot		compatible = "qcom,pm8350-rpmh-regulators";
398*5f62a964SEmmanuel Vadot		qcom,pmic-id = "d";
399*5f62a964SEmmanuel Vadot
400*5f62a964SEmmanuel Vadot		vdd-l1-l4-supply = <&vreg_s11b>;
401*5f62a964SEmmanuel Vadot		vdd-l2-l7-supply = <&vreg_bob>;
402*5f62a964SEmmanuel Vadot		vdd-l3-l5-supply = <&vreg_s11b>;
403*5f62a964SEmmanuel Vadot		vdd-l6-l9-l10-supply = <&vreg_s12b>;
404*5f62a964SEmmanuel Vadot		vdd-l8-supply = <&vreg_s12b>;
405*5f62a964SEmmanuel Vadot
406*5f62a964SEmmanuel Vadot		vreg_l3d: ldo3 {
407*5f62a964SEmmanuel Vadot			regulator-name = "vreg_l3d";
408*5f62a964SEmmanuel Vadot			regulator-min-microvolt = <1200000>;
409*5f62a964SEmmanuel Vadot			regulator-max-microvolt = <1200000>;
410*5f62a964SEmmanuel Vadot			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
411*5f62a964SEmmanuel Vadot		};
412*5f62a964SEmmanuel Vadot
413*5f62a964SEmmanuel Vadot		vreg_l4d: ldo4 {
414*5f62a964SEmmanuel Vadot			regulator-name = "vreg_l4d";
415*5f62a964SEmmanuel Vadot			regulator-min-microvolt = <1200000>;
416*5f62a964SEmmanuel Vadot			regulator-max-microvolt = <1200000>;
417*5f62a964SEmmanuel Vadot			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
418*5f62a964SEmmanuel Vadot		};
419*5f62a964SEmmanuel Vadot
420*5f62a964SEmmanuel Vadot		vreg_l6d: ldo6 {
421*5f62a964SEmmanuel Vadot			regulator-name = "vreg_l6d";
422*5f62a964SEmmanuel Vadot			regulator-min-microvolt = <880000>;
423*5f62a964SEmmanuel Vadot			regulator-max-microvolt = <880000>;
424*5f62a964SEmmanuel Vadot			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
425*5f62a964SEmmanuel Vadot		};
426*5f62a964SEmmanuel Vadot
427*5f62a964SEmmanuel Vadot		vreg_l7d: ldo7 {
428*5f62a964SEmmanuel Vadot			regulator-name = "vreg_l7d";
429*5f62a964SEmmanuel Vadot			regulator-min-microvolt = <3072000>;
430*5f62a964SEmmanuel Vadot			regulator-max-microvolt = <3072000>;
431*5f62a964SEmmanuel Vadot			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
432*5f62a964SEmmanuel Vadot		};
433*5f62a964SEmmanuel Vadot
434*5f62a964SEmmanuel Vadot		vreg_l9d: ldo9 {
435*5f62a964SEmmanuel Vadot			regulator-name = "vreg_l9d";
436*5f62a964SEmmanuel Vadot			regulator-min-microvolt = <912000>;
437*5f62a964SEmmanuel Vadot			regulator-max-microvolt = <912000>;
438*5f62a964SEmmanuel Vadot			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
439*5f62a964SEmmanuel Vadot		};
440*5f62a964SEmmanuel Vadot	};
441*5f62a964SEmmanuel Vadot};
442*5f62a964SEmmanuel Vadot
443*5f62a964SEmmanuel Vadot&dispcc0 {
444*5f62a964SEmmanuel Vadot	status = "okay";
445*5f62a964SEmmanuel Vadot};
446*5f62a964SEmmanuel Vadot
447*5f62a964SEmmanuel Vadot&dispcc1 {
448*5f62a964SEmmanuel Vadot	status = "okay";
449*5f62a964SEmmanuel Vadot};
450*5f62a964SEmmanuel Vadot
451*5f62a964SEmmanuel Vadot&gpu {
452*5f62a964SEmmanuel Vadot	status = "okay";
453*5f62a964SEmmanuel Vadot
454*5f62a964SEmmanuel Vadot	zap-shader {
455*5f62a964SEmmanuel Vadot		memory-region = <&gpu_mem>;
456*5f62a964SEmmanuel Vadot		firmware-name = "qcom/sc8280xp/MICROSOFT/SurfacePro9/qcdxkmsuc8280.mbn";
457*5f62a964SEmmanuel Vadot	};
458*5f62a964SEmmanuel Vadot};
459*5f62a964SEmmanuel Vadot
460*5f62a964SEmmanuel Vadot&mdss0 {
461*5f62a964SEmmanuel Vadot	status = "okay";
462*5f62a964SEmmanuel Vadot};
463*5f62a964SEmmanuel Vadot
464*5f62a964SEmmanuel Vadot&mdss0_dp0 {
465*5f62a964SEmmanuel Vadot	status = "okay";
466*5f62a964SEmmanuel Vadot};
467*5f62a964SEmmanuel Vadot
468*5f62a964SEmmanuel Vadot&mdss0_dp0_out {
469*5f62a964SEmmanuel Vadot	data-lanes = <0 1>;
470*5f62a964SEmmanuel Vadot	remote-endpoint = <&usb_0_qmpphy_dp_in>;
471*5f62a964SEmmanuel Vadot};
472*5f62a964SEmmanuel Vadot
473*5f62a964SEmmanuel Vadot&mdss0_dp1 {
474*5f62a964SEmmanuel Vadot	status = "okay";
475*5f62a964SEmmanuel Vadot};
476*5f62a964SEmmanuel Vadot
477*5f62a964SEmmanuel Vadot&mdss0_dp1_out {
478*5f62a964SEmmanuel Vadot	data-lanes = <0 1>;
479*5f62a964SEmmanuel Vadot	remote-endpoint = <&usb_1_qmpphy_dp_in>;
480*5f62a964SEmmanuel Vadot};
481*5f62a964SEmmanuel Vadot
482*5f62a964SEmmanuel Vadot&pcie2a {
483*5f62a964SEmmanuel Vadot	perst-gpios = <&tlmm 143 GPIO_ACTIVE_LOW>;
484*5f62a964SEmmanuel Vadot	wake-gpios = <&tlmm 145 GPIO_ACTIVE_LOW>;
485*5f62a964SEmmanuel Vadot
486*5f62a964SEmmanuel Vadot	vddpe-3v3-supply = <&vreg_nvme>;
487*5f62a964SEmmanuel Vadot
488*5f62a964SEmmanuel Vadot	pinctrl-0 = <&pcie2a_default>;
489*5f62a964SEmmanuel Vadot	pinctrl-names = "default";
490*5f62a964SEmmanuel Vadot
491*5f62a964SEmmanuel Vadot	status = "okay";
492*5f62a964SEmmanuel Vadot};
493*5f62a964SEmmanuel Vadot
494*5f62a964SEmmanuel Vadot&pcie2a_phy {
495*5f62a964SEmmanuel Vadot	vdda-phy-supply = <&vreg_l6d>;
496*5f62a964SEmmanuel Vadot	vdda-pll-supply = <&vreg_l4d>;
497*5f62a964SEmmanuel Vadot
498*5f62a964SEmmanuel Vadot	status = "okay";
499*5f62a964SEmmanuel Vadot};
500*5f62a964SEmmanuel Vadot
501*5f62a964SEmmanuel Vadot&pcie3a {
502*5f62a964SEmmanuel Vadot	perst-gpios = <&tlmm 151 GPIO_ACTIVE_LOW>;
503*5f62a964SEmmanuel Vadot	wake-gpios = <&tlmm 148 GPIO_ACTIVE_LOW>;
504*5f62a964SEmmanuel Vadot
505*5f62a964SEmmanuel Vadot	vddpe-3v3-supply = <&vreg_wwan>;
506*5f62a964SEmmanuel Vadot
507*5f62a964SEmmanuel Vadot	pinctrl-0 = <&pcie3a_default>;
508*5f62a964SEmmanuel Vadot	pinctrl-names = "default";
509*5f62a964SEmmanuel Vadot
510*5f62a964SEmmanuel Vadot	status = "okay";
511*5f62a964SEmmanuel Vadot};
512*5f62a964SEmmanuel Vadot
513*5f62a964SEmmanuel Vadot&pcie3a_phy {
514*5f62a964SEmmanuel Vadot	vdda-phy-supply = <&vreg_l6d>;
515*5f62a964SEmmanuel Vadot	vdda-pll-supply = <&vreg_l4d>;
516*5f62a964SEmmanuel Vadot
517*5f62a964SEmmanuel Vadot	status = "okay";
518*5f62a964SEmmanuel Vadot};
519*5f62a964SEmmanuel Vadot
520*5f62a964SEmmanuel Vadot&pcie4 {
521*5f62a964SEmmanuel Vadot	max-link-speed = <2>;
522*5f62a964SEmmanuel Vadot
523*5f62a964SEmmanuel Vadot	perst-gpios = <&tlmm 141 GPIO_ACTIVE_LOW>;
524*5f62a964SEmmanuel Vadot	wake-gpios = <&tlmm 139 GPIO_ACTIVE_LOW>;
525*5f62a964SEmmanuel Vadot
526*5f62a964SEmmanuel Vadot	vddpe-3v3-supply = <&vreg_wlan>;
527*5f62a964SEmmanuel Vadot
528*5f62a964SEmmanuel Vadot	pinctrl-0 = <&pcie4_default>;
529*5f62a964SEmmanuel Vadot	pinctrl-names = "default";
530*5f62a964SEmmanuel Vadot
531*5f62a964SEmmanuel Vadot	status = "okay";
532*5f62a964SEmmanuel Vadot};
533*5f62a964SEmmanuel Vadot
534*5f62a964SEmmanuel Vadot&pcie4_port0 {
535*5f62a964SEmmanuel Vadot	wifi@0 {
536*5f62a964SEmmanuel Vadot		compatible = "pci17cb,1103";
537*5f62a964SEmmanuel Vadot		reg = <0x10000 0x0 0x0 0x0 0x0>;
538*5f62a964SEmmanuel Vadot
539*5f62a964SEmmanuel Vadot		qcom,ath11k-calibration-variant = "MS_SP9_5G";
540*5f62a964SEmmanuel Vadot	};
541*5f62a964SEmmanuel Vadot};
542*5f62a964SEmmanuel Vadot
543*5f62a964SEmmanuel Vadot&pcie4_phy {
544*5f62a964SEmmanuel Vadot	vdda-phy-supply = <&vreg_l6d>;
545*5f62a964SEmmanuel Vadot	vdda-pll-supply = <&vreg_l4d>;
546*5f62a964SEmmanuel Vadot
547*5f62a964SEmmanuel Vadot	status = "okay";
548*5f62a964SEmmanuel Vadot};
549*5f62a964SEmmanuel Vadot
550*5f62a964SEmmanuel Vadot&pmk8280_pon_pwrkey {
551*5f62a964SEmmanuel Vadot	status = "okay";
552*5f62a964SEmmanuel Vadot};
553*5f62a964SEmmanuel Vadot
554*5f62a964SEmmanuel Vadot&pmk8280_pon_resin {
555*5f62a964SEmmanuel Vadot	status = "okay";
556*5f62a964SEmmanuel Vadot};
557*5f62a964SEmmanuel Vadot
558*5f62a964SEmmanuel Vadot&pmk8280_rtc {
559*5f62a964SEmmanuel Vadot	nvmem-cells = <&rtc_offset>;
560*5f62a964SEmmanuel Vadot	nvmem-cell-names = "offset";
561*5f62a964SEmmanuel Vadot
562*5f62a964SEmmanuel Vadot	status = "okay";
563*5f62a964SEmmanuel Vadot};
564*5f62a964SEmmanuel Vadot
565*5f62a964SEmmanuel Vadot&pmk8280_sdam_6 {
566*5f62a964SEmmanuel Vadot	status = "okay";
567*5f62a964SEmmanuel Vadot
568*5f62a964SEmmanuel Vadot	rtc_offset: rtc-offset@bc {
569*5f62a964SEmmanuel Vadot		reg = <0xbc 0x4>;
570*5f62a964SEmmanuel Vadot	};
571*5f62a964SEmmanuel Vadot};
572*5f62a964SEmmanuel Vadot
573*5f62a964SEmmanuel Vadot&qup0 {
574*5f62a964SEmmanuel Vadot	status = "okay";
575*5f62a964SEmmanuel Vadot};
576*5f62a964SEmmanuel Vadot
577*5f62a964SEmmanuel Vadot&qup1 {
578*5f62a964SEmmanuel Vadot	status = "okay";
579*5f62a964SEmmanuel Vadot};
580*5f62a964SEmmanuel Vadot
581*5f62a964SEmmanuel Vadot&qup2 {
582*5f62a964SEmmanuel Vadot	status = "okay";
583*5f62a964SEmmanuel Vadot};
584*5f62a964SEmmanuel Vadot
585*5f62a964SEmmanuel Vadot&remoteproc_adsp {
586*5f62a964SEmmanuel Vadot	firmware-name = "qcom/sc8280xp/MICROSOFT/SurfacePro9/qcadsp8280.mbn";
587*5f62a964SEmmanuel Vadot
588*5f62a964SEmmanuel Vadot	status = "okay";
589*5f62a964SEmmanuel Vadot};
590*5f62a964SEmmanuel Vadot
591*5f62a964SEmmanuel Vadot&remoteproc_nsp0 {
592*5f62a964SEmmanuel Vadot	firmware-name = "qcom/sc8280xp/MICROSOFT/SurfacePro9/qccdsp8280.mbn";
593*5f62a964SEmmanuel Vadot
594*5f62a964SEmmanuel Vadot	status = "okay";
595*5f62a964SEmmanuel Vadot};
596*5f62a964SEmmanuel Vadot
597*5f62a964SEmmanuel Vadot&rxmacro {
598*5f62a964SEmmanuel Vadot	status = "okay";
599*5f62a964SEmmanuel Vadot};
600*5f62a964SEmmanuel Vadot
601*5f62a964SEmmanuel Vadot&sound {
602*5f62a964SEmmanuel Vadot	compatible = "qcom,sc8280xp-sndcard";
603*5f62a964SEmmanuel Vadot	model = "SC8280XP-MICROSOFT-SURFACE-PRO-9-5G";
604*5f62a964SEmmanuel Vadot	audio-routing = "SpkrLeft IN", "WSA_SPK1 OUT",
605*5f62a964SEmmanuel Vadot			"SpkrRight IN", "WSA_SPK2 OUT",
606*5f62a964SEmmanuel Vadot			"IN1_HPHL", "HPHL_OUT",
607*5f62a964SEmmanuel Vadot			"IN2_HPHR", "HPHR_OUT",
608*5f62a964SEmmanuel Vadot			"AMIC2", "MIC BIAS2",
609*5f62a964SEmmanuel Vadot			"VA DMIC0", "MIC BIAS1",
610*5f62a964SEmmanuel Vadot			"VA DMIC1", "MIC BIAS1",
611*5f62a964SEmmanuel Vadot			"VA DMIC2", "MIC BIAS3",
612*5f62a964SEmmanuel Vadot			"VA DMIC0", "VA MIC BIAS1",
613*5f62a964SEmmanuel Vadot			"VA DMIC1", "VA MIC BIAS1",
614*5f62a964SEmmanuel Vadot			"VA DMIC2", "VA MIC BIAS3",
615*5f62a964SEmmanuel Vadot			"TX SWR_ADC1", "ADC2_OUTPUT";
616*5f62a964SEmmanuel Vadot
617*5f62a964SEmmanuel Vadot	wcd-playback-dai-link {
618*5f62a964SEmmanuel Vadot		link-name = "WCD Playback";
619*5f62a964SEmmanuel Vadot
620*5f62a964SEmmanuel Vadot		cpu {
621*5f62a964SEmmanuel Vadot			sound-dai = <&q6apmbedai RX_CODEC_DMA_RX_0>;
622*5f62a964SEmmanuel Vadot		};
623*5f62a964SEmmanuel Vadot
624*5f62a964SEmmanuel Vadot		codec {
625*5f62a964SEmmanuel Vadot			sound-dai = <&wcd938x 0>, <&swr1 0>, <&rxmacro 0>;
626*5f62a964SEmmanuel Vadot		};
627*5f62a964SEmmanuel Vadot
628*5f62a964SEmmanuel Vadot		platform {
629*5f62a964SEmmanuel Vadot			sound-dai = <&q6apm>;
630*5f62a964SEmmanuel Vadot		};
631*5f62a964SEmmanuel Vadot	};
632*5f62a964SEmmanuel Vadot
633*5f62a964SEmmanuel Vadot	wcd-capture-dai-link {
634*5f62a964SEmmanuel Vadot		link-name = "WCD Capture";
635*5f62a964SEmmanuel Vadot
636*5f62a964SEmmanuel Vadot		cpu {
637*5f62a964SEmmanuel Vadot			sound-dai = <&q6apmbedai TX_CODEC_DMA_TX_3>;
638*5f62a964SEmmanuel Vadot		};
639*5f62a964SEmmanuel Vadot
640*5f62a964SEmmanuel Vadot		codec {
641*5f62a964SEmmanuel Vadot			sound-dai = <&wcd938x 1>, <&swr2 0>, <&txmacro 0>;
642*5f62a964SEmmanuel Vadot		};
643*5f62a964SEmmanuel Vadot
644*5f62a964SEmmanuel Vadot		platform {
645*5f62a964SEmmanuel Vadot			sound-dai = <&q6apm>;
646*5f62a964SEmmanuel Vadot		};
647*5f62a964SEmmanuel Vadot	};
648*5f62a964SEmmanuel Vadot
649*5f62a964SEmmanuel Vadot	wsa-dai-link {
650*5f62a964SEmmanuel Vadot		link-name = "WSA Playback";
651*5f62a964SEmmanuel Vadot
652*5f62a964SEmmanuel Vadot		cpu {
653*5f62a964SEmmanuel Vadot			sound-dai = <&q6apmbedai WSA_CODEC_DMA_RX_0>;
654*5f62a964SEmmanuel Vadot		};
655*5f62a964SEmmanuel Vadot
656*5f62a964SEmmanuel Vadot		codec {
657*5f62a964SEmmanuel Vadot			sound-dai = <&swr0 0>, <&wsamacro 0>;
658*5f62a964SEmmanuel Vadot		};
659*5f62a964SEmmanuel Vadot
660*5f62a964SEmmanuel Vadot		platform {
661*5f62a964SEmmanuel Vadot			sound-dai = <&q6apm>;
662*5f62a964SEmmanuel Vadot		};
663*5f62a964SEmmanuel Vadot	};
664*5f62a964SEmmanuel Vadot
665*5f62a964SEmmanuel Vadot	va-dai-link {
666*5f62a964SEmmanuel Vadot		link-name = "VA Capture";
667*5f62a964SEmmanuel Vadot
668*5f62a964SEmmanuel Vadot		cpu {
669*5f62a964SEmmanuel Vadot			sound-dai = <&q6apmbedai VA_CODEC_DMA_TX_0>;
670*5f62a964SEmmanuel Vadot		};
671*5f62a964SEmmanuel Vadot
672*5f62a964SEmmanuel Vadot		platform {
673*5f62a964SEmmanuel Vadot			sound-dai = <&q6apm>;
674*5f62a964SEmmanuel Vadot		};
675*5f62a964SEmmanuel Vadot
676*5f62a964SEmmanuel Vadot		codec {
677*5f62a964SEmmanuel Vadot			sound-dai = <&vamacro 0>;
678*5f62a964SEmmanuel Vadot		};
679*5f62a964SEmmanuel Vadot	};
680*5f62a964SEmmanuel Vadot};
681*5f62a964SEmmanuel Vadot
682*5f62a964SEmmanuel Vadot&swr0 {
683*5f62a964SEmmanuel Vadot	status = "okay";
684*5f62a964SEmmanuel Vadot};
685*5f62a964SEmmanuel Vadot
686*5f62a964SEmmanuel Vadot&swr1 {
687*5f62a964SEmmanuel Vadot	status = "okay";
688*5f62a964SEmmanuel Vadot
689*5f62a964SEmmanuel Vadot	wcd_rx: codec@0,4 {
690*5f62a964SEmmanuel Vadot		compatible = "sdw20217010d00";
691*5f62a964SEmmanuel Vadot		reg = <0 4>;
692*5f62a964SEmmanuel Vadot		qcom,rx-port-mapping = <1 2 3 4 5>;
693*5f62a964SEmmanuel Vadot	};
694*5f62a964SEmmanuel Vadot};
695*5f62a964SEmmanuel Vadot
696*5f62a964SEmmanuel Vadot&swr2 {
697*5f62a964SEmmanuel Vadot	status = "okay";
698*5f62a964SEmmanuel Vadot
699*5f62a964SEmmanuel Vadot	wcd_tx: codec@0,3 {
700*5f62a964SEmmanuel Vadot		compatible = "sdw20217010d00";
701*5f62a964SEmmanuel Vadot		reg = <0 3>;
702*5f62a964SEmmanuel Vadot		qcom,tx-port-mapping = <1 1 2 3>;
703*5f62a964SEmmanuel Vadot	};
704*5f62a964SEmmanuel Vadot};
705*5f62a964SEmmanuel Vadot
706*5f62a964SEmmanuel Vadot&txmacro {
707*5f62a964SEmmanuel Vadot	status = "okay";
708*5f62a964SEmmanuel Vadot};
709*5f62a964SEmmanuel Vadot
710*5f62a964SEmmanuel Vadot&uart2 {
711*5f62a964SEmmanuel Vadot	pinctrl-0 = <&uart2_default>;
712*5f62a964SEmmanuel Vadot	pinctrl-names = "default";
713*5f62a964SEmmanuel Vadot
714*5f62a964SEmmanuel Vadot	status = "okay";
715*5f62a964SEmmanuel Vadot
716*5f62a964SEmmanuel Vadot	bluetooth {
717*5f62a964SEmmanuel Vadot		compatible = "qcom,wcn6855-bt";
718*5f62a964SEmmanuel Vadot
719*5f62a964SEmmanuel Vadot		vddio-supply = <&vreg_s10b>;
720*5f62a964SEmmanuel Vadot		vddbtcxmx-supply = <&vreg_s12b>;
721*5f62a964SEmmanuel Vadot		vddrfacmn-supply = <&vreg_s12b>;
722*5f62a964SEmmanuel Vadot		vddrfa0p8-supply = <&vreg_s12b>;
723*5f62a964SEmmanuel Vadot		vddrfa1p2-supply = <&vreg_s11b>;
724*5f62a964SEmmanuel Vadot		vddrfa1p7-supply = <&vreg_s1c>;
725*5f62a964SEmmanuel Vadot
726*5f62a964SEmmanuel Vadot		max-speed = <3200000>;
727*5f62a964SEmmanuel Vadot
728*5f62a964SEmmanuel Vadot		enable-gpios = <&tlmm 133 GPIO_ACTIVE_HIGH>;
729*5f62a964SEmmanuel Vadot		swctrl-gpios = <&tlmm 132 GPIO_ACTIVE_HIGH>;
730*5f62a964SEmmanuel Vadot
731*5f62a964SEmmanuel Vadot		pinctrl-0 = <&bt_default>;
732*5f62a964SEmmanuel Vadot		pinctrl-names = "default";
733*5f62a964SEmmanuel Vadot	};
734*5f62a964SEmmanuel Vadot};
735*5f62a964SEmmanuel Vadot
736*5f62a964SEmmanuel Vadot&uart18 {
737*5f62a964SEmmanuel Vadot	status = "okay";
738*5f62a964SEmmanuel Vadot
739*5f62a964SEmmanuel Vadot	embedded-controller {
740*5f62a964SEmmanuel Vadot		compatible = "microsoft,surface-sam";
741*5f62a964SEmmanuel Vadot
742*5f62a964SEmmanuel Vadot		interrupts-extended = <&tlmm 85 IRQ_TYPE_EDGE_RISING>;
743*5f62a964SEmmanuel Vadot
744*5f62a964SEmmanuel Vadot		current-speed = <4000000>;
745*5f62a964SEmmanuel Vadot
746*5f62a964SEmmanuel Vadot		pinctrl-0 = <&ssam_state>;
747*5f62a964SEmmanuel Vadot		pinctrl-names = "default";
748*5f62a964SEmmanuel Vadot	};
749*5f62a964SEmmanuel Vadot};
750*5f62a964SEmmanuel Vadot
751*5f62a964SEmmanuel Vadot&usb_0 {
752*5f62a964SEmmanuel Vadot	status = "okay";
753*5f62a964SEmmanuel Vadot};
754*5f62a964SEmmanuel Vadot
755*5f62a964SEmmanuel Vadot&usb_0_dwc3 {
756*5f62a964SEmmanuel Vadot	dr_mode = "host";
757*5f62a964SEmmanuel Vadot};
758*5f62a964SEmmanuel Vadot
759*5f62a964SEmmanuel Vadot&usb_0_dwc3_hs {
760*5f62a964SEmmanuel Vadot	remote-endpoint = <&pmic_glink_con0_hs>;
761*5f62a964SEmmanuel Vadot};
762*5f62a964SEmmanuel Vadot
763*5f62a964SEmmanuel Vadot&usb_0_hsphy {
764*5f62a964SEmmanuel Vadot	vdda-pll-supply = <&vreg_l9d>;
765*5f62a964SEmmanuel Vadot	vdda18-supply = <&vreg_l1c>;
766*5f62a964SEmmanuel Vadot	vdda33-supply = <&vreg_l7d>;
767*5f62a964SEmmanuel Vadot
768*5f62a964SEmmanuel Vadot	status = "okay";
769*5f62a964SEmmanuel Vadot};
770*5f62a964SEmmanuel Vadot
771*5f62a964SEmmanuel Vadot&usb_0_qmpphy {
772*5f62a964SEmmanuel Vadot	vdda-phy-supply = <&vreg_l9d>;
773*5f62a964SEmmanuel Vadot	vdda-pll-supply = <&vreg_l4d>;
774*5f62a964SEmmanuel Vadot
775*5f62a964SEmmanuel Vadot	orientation-switch;
776*5f62a964SEmmanuel Vadot
777*5f62a964SEmmanuel Vadot	status = "okay";
778*5f62a964SEmmanuel Vadot};
779*5f62a964SEmmanuel Vadot
780*5f62a964SEmmanuel Vadot&usb_0_qmpphy_dp_in {
781*5f62a964SEmmanuel Vadot	remote-endpoint = <&mdss0_dp0_out>;
782*5f62a964SEmmanuel Vadot};
783*5f62a964SEmmanuel Vadot
784*5f62a964SEmmanuel Vadot&usb_0_qmpphy_out {
785*5f62a964SEmmanuel Vadot	remote-endpoint = <&pmic_glink_con0_ss>;
786*5f62a964SEmmanuel Vadot};
787*5f62a964SEmmanuel Vadot
788*5f62a964SEmmanuel Vadot&usb_1 {
789*5f62a964SEmmanuel Vadot	status = "okay";
790*5f62a964SEmmanuel Vadot};
791*5f62a964SEmmanuel Vadot
792*5f62a964SEmmanuel Vadot&usb_1_dwc3 {
793*5f62a964SEmmanuel Vadot	dr_mode = "host";
794*5f62a964SEmmanuel Vadot};
795*5f62a964SEmmanuel Vadot
796*5f62a964SEmmanuel Vadot&usb_1_dwc3_hs {
797*5f62a964SEmmanuel Vadot	remote-endpoint = <&pmic_glink_con1_hs>;
798*5f62a964SEmmanuel Vadot};
799*5f62a964SEmmanuel Vadot
800*5f62a964SEmmanuel Vadot&usb_1_hsphy {
801*5f62a964SEmmanuel Vadot	vdda-pll-supply = <&vreg_l4b>;
802*5f62a964SEmmanuel Vadot	vdda18-supply = <&vreg_l1c>;
803*5f62a964SEmmanuel Vadot	vdda33-supply = <&vreg_l13c>;
804*5f62a964SEmmanuel Vadot
805*5f62a964SEmmanuel Vadot	status = "okay";
806*5f62a964SEmmanuel Vadot};
807*5f62a964SEmmanuel Vadot
808*5f62a964SEmmanuel Vadot&usb_1_qmpphy {
809*5f62a964SEmmanuel Vadot	vdda-phy-supply = <&vreg_l4b>;
810*5f62a964SEmmanuel Vadot	vdda-pll-supply = <&vreg_l3b>;
811*5f62a964SEmmanuel Vadot
812*5f62a964SEmmanuel Vadot	orientation-switch;
813*5f62a964SEmmanuel Vadot
814*5f62a964SEmmanuel Vadot	status = "okay";
815*5f62a964SEmmanuel Vadot};
816*5f62a964SEmmanuel Vadot
817*5f62a964SEmmanuel Vadot&usb_1_qmpphy_dp_in {
818*5f62a964SEmmanuel Vadot	remote-endpoint = <&mdss0_dp1_out>;
819*5f62a964SEmmanuel Vadot};
820*5f62a964SEmmanuel Vadot
821*5f62a964SEmmanuel Vadot&usb_1_qmpphy_out {
822*5f62a964SEmmanuel Vadot	remote-endpoint = <&pmic_glink_con1_ss>;
823*5f62a964SEmmanuel Vadot};
824*5f62a964SEmmanuel Vadot
825*5f62a964SEmmanuel Vadot&vamacro {
826*5f62a964SEmmanuel Vadot	pinctrl-0 = <&dmic01_default>, <&dmic23_default>;
827*5f62a964SEmmanuel Vadot	pinctrl-names = "default";
828*5f62a964SEmmanuel Vadot
829*5f62a964SEmmanuel Vadot	vdd-micb-supply = <&vreg_s10b>;
830*5f62a964SEmmanuel Vadot
831*5f62a964SEmmanuel Vadot	qcom,dmic-sample-rate = <4800000>;
832*5f62a964SEmmanuel Vadot
833*5f62a964SEmmanuel Vadot	status = "okay";
834*5f62a964SEmmanuel Vadot};
835*5f62a964SEmmanuel Vadot
836*5f62a964SEmmanuel Vadot&wsamacro {
837*5f62a964SEmmanuel Vadot	status = "okay";
838*5f62a964SEmmanuel Vadot};
839*5f62a964SEmmanuel Vadot
840*5f62a964SEmmanuel Vadot&xo_board_clk {
841*5f62a964SEmmanuel Vadot	clock-frequency = <38400000>;
842*5f62a964SEmmanuel Vadot};
843*5f62a964SEmmanuel Vadot
844*5f62a964SEmmanuel Vadot/* PINCTRL */
845*5f62a964SEmmanuel Vadot
846*5f62a964SEmmanuel Vadot&lpass_tlmm {
847*5f62a964SEmmanuel Vadot	status = "okay";
848*5f62a964SEmmanuel Vadot};
849*5f62a964SEmmanuel Vadot
850*5f62a964SEmmanuel Vadot&pmc8280_2_gpios {
851*5f62a964SEmmanuel Vadot	wwan_sw_en: wwan-sw-en-state {
852*5f62a964SEmmanuel Vadot		pins = "gpio1";
853*5f62a964SEmmanuel Vadot		function = "normal";
854*5f62a964SEmmanuel Vadot	};
855*5f62a964SEmmanuel Vadot};
856*5f62a964SEmmanuel Vadot
857*5f62a964SEmmanuel Vadot&pmr735a_gpios {
858*5f62a964SEmmanuel Vadot	hastings_reg_en: hastings-reg-en-state {
859*5f62a964SEmmanuel Vadot		pins = "gpio1";
860*5f62a964SEmmanuel Vadot		function = "normal";
861*5f62a964SEmmanuel Vadot	};
862*5f62a964SEmmanuel Vadot};
863*5f62a964SEmmanuel Vadot
864*5f62a964SEmmanuel Vadot&tlmm {
865*5f62a964SEmmanuel Vadot	bt_default: bt-default-state {
866*5f62a964SEmmanuel Vadot		hstp-bt-en-pins {
867*5f62a964SEmmanuel Vadot			pins = "gpio133";
868*5f62a964SEmmanuel Vadot			function = "gpio";
869*5f62a964SEmmanuel Vadot			drive-strength = <16>;
870*5f62a964SEmmanuel Vadot			bias-disable;
871*5f62a964SEmmanuel Vadot		};
872*5f62a964SEmmanuel Vadot
873*5f62a964SEmmanuel Vadot		hstp-sw-ctrl-pins {
874*5f62a964SEmmanuel Vadot			pins = "gpio132";
875*5f62a964SEmmanuel Vadot			function = "gpio";
876*5f62a964SEmmanuel Vadot			bias-pull-down;
877*5f62a964SEmmanuel Vadot		};
878*5f62a964SEmmanuel Vadot	};
879*5f62a964SEmmanuel Vadot
880*5f62a964SEmmanuel Vadot	nvme_reg_en: nvme-reg-en-state {
881*5f62a964SEmmanuel Vadot		pins = "gpio135";
882*5f62a964SEmmanuel Vadot		function = "gpio";
883*5f62a964SEmmanuel Vadot		drive-strength = <2>;
884*5f62a964SEmmanuel Vadot		bias-disable;
885*5f62a964SEmmanuel Vadot	};
886*5f62a964SEmmanuel Vadot
887*5f62a964SEmmanuel Vadot	pcie2a_default: pcie2a-default-state {
888*5f62a964SEmmanuel Vadot		clkreq-n-pins {
889*5f62a964SEmmanuel Vadot			pins = "gpio142";
890*5f62a964SEmmanuel Vadot			function = "pcie2a_clkreq";
891*5f62a964SEmmanuel Vadot			drive-strength = <2>;
892*5f62a964SEmmanuel Vadot			bias-pull-up;
893*5f62a964SEmmanuel Vadot		};
894*5f62a964SEmmanuel Vadot
895*5f62a964SEmmanuel Vadot		perst-n-pins {
896*5f62a964SEmmanuel Vadot			pins = "gpio143";
897*5f62a964SEmmanuel Vadot			function = "gpio";
898*5f62a964SEmmanuel Vadot			drive-strength = <2>;
899*5f62a964SEmmanuel Vadot			bias-disable;
900*5f62a964SEmmanuel Vadot		};
901*5f62a964SEmmanuel Vadot
902*5f62a964SEmmanuel Vadot		wake-n-pins {
903*5f62a964SEmmanuel Vadot			pins = "gpio145";
904*5f62a964SEmmanuel Vadot			function = "gpio";
905*5f62a964SEmmanuel Vadot			drive-strength = <2>;
906*5f62a964SEmmanuel Vadot			bias-pull-up;
907*5f62a964SEmmanuel Vadot	       };
908*5f62a964SEmmanuel Vadot	};
909*5f62a964SEmmanuel Vadot
910*5f62a964SEmmanuel Vadot	pcie3a_default: pcie3a-default-state {
911*5f62a964SEmmanuel Vadot		clkreq-n-pins {
912*5f62a964SEmmanuel Vadot			pins = "gpio150";
913*5f62a964SEmmanuel Vadot			function = "pcie3a_clkreq";
914*5f62a964SEmmanuel Vadot			drive-strength = <2>;
915*5f62a964SEmmanuel Vadot			bias-pull-up;
916*5f62a964SEmmanuel Vadot		};
917*5f62a964SEmmanuel Vadot
918*5f62a964SEmmanuel Vadot		perst-n-pins {
919*5f62a964SEmmanuel Vadot			pins = "gpio151";
920*5f62a964SEmmanuel Vadot			function = "gpio";
921*5f62a964SEmmanuel Vadot			drive-strength = <2>;
922*5f62a964SEmmanuel Vadot			bias-disable;
923*5f62a964SEmmanuel Vadot		};
924*5f62a964SEmmanuel Vadot
925*5f62a964SEmmanuel Vadot		wake-n-pins {
926*5f62a964SEmmanuel Vadot			pins = "gpio148";
927*5f62a964SEmmanuel Vadot			function = "gpio";
928*5f62a964SEmmanuel Vadot			drive-strength = <2>;
929*5f62a964SEmmanuel Vadot			bias-pull-up;
930*5f62a964SEmmanuel Vadot		};
931*5f62a964SEmmanuel Vadot	};
932*5f62a964SEmmanuel Vadot
933*5f62a964SEmmanuel Vadot	pcie4_default: pcie4-default-state {
934*5f62a964SEmmanuel Vadot		clkreq-n-pins {
935*5f62a964SEmmanuel Vadot			pins = "gpio140";
936*5f62a964SEmmanuel Vadot			function = "pcie4_clkreq";
937*5f62a964SEmmanuel Vadot			drive-strength = <2>;
938*5f62a964SEmmanuel Vadot			bias-pull-up;
939*5f62a964SEmmanuel Vadot		};
940*5f62a964SEmmanuel Vadot
941*5f62a964SEmmanuel Vadot		perst-n-pins {
942*5f62a964SEmmanuel Vadot			pins = "gpio141";
943*5f62a964SEmmanuel Vadot			function = "gpio";
944*5f62a964SEmmanuel Vadot			drive-strength = <2>;
945*5f62a964SEmmanuel Vadot			bias-disable;
946*5f62a964SEmmanuel Vadot		};
947*5f62a964SEmmanuel Vadot
948*5f62a964SEmmanuel Vadot		wake-n-pins {
949*5f62a964SEmmanuel Vadot			pins = "gpio139";
950*5f62a964SEmmanuel Vadot			function = "gpio";
951*5f62a964SEmmanuel Vadot			drive-strength = <2>;
952*5f62a964SEmmanuel Vadot			bias-pull-up;
953*5f62a964SEmmanuel Vadot		};
954*5f62a964SEmmanuel Vadot	};
955*5f62a964SEmmanuel Vadot
956*5f62a964SEmmanuel Vadot
957*5f62a964SEmmanuel Vadot	ssam_state: ssam-state-state {
958*5f62a964SEmmanuel Vadot		pins = "gpio85";
959*5f62a964SEmmanuel Vadot		function = "gpio";
960*5f62a964SEmmanuel Vadot		bias-disable;
961*5f62a964SEmmanuel Vadot	};
962*5f62a964SEmmanuel Vadot
963*5f62a964SEmmanuel Vadot	uart2_default: uart2-default-state {
964*5f62a964SEmmanuel Vadot		cts-pins {
965*5f62a964SEmmanuel Vadot			pins = "gpio121";
966*5f62a964SEmmanuel Vadot			function = "qup2";
967*5f62a964SEmmanuel Vadot			bias-bus-hold;
968*5f62a964SEmmanuel Vadot		};
969*5f62a964SEmmanuel Vadot
970*5f62a964SEmmanuel Vadot		rts-pins {
971*5f62a964SEmmanuel Vadot			pins = "gpio122";
972*5f62a964SEmmanuel Vadot			function = "qup2";
973*5f62a964SEmmanuel Vadot			drive-strength = <2>;
974*5f62a964SEmmanuel Vadot			bias-disable;
975*5f62a964SEmmanuel Vadot		};
976*5f62a964SEmmanuel Vadot
977*5f62a964SEmmanuel Vadot		rx-pins {
978*5f62a964SEmmanuel Vadot			pins = "gpio124";
979*5f62a964SEmmanuel Vadot			function = "qup2";
980*5f62a964SEmmanuel Vadot			bias-pull-up;
981*5f62a964SEmmanuel Vadot		};
982*5f62a964SEmmanuel Vadot
983*5f62a964SEmmanuel Vadot		tx-pins {
984*5f62a964SEmmanuel Vadot			pins = "gpio123";
985*5f62a964SEmmanuel Vadot			function = "qup2";
986*5f62a964SEmmanuel Vadot			drive-strength = <2>;
987*5f62a964SEmmanuel Vadot			bias-disable;
988*5f62a964SEmmanuel Vadot		};
989*5f62a964SEmmanuel Vadot	};
990*5f62a964SEmmanuel Vadot
991*5f62a964SEmmanuel Vadot	usb0_sbu_default: usb0-sbu-state {
992*5f62a964SEmmanuel Vadot		oe-n-pins {
993*5f62a964SEmmanuel Vadot			pins = "gpio101";
994*5f62a964SEmmanuel Vadot			function = "gpio";
995*5f62a964SEmmanuel Vadot			bias-disable;
996*5f62a964SEmmanuel Vadot			drive-strength = <16>;
997*5f62a964SEmmanuel Vadot			output-high;
998*5f62a964SEmmanuel Vadot		};
999*5f62a964SEmmanuel Vadot
1000*5f62a964SEmmanuel Vadot		sel-pins {
1001*5f62a964SEmmanuel Vadot			pins = "gpio164";
1002*5f62a964SEmmanuel Vadot			function = "gpio";
1003*5f62a964SEmmanuel Vadot			bias-disable;
1004*5f62a964SEmmanuel Vadot			drive-strength = <16>;
1005*5f62a964SEmmanuel Vadot		};
1006*5f62a964SEmmanuel Vadot	};
1007*5f62a964SEmmanuel Vadot
1008*5f62a964SEmmanuel Vadot	usb1_sbu_default: usb1-sbu-state {
1009*5f62a964SEmmanuel Vadot		oe-n-pins {
1010*5f62a964SEmmanuel Vadot			pins = "gpio48";
1011*5f62a964SEmmanuel Vadot			function = "gpio";
1012*5f62a964SEmmanuel Vadot			bias-disable;
1013*5f62a964SEmmanuel Vadot			drive-strength = <16>;
1014*5f62a964SEmmanuel Vadot			output-high;
1015*5f62a964SEmmanuel Vadot		};
1016*5f62a964SEmmanuel Vadot
1017*5f62a964SEmmanuel Vadot		sel-pins {
1018*5f62a964SEmmanuel Vadot			pins = "gpio47";
1019*5f62a964SEmmanuel Vadot			function = "gpio";
1020*5f62a964SEmmanuel Vadot			bias-disable;
1021*5f62a964SEmmanuel Vadot			drive-strength = <16>;
1022*5f62a964SEmmanuel Vadot		};
1023*5f62a964SEmmanuel Vadot	};
1024*5f62a964SEmmanuel Vadot
1025*5f62a964SEmmanuel Vadot	wcd_default: wcd-default-state {
1026*5f62a964SEmmanuel Vadot		reset-pins {
1027*5f62a964SEmmanuel Vadot			pins = "gpio106";
1028*5f62a964SEmmanuel Vadot			function = "gpio";
1029*5f62a964SEmmanuel Vadot			bias-disable;
1030*5f62a964SEmmanuel Vadot		};
1031*5f62a964SEmmanuel Vadot	};
1032*5f62a964SEmmanuel Vadot};
1033