1// SPDX-License-Identifier: BSD-3-Clause
2/*
3 * Copyright (c) 2021, The Linux Foundation. All rights reserved.
4 * Copyright (c) 2022, Linaro Limited
5 */
6
7/dts-v1/;
8
9#include <dt-bindings/gpio/gpio.h>
10#include <dt-bindings/iio/qcom,spmi-adc7-pm8350.h>
11#include <dt-bindings/iio/qcom,spmi-adc7-pmk8350.h>
12#include <dt-bindings/iio/qcom,spmi-adc7-pmr735a.h>
13#include <dt-bindings/input/gpio-keys.h>
14#include <dt-bindings/input/input.h>
15#include <dt-bindings/leds/common.h>
16#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
17
18#include "sc8280xp.dtsi"
19#include "sc8280xp-pmics.dtsi"
20
21/ {
22	model = "Lenovo ThinkPad X13s";
23	compatible = "lenovo,thinkpad-x13s", "qcom,sc8280xp";
24
25	aliases {
26		i2c4 = &i2c4;
27		i2c21 = &i2c21;
28		serial1 = &uart2;
29	};
30
31	wcd938x: audio-codec {
32		compatible = "qcom,wcd9380-codec";
33
34		pinctrl-names = "default";
35		pinctrl-0 = <&wcd_default>;
36
37		reset-gpios = <&tlmm 106 GPIO_ACTIVE_LOW>;
38
39		vdd-buck-supply = <&vreg_s10b>;
40		vdd-rxtx-supply = <&vreg_s10b>;
41		vdd-io-supply = <&vreg_s10b>;
42		vdd-mic-bias-supply = <&vreg_bob>;
43
44		qcom,micbias1-microvolt = <1800000>;
45		qcom,micbias2-microvolt = <1800000>;
46		qcom,micbias3-microvolt = <1800000>;
47		qcom,micbias4-microvolt = <1800000>;
48		qcom,mbhc-buttons-vthreshold-microvolt = <75000 150000 237000 500000 500000 500000 500000 500000>;
49		qcom,mbhc-headset-vthreshold-microvolt = <1700000>;
50		qcom,mbhc-headphone-vthreshold-microvolt = <50000>;
51		qcom,rx-device = <&wcd_rx>;
52		qcom,tx-device = <&wcd_tx>;
53
54		#sound-dai-cells = <1>;
55	};
56
57	backlight: backlight {
58		compatible = "pwm-backlight";
59		pwms = <&pmc8280c_lpg 3 1000000>;
60		enable-gpios = <&pmc8280_1_gpios 8 GPIO_ACTIVE_HIGH>;
61		power-supply = <&vreg_edp_bl>;
62
63		pinctrl-names = "default";
64		pinctrl-0 = <&edp_bl_en>, <&edp_bl_pwm>;
65	};
66
67	gpio-keys {
68		compatible = "gpio-keys";
69
70		pinctrl-names = "default";
71		pinctrl-0 = <&hall_int_n_default>;
72
73		switch-lid {
74			gpios = <&tlmm 107 GPIO_ACTIVE_LOW>;
75			linux,input-type = <EV_SW>;
76			linux,code = <SW_LID>;
77			wakeup-source;
78			wakeup-event-action = <EV_ACT_DEASSERTED>;
79		};
80	};
81
82	leds {
83		compatible = "gpio-leds";
84
85		pinctrl-names = "default";
86		pinctrl-0 = <&cam_indicator_en>;
87
88		led-camera-indicator {
89			label = "white:camera-indicator";
90			function = LED_FUNCTION_INDICATOR;
91			color = <LED_COLOR_ID_WHITE>;
92			gpios = <&tlmm 28 GPIO_ACTIVE_HIGH>;
93			linux,default-trigger = "none";
94			default-state = "off";
95			/* Reuse as a panic indicator until we get a "camera on" trigger */
96			panic-indicator;
97		};
98	};
99
100	pmic-glink {
101		compatible = "qcom,sc8280xp-pmic-glink", "qcom,pmic-glink";
102
103		#address-cells = <1>;
104		#size-cells = <0>;
105
106		connector@0 {
107			compatible = "usb-c-connector";
108			reg = <0>;
109			power-role = "dual";
110			data-role = "dual";
111
112			ports {
113				#address-cells = <1>;
114				#size-cells = <0>;
115
116				port@0 {
117					reg = <0>;
118
119					pmic_glink_con0_hs: endpoint {
120						remote-endpoint = <&usb_0_role_switch>;
121					};
122				};
123
124				port@1 {
125					reg = <1>;
126
127					pmic_glink_con0_ss: endpoint {
128						remote-endpoint = <&usb_0_qmpphy_out>;
129					};
130				};
131
132				port@2 {
133					reg = <2>;
134
135					pmic_glink_con0_sbu: endpoint {
136						remote-endpoint = <&usb0_sbu_mux>;
137					};
138				};
139			};
140		};
141
142		connector@1 {
143			compatible = "usb-c-connector";
144			reg = <1>;
145			power-role = "dual";
146			data-role = "dual";
147
148			ports {
149				#address-cells = <1>;
150				#size-cells = <0>;
151				port@0 {
152					reg = <0>;
153
154					pmic_glink_con1_hs: endpoint {
155						remote-endpoint = <&usb_1_role_switch>;
156					};
157				};
158
159				port@1 {
160					reg = <1>;
161
162					pmic_glink_con1_ss: endpoint {
163						remote-endpoint = <&usb_1_qmpphy_out>;
164					};
165				};
166
167				port@2 {
168					reg = <2>;
169
170					pmic_glink_con1_sbu: endpoint {
171						remote-endpoint = <&usb1_sbu_mux>;
172					};
173				};
174			};
175		};
176	};
177
178	vreg_edp_3p3: regulator-edp-3p3 {
179		compatible = "regulator-fixed";
180
181		regulator-name = "VCC3LCD";
182		regulator-min-microvolt = <3300000>;
183		regulator-max-microvolt = <3300000>;
184
185		gpio = <&tlmm 25 GPIO_ACTIVE_HIGH>;
186		enable-active-high;
187
188		pinctrl-names = "default";
189		pinctrl-0 = <&edp_reg_en>;
190
191		regulator-boot-on;
192	};
193
194	vreg_edp_bl: regulator-edp-bl {
195		compatible = "regulator-fixed";
196
197		regulator-name = "VBL9";
198		regulator-min-microvolt = <3600000>;
199		regulator-max-microvolt = <3600000>;
200
201		gpio = <&pmc8280_1_gpios 9 GPIO_ACTIVE_HIGH>;
202		enable-active-high;
203
204		pinctrl-names = "default";
205		pinctrl-0 = <&edp_bl_reg_en>;
206
207		regulator-boot-on;
208	};
209
210	vreg_misc_3p3: regulator-misc-3p3 {
211		compatible = "regulator-fixed";
212
213		regulator-name = "VCC3B";
214		regulator-min-microvolt = <3300000>;
215		regulator-max-microvolt = <3300000>;
216
217		gpio = <&pmc8280_1_gpios 1 GPIO_ACTIVE_HIGH>;
218		enable-active-high;
219
220		pinctrl-names = "default";
221		pinctrl-0 = <&misc_3p3_reg_en>;
222
223		regulator-boot-on;
224		regulator-always-on;
225	};
226
227	vreg_nvme: regulator-nvme {
228		compatible = "regulator-fixed";
229
230		regulator-name = "VCC3_SSD";
231		regulator-min-microvolt = <3300000>;
232		regulator-max-microvolt = <3300000>;
233
234		gpio = <&tlmm 135 GPIO_ACTIVE_HIGH>;
235		enable-active-high;
236
237		pinctrl-names = "default";
238		pinctrl-0 = <&nvme_reg_en>;
239
240		regulator-boot-on;
241	};
242
243	vreg_vph_pwr: regulator-vph-pwr {
244		compatible = "regulator-fixed";
245
246		regulator-name = "VPH_VCC3R9";
247		regulator-min-microvolt = <3900000>;
248		regulator-max-microvolt = <3900000>;
249
250		regulator-always-on;
251	};
252
253	vreg_wlan: regulator-wlan {
254		compatible = "regulator-fixed";
255
256		regulator-name = "VCC_WLAN_3R9";
257		regulator-min-microvolt = <3900000>;
258		regulator-max-microvolt = <3900000>;
259
260		gpio = <&pmr735a_gpios 1 GPIO_ACTIVE_HIGH>;
261		enable-active-high;
262
263		pinctrl-names = "default";
264		pinctrl-0 = <&hastings_reg_en>;
265
266		regulator-boot-on;
267	};
268
269	vreg_wwan: regulator-wwan {
270		compatible = "regulator-fixed";
271
272		regulator-name = "VCC3B_WAN";
273		regulator-min-microvolt = <3300000>;
274		regulator-max-microvolt = <3300000>;
275
276		gpio = <&pmc8280_2_gpios 1 GPIO_ACTIVE_HIGH>;
277		enable-active-high;
278
279		pinctrl-names = "default";
280		pinctrl-0 = <&wwan_sw_en>;
281
282		regulator-boot-on;
283	};
284
285	reserved-memory {
286		gpu_mem: gpu-mem@8bf00000 {
287			reg = <0 0x8bf00000 0 0x2000>;
288			no-map;
289		};
290
291		linux,cma {
292			compatible = "shared-dma-pool";
293			size = <0x0 0x8000000>;
294			reusable;
295			linux,cma-default;
296		};
297	};
298
299	thermal-zones {
300		skin-temp-thermal {
301			polling-delay-passive = <250>;
302			polling-delay = <0>;
303			thermal-sensors = <&pmk8280_adc_tm 5>;
304
305			trips {
306				skin_temp_alert0: trip-point0 {
307					temperature = <55000>;
308					hysteresis = <1000>;
309					type = "passive";
310				};
311
312				skin_temp_alert1: trip-point1 {
313					temperature = <58000>;
314					hysteresis = <1000>;
315					type = "passive";
316				};
317
318				skin-temp-crit {
319					temperature = <73000>;
320					hysteresis = <1000>;
321					type = "critical";
322				};
323			};
324
325			cooling-maps {
326				map0 {
327					trip = <&skin_temp_alert0>;
328					cooling-device = <&CPU4 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
329							 <&CPU5 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
330							 <&CPU6 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
331							 <&CPU7 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
332				};
333
334				map1 {
335					trip = <&skin_temp_alert1>;
336					cooling-device = <&CPU4 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
337							 <&CPU5 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
338							 <&CPU6 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
339							 <&CPU7 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
340				};
341			};
342		};
343	};
344
345	usb0-sbu-mux {
346		compatible = "pericom,pi3usb102", "gpio-sbu-mux";
347
348		enable-gpios = <&tlmm 101 GPIO_ACTIVE_LOW>;
349		select-gpios = <&tlmm 164 GPIO_ACTIVE_HIGH>;
350
351		pinctrl-names = "default";
352		pinctrl-0 = <&usb0_sbu_default>;
353
354		mode-switch;
355		orientation-switch;
356
357		port {
358			usb0_sbu_mux: endpoint {
359				remote-endpoint = <&pmic_glink_con0_sbu>;
360			};
361		};
362	};
363
364	usb1-sbu-mux {
365		compatible = "pericom,pi3usb102", "gpio-sbu-mux";
366
367		enable-gpios = <&tlmm 48 GPIO_ACTIVE_LOW>;
368		select-gpios = <&tlmm 47 GPIO_ACTIVE_HIGH>;
369
370		pinctrl-names = "default";
371		pinctrl-0 = <&usb1_sbu_default>;
372
373		mode-switch;
374		orientation-switch;
375
376		port {
377			usb1_sbu_mux: endpoint {
378				remote-endpoint = <&pmic_glink_con1_sbu>;
379			};
380		};
381	};
382};
383
384&apps_rsc {
385	regulators-0 {
386		compatible = "qcom,pm8350-rpmh-regulators";
387		qcom,pmic-id = "b";
388
389		vdd-l1-l4-supply = <&vreg_s12b>;
390		vdd-l2-l7-supply = <&vreg_bob>;
391		vdd-l3-l5-supply = <&vreg_s11b>;
392		vdd-l6-l9-l10-supply = <&vreg_s12b>;
393		vdd-l8-supply = <&vreg_s12b>;
394
395		vreg_s10b: smps10 {
396			regulator-name = "vreg_s10b";
397			regulator-min-microvolt = <1800000>;
398			regulator-max-microvolt = <1800000>;
399			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
400			regulator-always-on;
401		};
402
403		vreg_s11b: smps11 {
404			regulator-name = "vreg_s11b";
405			regulator-min-microvolt = <1272000>;
406			regulator-max-microvolt = <1272000>;
407			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
408			regulator-always-on;
409		};
410
411		vreg_s12b: smps12 {
412			regulator-name = "vreg_s12b";
413			regulator-min-microvolt = <984000>;
414			regulator-max-microvolt = <984000>;
415			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
416			regulator-always-on;
417		};
418
419		vreg_l3b: ldo3 {
420			regulator-name = "vreg_l3b";
421			regulator-min-microvolt = <1200000>;
422			regulator-max-microvolt = <1200000>;
423			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
424			regulator-boot-on;
425		};
426
427		vreg_l4b: ldo4 {
428			regulator-name = "vreg_l4b";
429			regulator-min-microvolt = <912000>;
430			regulator-max-microvolt = <912000>;
431			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
432		};
433
434		vreg_l6b: ldo6 {
435			regulator-name = "vreg_l6b";
436			regulator-min-microvolt = <880000>;
437			regulator-max-microvolt = <880000>;
438			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
439			regulator-boot-on;
440		};
441	};
442
443	regulators-1 {
444		compatible = "qcom,pm8350c-rpmh-regulators";
445		qcom,pmic-id = "c";
446
447		vdd-bob-supply = <&vreg_vph_pwr>;
448		vdd-l1-l12-supply = <&vreg_s1c>;
449		vdd-l2-l8-supply = <&vreg_s1c>;
450		vdd-l3-l4-l5-l7-l13-supply = <&vreg_bob>;
451		vdd-l6-l9-l11-supply = <&vreg_bob>;
452		vdd-l10-supply = <&vreg_s11b>;
453
454		vreg_s1c: smps1 {
455			regulator-name = "vreg_s1c";
456			regulator-min-microvolt = <1880000>;
457			regulator-max-microvolt = <1900000>;
458			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
459			regulator-always-on;
460		};
461
462		vreg_l1c: ldo1 {
463			regulator-name = "vreg_l1c";
464			regulator-min-microvolt = <1800000>;
465			regulator-max-microvolt = <1800000>;
466			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
467		};
468
469		vreg_l12c: ldo12 {
470			regulator-name = "vreg_l12c";
471			regulator-min-microvolt = <1800000>;
472			regulator-max-microvolt = <1800000>;
473			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
474		};
475
476		vreg_l13c: ldo13 {
477			regulator-name = "vreg_l13c";
478			regulator-min-microvolt = <3072000>;
479			regulator-max-microvolt = <3072000>;
480			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
481		};
482
483		vreg_bob: bob {
484			regulator-name = "vreg_bob";
485			regulator-min-microvolt = <3008000>;
486			regulator-max-microvolt = <3960000>;
487			regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
488			regulator-always-on;
489		};
490	};
491
492	regulators-2 {
493		compatible = "qcom,pm8350-rpmh-regulators";
494		qcom,pmic-id = "d";
495
496		vdd-l1-l4-supply = <&vreg_s11b>;
497		vdd-l2-l7-supply = <&vreg_bob>;
498		vdd-l3-l5-supply = <&vreg_s11b>;
499		vdd-l6-l9-l10-supply = <&vreg_s12b>;
500		vdd-l8-supply = <&vreg_s12b>;
501
502		vreg_l3d: ldo3 {
503			regulator-name = "vreg_l3d";
504			regulator-min-microvolt = <1200000>;
505			regulator-max-microvolt = <1200000>;
506			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
507		};
508
509		vreg_l4d: ldo4 {
510			regulator-name = "vreg_l4d";
511			regulator-min-microvolt = <1200000>;
512			regulator-max-microvolt = <1200000>;
513			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
514		};
515
516		vreg_l6d: ldo6 {
517			regulator-name = "vreg_l6d";
518			regulator-min-microvolt = <880000>;
519			regulator-max-microvolt = <880000>;
520			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
521		};
522
523		vreg_l7d: ldo7 {
524			regulator-name = "vreg_l7d";
525			regulator-min-microvolt = <3072000>;
526			regulator-max-microvolt = <3072000>;
527			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
528		};
529
530		vreg_l9d: ldo9 {
531			regulator-name = "vreg_l9d";
532			regulator-min-microvolt = <912000>;
533			regulator-max-microvolt = <912000>;
534			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
535		};
536	};
537};
538
539&dispcc0 {
540	status = "okay";
541};
542
543&gpu {
544	status = "okay";
545
546	zap-shader {
547		memory-region = <&gpu_mem>;
548		firmware-name = "qcom/sc8280xp/LENOVO/21BX/qcdxkmsuc8280.mbn";
549	};
550};
551
552&mdss0 {
553	status = "okay";
554};
555
556&mdss0_dp0 {
557	status = "okay";
558};
559
560&mdss0_dp0_out {
561	data-lanes = <0 1>;
562	remote-endpoint = <&usb_0_qmpphy_dp_in>;
563};
564
565&mdss0_dp1 {
566	status = "okay";
567};
568
569&mdss0_dp1_out {
570	data-lanes = <0 1>;
571	remote-endpoint = <&usb_1_qmpphy_dp_in>;
572};
573
574&mdss0_dp3 {
575	compatible = "qcom,sc8280xp-edp";
576	/delete-property/ #sound-dai-cells;
577
578	data-lanes = <0 1 2 3>;
579
580	status = "okay";
581
582	aux-bus {
583		panel {
584			compatible = "edp-panel";
585
586			backlight = <&backlight>;
587			power-supply = <&vreg_edp_3p3>;
588
589			port {
590				edp_panel_in: endpoint {
591					remote-endpoint = <&mdss0_dp3_out>;
592				};
593			};
594		};
595	};
596
597	ports {
598		port@1 {
599			reg = <1>;
600			mdss0_dp3_out: endpoint {
601				remote-endpoint = <&edp_panel_in>;
602			};
603		};
604	};
605};
606
607&mdss0_dp3_phy {
608	compatible = "qcom,sc8280xp-edp-phy";
609	vdda-phy-supply = <&vreg_l6b>;
610	vdda-pll-supply = <&vreg_l3b>;
611
612	status = "okay";
613};
614
615&i2c4 {
616	clock-frequency = <400000>;
617
618	pinctrl-names = "default";
619	pinctrl-0 = <&i2c4_default>;
620
621	status = "okay";
622
623	/* FIXME: verify */
624	touchscreen@10 {
625		compatible = "hid-over-i2c";
626		reg = <0x10>;
627
628		hid-descr-addr = <0x1>;
629		interrupts-extended = <&tlmm 175 IRQ_TYPE_LEVEL_LOW>;
630		vdd-supply = <&vreg_misc_3p3>;
631		vddl-supply = <&vreg_s10b>;
632
633		pinctrl-names = "default";
634		pinctrl-0 = <&ts0_default>;
635	};
636};
637
638&i2c21 {
639	clock-frequency = <400000>;
640
641	pinctrl-names = "default";
642	pinctrl-0 = <&i2c21_default>, <&tpad_default>;
643
644	status = "okay";
645
646	touchpad@15 {
647		compatible = "hid-over-i2c";
648		reg = <0x15>;
649
650		hid-descr-addr = <0x1>;
651		interrupts-extended = <&tlmm 182 IRQ_TYPE_LEVEL_LOW>;
652		vdd-supply = <&vreg_misc_3p3>;
653		vddl-supply = <&vreg_s10b>;
654
655		wakeup-source;
656	};
657
658	touchpad@2c {
659		compatible = "hid-over-i2c";
660		reg = <0x2c>;
661
662		hid-descr-addr = <0x20>;
663		interrupts-extended = <&tlmm 182 IRQ_TYPE_LEVEL_LOW>;
664		vdd-supply = <&vreg_misc_3p3>;
665		vddl-supply = <&vreg_s10b>;
666
667		wakeup-source;
668	};
669
670	keyboard@68 {
671		compatible = "hid-over-i2c";
672		reg = <0x68>;
673
674		hid-descr-addr = <0x1>;
675		interrupts-extended = <&tlmm 104 IRQ_TYPE_LEVEL_LOW>;
676		vdd-supply = <&vreg_misc_3p3>;
677		vddl-supply = <&vreg_s10b>;
678
679		pinctrl-names = "default";
680		pinctrl-0 = <&kybd_default>;
681
682		wakeup-source;
683	};
684};
685
686&pcie2a {
687	perst-gpios = <&tlmm 143 GPIO_ACTIVE_LOW>;
688	wake-gpios = <&tlmm 145 GPIO_ACTIVE_LOW>;
689
690	vddpe-3v3-supply = <&vreg_nvme>;
691
692	pinctrl-names = "default";
693	pinctrl-0 = <&pcie2a_default>;
694
695	status = "okay";
696};
697
698&pcie2a_phy {
699	vdda-phy-supply = <&vreg_l6d>;
700	vdda-pll-supply = <&vreg_l4d>;
701
702	status = "okay";
703};
704
705&pcie3a {
706	perst-gpios = <&tlmm 151 GPIO_ACTIVE_LOW>;
707	wake-gpios = <&tlmm 148 GPIO_ACTIVE_LOW>;
708
709	vddpe-3v3-supply = <&vreg_wwan>;
710
711	pinctrl-names = "default";
712	pinctrl-0 = <&pcie3a_default>;
713
714	status = "okay";
715};
716
717&pcie3a_phy {
718	vdda-phy-supply = <&vreg_l6d>;
719	vdda-pll-supply = <&vreg_l4d>;
720
721	status = "okay";
722};
723
724&pcie4 {
725	perst-gpios = <&tlmm 141 GPIO_ACTIVE_LOW>;
726	wake-gpios = <&tlmm 139 GPIO_ACTIVE_LOW>;
727
728	vddpe-3v3-supply = <&vreg_wlan>;
729
730	pinctrl-names = "default";
731	pinctrl-0 = <&pcie4_default>;
732
733	status = "okay";
734
735	pcie@0 {
736		device_type = "pci";
737		reg = <0x0 0x0 0x0 0x0 0x0>;
738		#address-cells = <3>;
739		#size-cells = <2>;
740		ranges;
741
742		bus-range = <0x01 0xff>;
743
744		wifi@0 {
745			compatible = "pci17cb,1103";
746			reg = <0x10000 0x0 0x0 0x0 0x0>;
747
748			qcom,ath11k-calibration-variant = "LE_X13S";
749		};
750	};
751};
752
753&pcie4_phy {
754	vdda-phy-supply = <&vreg_l6d>;
755	vdda-pll-supply = <&vreg_l4d>;
756
757	status = "okay";
758};
759
760&pmc8280c_lpg {
761	status = "okay";
762};
763
764&pmk8280_adc_tm {
765	status = "okay";
766
767	sys-therm@0 {
768		reg = <0>;
769		io-channels = <&pmk8280_vadc PM8350_ADC7_AMUX_THM1_100K_PU(1)>;
770		qcom,hw-settle-time-us = <200>;
771		qcom,avg-samples = <2>;
772		qcom,ratiometric;
773	};
774
775	sys-therm@1 {
776		reg = <1>;
777		io-channels = <&pmk8280_vadc PM8350_ADC7_AMUX_THM2_100K_PU(1)>;
778		qcom,hw-settle-time-us = <200>;
779		qcom,avg-samples = <2>;
780		qcom,ratiometric;
781	};
782
783	sys-therm@2 {
784		reg = <2>;
785		io-channels = <&pmk8280_vadc PM8350_ADC7_AMUX_THM3_100K_PU(1)>;
786		qcom,hw-settle-time-us = <200>;
787		qcom,avg-samples = <2>;
788		qcom,ratiometric;
789	};
790
791	sys-therm@3 {
792		reg = <3>;
793		io-channels = <&pmk8280_vadc PM8350_ADC7_AMUX_THM4_100K_PU(1)>;
794		qcom,hw-settle-time-us = <200>;
795		qcom,avg-samples = <2>;
796		qcom,ratiometric;
797	};
798
799	sys-therm@4 {
800		reg = <4>;
801		io-channels = <&pmk8280_vadc PM8350_ADC7_AMUX_THM1_100K_PU(3)>;
802		qcom,hw-settle-time-us = <200>;
803		qcom,avg-samples = <2>;
804		qcom,ratiometric;
805	};
806
807	sys-therm@5 {
808		reg = <5>;
809		io-channels = <&pmk8280_vadc PM8350_ADC7_AMUX_THM2_100K_PU(3)>;
810		qcom,hw-settle-time-us = <200>;
811		qcom,avg-samples = <2>;
812		qcom,ratiometric;
813	};
814
815	sys-therm@6 {
816		reg = <6>;
817		io-channels = <&pmk8280_vadc PM8350_ADC7_AMUX_THM3_100K_PU(3)>;
818		qcom,hw-settle-time-us = <200>;
819		qcom,avg-samples = <2>;
820		qcom,ratiometric;
821	};
822
823	sys-therm@7 {
824		reg = <7>;
825		io-channels = <&pmk8280_vadc PM8350_ADC7_AMUX_THM4_100K_PU(3)>;
826		qcom,hw-settle-time-us = <200>;
827		qcom,avg-samples = <2>;
828		qcom,ratiometric;
829	};
830};
831
832&pmk8280_pon_pwrkey {
833	status = "okay";
834};
835
836&pmk8280_pon_resin {
837	status = "okay";
838};
839
840&pmk8280_rtc {
841	nvmem-cells = <&rtc_offset>;
842	nvmem-cell-names = "offset";
843
844	status = "okay";
845};
846
847&pmk8280_sdam_6 {
848	status = "okay";
849
850	rtc_offset: rtc-offset@bc {
851		reg = <0xbc 0x4>;
852	};
853};
854
855&pmk8280_vadc {
856	status = "okay";
857
858	channel@3 {
859		reg = <PMK8350_ADC7_DIE_TEMP>;
860		qcom,pre-scaling = <1 1>;
861		label = "pmk8350_die_temp";
862	};
863
864	channel@44 {
865		reg = <PMK8350_ADC7_AMUX_THM1_100K_PU>;
866		qcom,hw-settle-time = <200>;
867		qcom,ratiometric;
868		label = "pmk8350_xo_therm";
869	};
870
871	channel@103 {
872		reg = <PM8350_ADC7_DIE_TEMP(1)>;
873		qcom,pre-scaling = <1 1>;
874		label = "pmc8280_1_die_temp";
875	};
876
877	channel@144 {
878		reg = <PM8350_ADC7_AMUX_THM1_100K_PU(1)>;
879		qcom,hw-settle-time = <200>;
880		qcom,ratiometric;
881		label = "sys_therm1";
882	};
883
884	channel@145 {
885		reg = <PM8350_ADC7_AMUX_THM2_100K_PU(1)>;
886		qcom,hw-settle-time = <200>;
887		qcom,ratiometric;
888		label = "sys_therm2";
889	};
890
891	channel@146 {
892		reg = <PM8350_ADC7_AMUX_THM3_100K_PU(1)>;
893		qcom,hw-settle-time = <200>;
894		qcom,ratiometric;
895		label = "sys_therm3";
896	};
897
898	channel@147 {
899		reg = <PM8350_ADC7_AMUX_THM4_100K_PU(1)>;
900		qcom,hw-settle-time = <200>;
901		qcom,ratiometric;
902		label = "sys_therm4";
903	};
904
905	channel@303 {
906		reg = <PM8350_ADC7_DIE_TEMP(3)>;
907		qcom,pre-scaling = <1 1>;
908		label = "pmc8280_2_die_temp";
909	};
910
911	channel@344 {
912		reg = <PM8350_ADC7_AMUX_THM1_100K_PU(3)>;
913		qcom,hw-settle-time = <200>;
914		qcom,ratiometric;
915		label = "sys_therm5";
916	};
917
918	channel@345 {
919		reg = <PM8350_ADC7_AMUX_THM2_100K_PU(3)>;
920		qcom,hw-settle-time = <200>;
921		qcom,ratiometric;
922		label = "sys_therm6";
923	};
924
925	channel@346 {
926		reg = <PM8350_ADC7_AMUX_THM3_100K_PU(3)>;
927		qcom,hw-settle-time = <200>;
928		qcom,ratiometric;
929		label = "sys_therm7";
930	};
931
932	channel@347 {
933		reg = <PM8350_ADC7_AMUX_THM4_100K_PU(3)>;
934		qcom,hw-settle-time = <200>;
935		qcom,ratiometric;
936		label = "sys_therm8";
937	};
938
939	channel@403 {
940		reg = <PMR735A_ADC7_DIE_TEMP>;
941		qcom,pre-scaling = <1 1>;
942		label = "pmr735a_die_temp";
943	};
944};
945
946&qup0 {
947	status = "okay";
948};
949
950&qup1 {
951	status = "okay";
952};
953
954&qup2 {
955	status = "okay";
956};
957
958&remoteproc_adsp {
959	firmware-name = "qcom/sc8280xp/LENOVO/21BX/qcadsp8280.mbn";
960
961	status = "okay";
962};
963
964&remoteproc_nsp0 {
965	firmware-name = "qcom/sc8280xp/LENOVO/21BX/qccdsp8280.mbn";
966
967	status = "okay";
968};
969
970&rxmacro {
971	status = "okay";
972};
973
974&sound {
975	compatible = "qcom,sc8280xp-sndcard";
976	model = "SC8280XP-LENOVO-X13S";
977	audio-routing =
978		"SpkrLeft IN", "WSA_SPK1 OUT",
979		"SpkrRight IN", "WSA_SPK2 OUT",
980		"IN1_HPHL", "HPHL_OUT",
981		"IN2_HPHR", "HPHR_OUT",
982		"AMIC2", "MIC BIAS2",
983		"VA DMIC0", "MIC BIAS1",
984		"VA DMIC1", "MIC BIAS1",
985		"VA DMIC2", "MIC BIAS3",
986		"VA DMIC0", "VA MIC BIAS1",
987		"VA DMIC1", "VA MIC BIAS1",
988		"VA DMIC2", "VA MIC BIAS3",
989		"TX SWR_ADC1", "ADC2_OUTPUT";
990
991	wcd-playback-dai-link {
992		link-name = "WCD Playback";
993		cpu {
994			sound-dai = <&q6apmbedai RX_CODEC_DMA_RX_0>;
995		};
996
997		codec {
998			sound-dai = <&wcd938x 0>, <&swr1 0>, <&rxmacro 0>;
999		};
1000
1001		platform {
1002			sound-dai = <&q6apm>;
1003		};
1004	};
1005
1006	wcd-capture-dai-link {
1007		link-name = "WCD Capture";
1008		cpu {
1009			sound-dai = <&q6apmbedai TX_CODEC_DMA_TX_3>;
1010		};
1011
1012		codec {
1013			sound-dai = <&wcd938x 1>, <&swr2 0>, <&txmacro 0>;
1014		};
1015
1016		platform {
1017			sound-dai = <&q6apm>;
1018		};
1019	};
1020
1021	wsa-dai-link {
1022		link-name = "WSA Playback";
1023		cpu {
1024			sound-dai = <&q6apmbedai WSA_CODEC_DMA_RX_0>;
1025		};
1026
1027		codec {
1028			sound-dai = <&left_spkr>, <&right_spkr>, <&swr0 0>, <&wsamacro 0>;
1029		};
1030
1031		platform {
1032			sound-dai = <&q6apm>;
1033		};
1034	};
1035
1036	va-dai-link {
1037		link-name = "VA Capture";
1038		cpu {
1039			sound-dai = <&q6apmbedai VA_CODEC_DMA_TX_0>;
1040		};
1041
1042		platform {
1043			sound-dai = <&q6apm>;
1044		};
1045
1046		codec {
1047			sound-dai = <&vamacro 0>;
1048		};
1049	};
1050};
1051
1052&swr0 {
1053	status = "okay";
1054
1055	left_spkr: wsa8830-left@0,1 {
1056		compatible = "sdw10217020200";
1057		reg = <0 1>;
1058		pinctrl-names = "default";
1059		pinctrl-0 = <&spkr_1_sd_n_default>;
1060		powerdown-gpios = <&tlmm 178 GPIO_ACTIVE_LOW>;
1061		#thermal-sensor-cells = <0>;
1062		sound-name-prefix = "SpkrLeft";
1063		#sound-dai-cells = <0>;
1064		vdd-supply = <&vreg_s10b>;
1065	};
1066
1067	right_spkr: wsa8830-right@0,2 {
1068		compatible = "sdw10217020200";
1069		reg = <0 2>;
1070		pinctrl-names = "default";
1071		pinctrl-0 = <&spkr_2_sd_n_default>;
1072		powerdown-gpios = <&tlmm 179 GPIO_ACTIVE_LOW>;
1073		#thermal-sensor-cells = <0>;
1074		sound-name-prefix = "SpkrRight";
1075		#sound-dai-cells = <0>;
1076		vdd-supply = <&vreg_s10b>;
1077	};
1078};
1079
1080&swr1 {
1081	status = "okay";
1082
1083	wcd_rx: wcd9380-rx@0,4 {
1084		compatible = "sdw20217010d00";
1085		reg = <0 4>;
1086		qcom,rx-port-mapping = <1 2 3 4 5>;
1087	};
1088};
1089
1090&swr2 {
1091	status = "okay";
1092
1093	wcd_tx: wcd9380-tx@0,3 {
1094		compatible = "sdw20217010d00";
1095		reg = <0 3>;
1096		qcom,tx-port-mapping = <1 1 2 3>;
1097	};
1098};
1099
1100&txmacro {
1101	status = "okay";
1102};
1103
1104&uart2 {
1105	pinctrl-0 = <&uart2_default>;
1106	pinctrl-names = "default";
1107
1108	status = "okay";
1109
1110	bluetooth {
1111		compatible = "qcom,wcn6855-bt";
1112
1113		vddio-supply = <&vreg_s10b>;
1114		vddbtcxmx-supply = <&vreg_s12b>;
1115		vddrfacmn-supply = <&vreg_s12b>;
1116		vddrfa0p8-supply = <&vreg_s12b>;
1117		vddrfa1p2-supply = <&vreg_s11b>;
1118		vddrfa1p7-supply = <&vreg_s1c>;
1119
1120		max-speed = <3200000>;
1121
1122		enable-gpios = <&tlmm 133 GPIO_ACTIVE_HIGH>;
1123		swctrl-gpios = <&tlmm 132 GPIO_ACTIVE_HIGH>;
1124
1125		pinctrl-0 = <&bt_default>;
1126		pinctrl-names = "default";
1127	};
1128};
1129
1130&usb_0 {
1131	status = "okay";
1132};
1133
1134&usb_0_dwc3 {
1135	dr_mode = "host";
1136};
1137
1138&usb_0_hsphy {
1139	vdda-pll-supply = <&vreg_l9d>;
1140	vdda18-supply = <&vreg_l1c>;
1141	vdda33-supply = <&vreg_l7d>;
1142
1143	status = "okay";
1144};
1145
1146&usb_0_qmpphy {
1147	vdda-phy-supply = <&vreg_l9d>;
1148	vdda-pll-supply = <&vreg_l4d>;
1149
1150	orientation-switch;
1151
1152	status = "okay";
1153};
1154
1155&usb_0_qmpphy_dp_in {
1156	remote-endpoint = <&mdss0_dp0_out>;
1157};
1158
1159&usb_0_qmpphy_out {
1160	remote-endpoint = <&pmic_glink_con0_ss>;
1161};
1162
1163&usb_0_role_switch {
1164	remote-endpoint = <&pmic_glink_con0_hs>;
1165};
1166
1167&usb_1 {
1168	status = "okay";
1169};
1170
1171&usb_1_dwc3 {
1172	dr_mode = "host";
1173};
1174
1175&usb_1_hsphy {
1176	vdda-pll-supply = <&vreg_l4b>;
1177	vdda18-supply = <&vreg_l1c>;
1178	vdda33-supply = <&vreg_l13c>;
1179
1180	status = "okay";
1181};
1182
1183&usb_1_qmpphy {
1184	vdda-phy-supply = <&vreg_l4b>;
1185	vdda-pll-supply = <&vreg_l3b>;
1186
1187	orientation-switch;
1188
1189	status = "okay";
1190};
1191
1192&usb_1_qmpphy_dp_in {
1193	remote-endpoint = <&mdss0_dp1_out>;
1194};
1195
1196&usb_1_qmpphy_out {
1197	remote-endpoint = <&pmic_glink_con1_ss>;
1198};
1199
1200&usb_1_role_switch {
1201	remote-endpoint = <&pmic_glink_con1_hs>;
1202};
1203
1204&vamacro {
1205	pinctrl-0 = <&dmic01_default>, <&dmic02_default>;
1206	pinctrl-names = "default";
1207
1208	vdd-micb-supply = <&vreg_s10b>;
1209
1210	qcom,dmic-sample-rate = <4800000>;
1211
1212	status = "okay";
1213};
1214
1215&wsamacro {
1216	status = "okay";
1217};
1218
1219&xo_board_clk {
1220	clock-frequency = <38400000>;
1221};
1222
1223/* PINCTRL */
1224
1225&lpass_tlmm {
1226	status = "okay";
1227};
1228
1229&pmc8280_1_gpios {
1230	edp_bl_en: edp-bl-en-state {
1231		pins = "gpio8";
1232		function = "normal";
1233	};
1234
1235	edp_bl_reg_en: edp-bl-reg-en-state {
1236		pins = "gpio9";
1237		function = "normal";
1238	};
1239
1240	misc_3p3_reg_en: misc-3p3-reg-en-state {
1241		pins = "gpio1";
1242		function = "normal";
1243	};
1244};
1245
1246&pmc8280_2_gpios {
1247	wwan_sw_en: wwan-sw-en-state {
1248		pins = "gpio1";
1249		function = "normal";
1250	};
1251};
1252
1253&pmc8280c_gpios {
1254	edp_bl_pwm: edp-bl-pwm-state {
1255		pins = "gpio8";
1256		function = "func1";
1257	};
1258};
1259
1260&pmr735a_gpios {
1261	hastings_reg_en: hastings-reg-en-state {
1262		pins = "gpio1";
1263		function = "normal";
1264	};
1265};
1266
1267&tlmm {
1268	gpio-reserved-ranges = <70 2>, <74 6>, <125 2>, <128 2>, <154 4>;
1269
1270	bt_default: bt-default-state {
1271		hstp-bt-en-pins {
1272			pins = "gpio133";
1273			function = "gpio";
1274			drive-strength = <16>;
1275			bias-disable;
1276		};
1277
1278		hstp-sw-ctrl-pins {
1279			pins = "gpio132";
1280			function = "gpio";
1281			bias-pull-down;
1282		};
1283	};
1284
1285	cam_indicator_en: cam-indicator-en-state {
1286		pins = "gpio28";
1287		function = "gpio";
1288		drive-strength = <2>;
1289		bias-disable;
1290	};
1291
1292	edp_reg_en: edp-reg-en-state {
1293		pins = "gpio25";
1294		function = "gpio";
1295		drive-strength = <16>;
1296		bias-disable;
1297	};
1298
1299	hall_int_n_default: hall-int-n-state {
1300		pins = "gpio107";
1301		function = "gpio";
1302		bias-disable;
1303	};
1304
1305	i2c4_default: i2c4-default-state {
1306		pins = "gpio171", "gpio172";
1307		function = "qup4";
1308		drive-strength = <16>;
1309		bias-disable;
1310	};
1311
1312	i2c21_default: i2c21-default-state {
1313		pins = "gpio81", "gpio82";
1314		function = "qup21";
1315		drive-strength = <16>;
1316		bias-disable;
1317	};
1318
1319	kybd_default: kybd-default-state {
1320		disable-pins {
1321			pins = "gpio102";
1322			function = "gpio";
1323			output-low;
1324		};
1325
1326		int-n-pins {
1327			pins = "gpio104";
1328			function = "gpio";
1329			bias-disable;
1330		};
1331
1332		reset-pins {
1333			pins = "gpio105";
1334			function = "gpio";
1335			bias-disable;
1336		};
1337	};
1338
1339	nvme_reg_en: nvme-reg-en-state {
1340		pins = "gpio135";
1341		function = "gpio";
1342		drive-strength = <2>;
1343		bias-disable;
1344	};
1345
1346	pcie2a_default: pcie2a-default-state {
1347		clkreq-n-pins {
1348			pins = "gpio142";
1349			function = "pcie2a_clkreq";
1350			drive-strength = <2>;
1351			bias-pull-up;
1352		};
1353
1354		perst-n-pins {
1355			pins = "gpio143";
1356			function = "gpio";
1357			drive-strength = <2>;
1358			bias-pull-down;
1359		};
1360
1361		wake-n-pins {
1362		       pins = "gpio145";
1363		       function = "gpio";
1364		       drive-strength = <2>;
1365		       bias-pull-up;
1366	       };
1367	};
1368
1369	pcie3a_default: pcie3a-default-state {
1370		clkreq-n-pins {
1371			pins = "gpio150";
1372			function = "pcie3a_clkreq";
1373			drive-strength = <2>;
1374			bias-pull-up;
1375		};
1376
1377		perst-n-pins {
1378			pins = "gpio151";
1379			function = "gpio";
1380			drive-strength = <2>;
1381			bias-pull-down;
1382		};
1383
1384		wake-n-pins {
1385			pins = "gpio148";
1386			function = "gpio";
1387			drive-strength = <2>;
1388			bias-pull-up;
1389		};
1390	};
1391
1392	pcie4_default: pcie4-default-state {
1393		clkreq-n-pins {
1394			pins = "gpio140";
1395			function = "pcie4_clkreq";
1396			drive-strength = <2>;
1397			bias-pull-up;
1398		};
1399
1400		perst-n-pins {
1401			pins = "gpio141";
1402			function = "gpio";
1403			drive-strength = <2>;
1404			bias-pull-down;
1405		};
1406
1407		wake-n-pins {
1408			pins = "gpio139";
1409			function = "gpio";
1410			drive-strength = <2>;
1411			bias-pull-up;
1412		};
1413	};
1414
1415	spkr_1_sd_n_default: spkr-1-sd-n-default-state {
1416		perst-n-pins {
1417			pins = "gpio178";
1418			function = "gpio";
1419			drive-strength = <16>;
1420			bias-disable;
1421			output-high;
1422		};
1423	};
1424
1425	spkr_2_sd_n_default: spkr-2-sd-n-default-state {
1426		perst-n-pins {
1427			pins = "gpio179";
1428			function = "gpio";
1429			drive-strength = <16>;
1430			bias-disable;
1431			output-high;
1432		};
1433	};
1434
1435	tpad_default: tpad-default-state {
1436		int-n-pins {
1437			pins = "gpio182";
1438			function = "gpio";
1439			bias-disable;
1440		};
1441	};
1442
1443	ts0_default: ts0-default-state {
1444		int-n-pins {
1445			pins = "gpio175";
1446			function = "gpio";
1447			bias-disable;
1448		};
1449
1450		reset-n-pins {
1451			pins = "gpio99";
1452			function = "gpio";
1453			output-high;
1454			drive-strength = <16>;
1455		};
1456	};
1457
1458	uart2_default: uart2-default-state {
1459		cts-pins {
1460			pins = "gpio121";
1461			function = "qup2";
1462			bias-bus-hold;
1463		};
1464
1465		rts-pins {
1466			pins = "gpio122";
1467			function = "qup2";
1468			drive-strength = <2>;
1469			bias-disable;
1470		};
1471
1472		rx-pins {
1473			pins = "gpio124";
1474			function = "qup2";
1475			bias-pull-up;
1476		};
1477
1478		tx-pins {
1479			pins = "gpio123";
1480			function = "qup2";
1481			drive-strength = <2>;
1482			bias-disable;
1483		};
1484	};
1485
1486	usb0_sbu_default: usb0-sbu-state {
1487		oe-n-pins {
1488			pins = "gpio101";
1489			function = "gpio";
1490			bias-disable;
1491			drive-strength = <16>;
1492			output-high;
1493		};
1494
1495		sel-pins {
1496			pins = "gpio164";
1497			function = "gpio";
1498			bias-disable;
1499			drive-strength = <16>;
1500		};
1501	};
1502
1503	usb1_sbu_default: usb1-sbu-state {
1504		oe-n-pins {
1505			pins = "gpio48";
1506			function = "gpio";
1507			bias-disable;
1508			drive-strength = <16>;
1509			output-high;
1510		};
1511
1512		sel-pins {
1513			pins = "gpio47";
1514			function = "gpio";
1515			bias-disable;
1516			drive-strength = <16>;
1517		};
1518	};
1519
1520	wcd_default: wcd-default-state {
1521		reset-pins {
1522			pins = "gpio106";
1523			function = "gpio";
1524			bias-disable;
1525		};
1526	};
1527};
1528