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
577	data-lanes = <0 1 2 3>;
578
579	status = "okay";
580
581	aux-bus {
582		panel {
583			compatible = "edp-panel";
584
585			backlight = <&backlight>;
586			power-supply = <&vreg_edp_3p3>;
587
588			port {
589				edp_panel_in: endpoint {
590					remote-endpoint = <&mdss0_dp3_out>;
591				};
592			};
593		};
594	};
595
596	ports {
597		port@1 {
598			reg = <1>;
599			mdss0_dp3_out: endpoint {
600				remote-endpoint = <&edp_panel_in>;
601			};
602		};
603	};
604};
605
606&mdss0_dp3_phy {
607	compatible = "qcom,sc8280xp-edp-phy";
608	vdda-phy-supply = <&vreg_l6b>;
609	vdda-pll-supply = <&vreg_l3b>;
610
611	status = "okay";
612};
613
614&i2c4 {
615	clock-frequency = <400000>;
616
617	pinctrl-names = "default";
618	pinctrl-0 = <&i2c4_default>;
619
620	status = "okay";
621
622	/* FIXME: verify */
623	touchscreen@10 {
624		compatible = "hid-over-i2c";
625		reg = <0x10>;
626
627		hid-descr-addr = <0x1>;
628		interrupts-extended = <&tlmm 175 IRQ_TYPE_LEVEL_LOW>;
629		vdd-supply = <&vreg_misc_3p3>;
630		vddl-supply = <&vreg_s10b>;
631
632		pinctrl-names = "default";
633		pinctrl-0 = <&ts0_default>;
634	};
635};
636
637&i2c21 {
638	clock-frequency = <400000>;
639
640	pinctrl-names = "default";
641	pinctrl-0 = <&i2c21_default>, <&tpad_default>;
642
643	status = "okay";
644
645	touchpad@15 {
646		compatible = "hid-over-i2c";
647		reg = <0x15>;
648
649		hid-descr-addr = <0x1>;
650		interrupts-extended = <&tlmm 182 IRQ_TYPE_LEVEL_LOW>;
651		vdd-supply = <&vreg_misc_3p3>;
652		vddl-supply = <&vreg_s10b>;
653
654		wakeup-source;
655	};
656
657	touchpad@2c {
658		compatible = "hid-over-i2c";
659		reg = <0x2c>;
660
661		hid-descr-addr = <0x20>;
662		interrupts-extended = <&tlmm 182 IRQ_TYPE_LEVEL_LOW>;
663		vdd-supply = <&vreg_misc_3p3>;
664		vddl-supply = <&vreg_s10b>;
665
666		wakeup-source;
667	};
668
669	keyboard@68 {
670		compatible = "hid-over-i2c";
671		reg = <0x68>;
672
673		hid-descr-addr = <0x1>;
674		interrupts-extended = <&tlmm 104 IRQ_TYPE_LEVEL_LOW>;
675		vdd-supply = <&vreg_misc_3p3>;
676		vddl-supply = <&vreg_s10b>;
677
678		pinctrl-names = "default";
679		pinctrl-0 = <&kybd_default>;
680
681		wakeup-source;
682	};
683};
684
685&pcie2a {
686	perst-gpios = <&tlmm 143 GPIO_ACTIVE_LOW>;
687	wake-gpios = <&tlmm 145 GPIO_ACTIVE_LOW>;
688
689	vddpe-3v3-supply = <&vreg_nvme>;
690
691	pinctrl-names = "default";
692	pinctrl-0 = <&pcie2a_default>;
693
694	status = "okay";
695};
696
697&pcie2a_phy {
698	vdda-phy-supply = <&vreg_l6d>;
699	vdda-pll-supply = <&vreg_l4d>;
700
701	status = "okay";
702};
703
704&pcie3a {
705	perst-gpios = <&tlmm 151 GPIO_ACTIVE_LOW>;
706	wake-gpios = <&tlmm 148 GPIO_ACTIVE_LOW>;
707
708	vddpe-3v3-supply = <&vreg_wwan>;
709
710	pinctrl-names = "default";
711	pinctrl-0 = <&pcie3a_default>;
712
713	status = "okay";
714};
715
716&pcie3a_phy {
717	vdda-phy-supply = <&vreg_l6d>;
718	vdda-pll-supply = <&vreg_l4d>;
719
720	status = "okay";
721};
722
723&pcie4 {
724	perst-gpios = <&tlmm 141 GPIO_ACTIVE_LOW>;
725	wake-gpios = <&tlmm 139 GPIO_ACTIVE_LOW>;
726
727	vddpe-3v3-supply = <&vreg_wlan>;
728
729	pinctrl-names = "default";
730	pinctrl-0 = <&pcie4_default>;
731
732	status = "okay";
733
734	pcie@0 {
735		device_type = "pci";
736		reg = <0x0 0x0 0x0 0x0 0x0>;
737		#address-cells = <3>;
738		#size-cells = <2>;
739		ranges;
740
741		bus-range = <0x01 0xff>;
742
743		wifi@0 {
744			compatible = "pci17cb,1103";
745			reg = <0x10000 0x0 0x0 0x0 0x0>;
746
747			qcom,ath11k-calibration-variant = "LE_X13S";
748		};
749	};
750};
751
752&pcie4_phy {
753	vdda-phy-supply = <&vreg_l6d>;
754	vdda-pll-supply = <&vreg_l4d>;
755
756	status = "okay";
757};
758
759&pmc8280c_lpg {
760	status = "okay";
761};
762
763&pmk8280_adc_tm {
764	status = "okay";
765
766	sys-therm@0 {
767		reg = <0>;
768		io-channels = <&pmk8280_vadc PM8350_ADC7_AMUX_THM1_100K_PU(1)>;
769		qcom,hw-settle-time-us = <200>;
770		qcom,avg-samples = <2>;
771		qcom,ratiometric;
772	};
773
774	sys-therm@1 {
775		reg = <1>;
776		io-channels = <&pmk8280_vadc PM8350_ADC7_AMUX_THM2_100K_PU(1)>;
777		qcom,hw-settle-time-us = <200>;
778		qcom,avg-samples = <2>;
779		qcom,ratiometric;
780	};
781
782	sys-therm@2 {
783		reg = <2>;
784		io-channels = <&pmk8280_vadc PM8350_ADC7_AMUX_THM3_100K_PU(1)>;
785		qcom,hw-settle-time-us = <200>;
786		qcom,avg-samples = <2>;
787		qcom,ratiometric;
788	};
789
790	sys-therm@3 {
791		reg = <3>;
792		io-channels = <&pmk8280_vadc PM8350_ADC7_AMUX_THM4_100K_PU(1)>;
793		qcom,hw-settle-time-us = <200>;
794		qcom,avg-samples = <2>;
795		qcom,ratiometric;
796	};
797
798	sys-therm@4 {
799		reg = <4>;
800		io-channels = <&pmk8280_vadc PM8350_ADC7_AMUX_THM1_100K_PU(3)>;
801		qcom,hw-settle-time-us = <200>;
802		qcom,avg-samples = <2>;
803		qcom,ratiometric;
804	};
805
806	sys-therm@5 {
807		reg = <5>;
808		io-channels = <&pmk8280_vadc PM8350_ADC7_AMUX_THM2_100K_PU(3)>;
809		qcom,hw-settle-time-us = <200>;
810		qcom,avg-samples = <2>;
811		qcom,ratiometric;
812	};
813
814	sys-therm@6 {
815		reg = <6>;
816		io-channels = <&pmk8280_vadc PM8350_ADC7_AMUX_THM3_100K_PU(3)>;
817		qcom,hw-settle-time-us = <200>;
818		qcom,avg-samples = <2>;
819		qcom,ratiometric;
820	};
821
822	sys-therm@7 {
823		reg = <7>;
824		io-channels = <&pmk8280_vadc PM8350_ADC7_AMUX_THM4_100K_PU(3)>;
825		qcom,hw-settle-time-us = <200>;
826		qcom,avg-samples = <2>;
827		qcom,ratiometric;
828	};
829};
830
831&pmk8280_pon_pwrkey {
832	status = "okay";
833};
834
835&pmk8280_pon_resin {
836	status = "okay";
837};
838
839&pmk8280_rtc {
840	nvmem-cells = <&rtc_offset>;
841	nvmem-cell-names = "offset";
842
843	status = "okay";
844};
845
846&pmk8280_sdam_6 {
847	status = "okay";
848
849	rtc_offset: rtc-offset@bc {
850		reg = <0xbc 0x4>;
851	};
852};
853
854&pmk8280_vadc {
855	status = "okay";
856
857	channel@3 {
858		reg = <PMK8350_ADC7_DIE_TEMP>;
859		qcom,pre-scaling = <1 1>;
860		label = "pmk8350_die_temp";
861	};
862
863	channel@44 {
864		reg = <PMK8350_ADC7_AMUX_THM1_100K_PU>;
865		qcom,hw-settle-time = <200>;
866		qcom,ratiometric;
867		label = "pmk8350_xo_therm";
868	};
869
870	channel@103 {
871		reg = <PM8350_ADC7_DIE_TEMP(1)>;
872		qcom,pre-scaling = <1 1>;
873		label = "pmc8280_1_die_temp";
874	};
875
876	channel@144 {
877		reg = <PM8350_ADC7_AMUX_THM1_100K_PU(1)>;
878		qcom,hw-settle-time = <200>;
879		qcom,ratiometric;
880		label = "sys_therm1";
881	};
882
883	channel@145 {
884		reg = <PM8350_ADC7_AMUX_THM2_100K_PU(1)>;
885		qcom,hw-settle-time = <200>;
886		qcom,ratiometric;
887		label = "sys_therm2";
888	};
889
890	channel@146 {
891		reg = <PM8350_ADC7_AMUX_THM3_100K_PU(1)>;
892		qcom,hw-settle-time = <200>;
893		qcom,ratiometric;
894		label = "sys_therm3";
895	};
896
897	channel@147 {
898		reg = <PM8350_ADC7_AMUX_THM4_100K_PU(1)>;
899		qcom,hw-settle-time = <200>;
900		qcom,ratiometric;
901		label = "sys_therm4";
902	};
903
904	channel@303 {
905		reg = <PM8350_ADC7_DIE_TEMP(3)>;
906		qcom,pre-scaling = <1 1>;
907		label = "pmc8280_2_die_temp";
908	};
909
910	channel@344 {
911		reg = <PM8350_ADC7_AMUX_THM1_100K_PU(3)>;
912		qcom,hw-settle-time = <200>;
913		qcom,ratiometric;
914		label = "sys_therm5";
915	};
916
917	channel@345 {
918		reg = <PM8350_ADC7_AMUX_THM2_100K_PU(3)>;
919		qcom,hw-settle-time = <200>;
920		qcom,ratiometric;
921		label = "sys_therm6";
922	};
923
924	channel@346 {
925		reg = <PM8350_ADC7_AMUX_THM3_100K_PU(3)>;
926		qcom,hw-settle-time = <200>;
927		qcom,ratiometric;
928		label = "sys_therm7";
929	};
930
931	channel@347 {
932		reg = <PM8350_ADC7_AMUX_THM4_100K_PU(3)>;
933		qcom,hw-settle-time = <200>;
934		qcom,ratiometric;
935		label = "sys_therm8";
936	};
937
938	channel@403 {
939		reg = <PMR735A_ADC7_DIE_TEMP>;
940		qcom,pre-scaling = <1 1>;
941		label = "pmr735a_die_temp";
942	};
943};
944
945&qup0 {
946	status = "okay";
947};
948
949&qup1 {
950	status = "okay";
951};
952
953&qup2 {
954	status = "okay";
955};
956
957&remoteproc_adsp {
958	firmware-name = "qcom/sc8280xp/LENOVO/21BX/qcadsp8280.mbn";
959
960	status = "okay";
961};
962
963&remoteproc_nsp0 {
964	firmware-name = "qcom/sc8280xp/LENOVO/21BX/qccdsp8280.mbn";
965
966	status = "okay";
967};
968
969&rxmacro {
970	status = "okay";
971};
972
973&sound {
974	compatible = "qcom,sc8280xp-sndcard";
975	model = "SC8280XP-LENOVO-X13S";
976	audio-routing =
977		"SpkrLeft IN", "WSA_SPK1 OUT",
978		"SpkrRight IN", "WSA_SPK2 OUT",
979		"IN1_HPHL", "HPHL_OUT",
980		"IN2_HPHR", "HPHR_OUT",
981		"AMIC2", "MIC BIAS2",
982		"VA DMIC0", "MIC BIAS1",
983		"VA DMIC1", "MIC BIAS1",
984		"VA DMIC2", "MIC BIAS3",
985		"VA DMIC0", "VA MIC BIAS1",
986		"VA DMIC1", "VA MIC BIAS1",
987		"VA DMIC2", "VA MIC BIAS3",
988		"TX SWR_ADC1", "ADC2_OUTPUT";
989
990	wcd-playback-dai-link {
991		link-name = "WCD Playback";
992		cpu {
993			sound-dai = <&q6apmbedai RX_CODEC_DMA_RX_0>;
994		};
995
996		codec {
997			sound-dai = <&wcd938x 0>, <&swr1 0>, <&rxmacro 0>;
998		};
999
1000		platform {
1001			sound-dai = <&q6apm>;
1002		};
1003	};
1004
1005	wcd-capture-dai-link {
1006		link-name = "WCD Capture";
1007		cpu {
1008			sound-dai = <&q6apmbedai TX_CODEC_DMA_TX_3>;
1009		};
1010
1011		codec {
1012			sound-dai = <&wcd938x 1>, <&swr2 0>, <&txmacro 0>;
1013		};
1014
1015		platform {
1016			sound-dai = <&q6apm>;
1017		};
1018	};
1019
1020	wsa-dai-link {
1021		link-name = "WSA Playback";
1022		cpu {
1023			sound-dai = <&q6apmbedai WSA_CODEC_DMA_RX_0>;
1024		};
1025
1026		codec {
1027			sound-dai = <&left_spkr>, <&right_spkr>, <&swr0 0>, <&wsamacro 0>;
1028		};
1029
1030		platform {
1031			sound-dai = <&q6apm>;
1032		};
1033	};
1034
1035	va-dai-link {
1036		link-name = "VA Capture";
1037		cpu {
1038			sound-dai = <&q6apmbedai VA_CODEC_DMA_TX_0>;
1039		};
1040
1041		platform {
1042			sound-dai = <&q6apm>;
1043		};
1044
1045		codec {
1046			sound-dai = <&vamacro 0>;
1047		};
1048	};
1049};
1050
1051&swr0 {
1052	status = "okay";
1053
1054	left_spkr: wsa8830-left@0,1 {
1055		compatible = "sdw10217020200";
1056		reg = <0 1>;
1057		pinctrl-names = "default";
1058		pinctrl-0 = <&spkr_1_sd_n_default>;
1059		powerdown-gpios = <&tlmm 178 GPIO_ACTIVE_LOW>;
1060		#thermal-sensor-cells = <0>;
1061		sound-name-prefix = "SpkrLeft";
1062		#sound-dai-cells = <0>;
1063		vdd-supply = <&vreg_s10b>;
1064	};
1065
1066	right_spkr: wsa8830-right@0,2 {
1067		compatible = "sdw10217020200";
1068		reg = <0 2>;
1069		pinctrl-names = "default";
1070		pinctrl-0 = <&spkr_2_sd_n_default>;
1071		powerdown-gpios = <&tlmm 179 GPIO_ACTIVE_LOW>;
1072		#thermal-sensor-cells = <0>;
1073		sound-name-prefix = "SpkrRight";
1074		#sound-dai-cells = <0>;
1075		vdd-supply = <&vreg_s10b>;
1076	};
1077};
1078
1079&swr1 {
1080	status = "okay";
1081
1082	wcd_rx: wcd9380-rx@0,4 {
1083		compatible = "sdw20217010d00";
1084		reg = <0 4>;
1085		qcom,rx-port-mapping = <1 2 3 4 5>;
1086	};
1087};
1088
1089&swr2 {
1090	status = "okay";
1091
1092	wcd_tx: wcd9380-tx@0,3 {
1093		compatible = "sdw20217010d00";
1094		reg = <0 3>;
1095		qcom,tx-port-mapping = <1 1 2 3>;
1096	};
1097};
1098
1099&txmacro {
1100	status = "okay";
1101};
1102
1103&uart2 {
1104	pinctrl-0 = <&uart2_default>;
1105	pinctrl-names = "default";
1106
1107	status = "okay";
1108
1109	bluetooth {
1110		compatible = "qcom,wcn6855-bt";
1111
1112		vddio-supply = <&vreg_s10b>;
1113		vddbtcxmx-supply = <&vreg_s12b>;
1114		vddrfacmn-supply = <&vreg_s12b>;
1115		vddrfa0p8-supply = <&vreg_s12b>;
1116		vddrfa1p2-supply = <&vreg_s11b>;
1117		vddrfa1p7-supply = <&vreg_s1c>;
1118
1119		max-speed = <3200000>;
1120
1121		enable-gpios = <&tlmm 133 GPIO_ACTIVE_HIGH>;
1122		swctrl-gpios = <&tlmm 132 GPIO_ACTIVE_HIGH>;
1123
1124		pinctrl-0 = <&bt_default>;
1125		pinctrl-names = "default";
1126	};
1127};
1128
1129&usb_0 {
1130	status = "okay";
1131};
1132
1133&usb_0_dwc3 {
1134	dr_mode = "host";
1135};
1136
1137&usb_0_hsphy {
1138	vdda-pll-supply = <&vreg_l9d>;
1139	vdda18-supply = <&vreg_l1c>;
1140	vdda33-supply = <&vreg_l7d>;
1141
1142	status = "okay";
1143};
1144
1145&usb_0_qmpphy {
1146	vdda-phy-supply = <&vreg_l9d>;
1147	vdda-pll-supply = <&vreg_l4d>;
1148
1149	orientation-switch;
1150
1151	status = "okay";
1152};
1153
1154&usb_0_qmpphy_dp_in {
1155	remote-endpoint = <&mdss0_dp0_out>;
1156};
1157
1158&usb_0_qmpphy_out {
1159	remote-endpoint = <&pmic_glink_con0_ss>;
1160};
1161
1162&usb_0_role_switch {
1163	remote-endpoint = <&pmic_glink_con0_hs>;
1164};
1165
1166&usb_1 {
1167	status = "okay";
1168};
1169
1170&usb_1_dwc3 {
1171	dr_mode = "host";
1172};
1173
1174&usb_1_hsphy {
1175	vdda-pll-supply = <&vreg_l4b>;
1176	vdda18-supply = <&vreg_l1c>;
1177	vdda33-supply = <&vreg_l13c>;
1178
1179	status = "okay";
1180};
1181
1182&usb_1_qmpphy {
1183	vdda-phy-supply = <&vreg_l4b>;
1184	vdda-pll-supply = <&vreg_l3b>;
1185
1186	orientation-switch;
1187
1188	status = "okay";
1189};
1190
1191&usb_1_qmpphy_dp_in {
1192	remote-endpoint = <&mdss0_dp1_out>;
1193};
1194
1195&usb_1_qmpphy_out {
1196	remote-endpoint = <&pmic_glink_con1_ss>;
1197};
1198
1199&usb_1_role_switch {
1200	remote-endpoint = <&pmic_glink_con1_hs>;
1201};
1202
1203&vamacro {
1204	pinctrl-0 = <&dmic01_default>, <&dmic02_default>;
1205	pinctrl-names = "default";
1206
1207	vdd-micb-supply = <&vreg_s10b>;
1208
1209	qcom,dmic-sample-rate = <4800000>;
1210
1211	status = "okay";
1212};
1213
1214&wsamacro {
1215	status = "okay";
1216};
1217
1218&xo_board_clk {
1219	clock-frequency = <38400000>;
1220};
1221
1222/* PINCTRL */
1223
1224&lpass_tlmm {
1225	status = "okay";
1226};
1227
1228&pmc8280_1_gpios {
1229	edp_bl_en: edp-bl-en-state {
1230		pins = "gpio8";
1231		function = "normal";
1232	};
1233
1234	edp_bl_reg_en: edp-bl-reg-en-state {
1235		pins = "gpio9";
1236		function = "normal";
1237	};
1238
1239	misc_3p3_reg_en: misc-3p3-reg-en-state {
1240		pins = "gpio1";
1241		function = "normal";
1242	};
1243};
1244
1245&pmc8280_2_gpios {
1246	wwan_sw_en: wwan-sw-en-state {
1247		pins = "gpio1";
1248		function = "normal";
1249	};
1250};
1251
1252&pmc8280c_gpios {
1253	edp_bl_pwm: edp-bl-pwm-state {
1254		pins = "gpio8";
1255		function = "func1";
1256	};
1257};
1258
1259&pmr735a_gpios {
1260	hastings_reg_en: hastings-reg-en-state {
1261		pins = "gpio1";
1262		function = "normal";
1263	};
1264};
1265
1266&tlmm {
1267	gpio-reserved-ranges = <70 2>, <74 6>, <125 2>, <128 2>, <154 4>;
1268
1269	bt_default: bt-default-state {
1270		hstp-bt-en-pins {
1271			pins = "gpio133";
1272			function = "gpio";
1273			drive-strength = <16>;
1274			bias-disable;
1275		};
1276
1277		hstp-sw-ctrl-pins {
1278			pins = "gpio132";
1279			function = "gpio";
1280			bias-pull-down;
1281		};
1282	};
1283
1284	cam_indicator_en: cam-indicator-en-state {
1285		pins = "gpio28";
1286		function = "gpio";
1287		drive-strength = <2>;
1288		bias-disable;
1289	};
1290
1291	edp_reg_en: edp-reg-en-state {
1292		pins = "gpio25";
1293		function = "gpio";
1294		drive-strength = <16>;
1295		bias-disable;
1296	};
1297
1298	hall_int_n_default: hall-int-n-state {
1299		pins = "gpio107";
1300		function = "gpio";
1301		bias-disable;
1302	};
1303
1304	i2c4_default: i2c4-default-state {
1305		pins = "gpio171", "gpio172";
1306		function = "qup4";
1307		drive-strength = <16>;
1308		bias-disable;
1309	};
1310
1311	i2c21_default: i2c21-default-state {
1312		pins = "gpio81", "gpio82";
1313		function = "qup21";
1314		drive-strength = <16>;
1315		bias-disable;
1316	};
1317
1318	kybd_default: kybd-default-state {
1319		disable-pins {
1320			pins = "gpio102";
1321			function = "gpio";
1322			output-low;
1323		};
1324
1325		int-n-pins {
1326			pins = "gpio104";
1327			function = "gpio";
1328			bias-disable;
1329		};
1330
1331		reset-pins {
1332			pins = "gpio105";
1333			function = "gpio";
1334			bias-disable;
1335		};
1336	};
1337
1338	nvme_reg_en: nvme-reg-en-state {
1339		pins = "gpio135";
1340		function = "gpio";
1341		drive-strength = <2>;
1342		bias-disable;
1343	};
1344
1345	pcie2a_default: pcie2a-default-state {
1346		clkreq-n-pins {
1347			pins = "gpio142";
1348			function = "pcie2a_clkreq";
1349			drive-strength = <2>;
1350			bias-pull-up;
1351		};
1352
1353		perst-n-pins {
1354			pins = "gpio143";
1355			function = "gpio";
1356			drive-strength = <2>;
1357			bias-pull-down;
1358		};
1359
1360		wake-n-pins {
1361		       pins = "gpio145";
1362		       function = "gpio";
1363		       drive-strength = <2>;
1364		       bias-pull-up;
1365	       };
1366	};
1367
1368	pcie3a_default: pcie3a-default-state {
1369		clkreq-n-pins {
1370			pins = "gpio150";
1371			function = "pcie3a_clkreq";
1372			drive-strength = <2>;
1373			bias-pull-up;
1374		};
1375
1376		perst-n-pins {
1377			pins = "gpio151";
1378			function = "gpio";
1379			drive-strength = <2>;
1380			bias-pull-down;
1381		};
1382
1383		wake-n-pins {
1384			pins = "gpio148";
1385			function = "gpio";
1386			drive-strength = <2>;
1387			bias-pull-up;
1388		};
1389	};
1390
1391	pcie4_default: pcie4-default-state {
1392		clkreq-n-pins {
1393			pins = "gpio140";
1394			function = "pcie4_clkreq";
1395			drive-strength = <2>;
1396			bias-pull-up;
1397		};
1398
1399		perst-n-pins {
1400			pins = "gpio141";
1401			function = "gpio";
1402			drive-strength = <2>;
1403			bias-pull-down;
1404		};
1405
1406		wake-n-pins {
1407			pins = "gpio139";
1408			function = "gpio";
1409			drive-strength = <2>;
1410			bias-pull-up;
1411		};
1412	};
1413
1414	spkr_1_sd_n_default: spkr-1-sd-n-default-state {
1415		perst-n-pins {
1416			pins = "gpio178";
1417			function = "gpio";
1418			drive-strength = <16>;
1419			bias-disable;
1420			output-high;
1421		};
1422	};
1423
1424	spkr_2_sd_n_default: spkr-2-sd-n-default-state {
1425		perst-n-pins {
1426			pins = "gpio179";
1427			function = "gpio";
1428			drive-strength = <16>;
1429			bias-disable;
1430			output-high;
1431		};
1432	};
1433
1434	tpad_default: tpad-default-state {
1435		int-n-pins {
1436			pins = "gpio182";
1437			function = "gpio";
1438			bias-disable;
1439		};
1440	};
1441
1442	ts0_default: ts0-default-state {
1443		int-n-pins {
1444			pins = "gpio175";
1445			function = "gpio";
1446			bias-disable;
1447		};
1448
1449		reset-n-pins {
1450			pins = "gpio99";
1451			function = "gpio";
1452			output-high;
1453			drive-strength = <16>;
1454		};
1455	};
1456
1457	uart2_default: uart2-default-state {
1458		cts-pins {
1459			pins = "gpio121";
1460			function = "qup2";
1461			bias-bus-hold;
1462		};
1463
1464		rts-pins {
1465			pins = "gpio122";
1466			function = "qup2";
1467			drive-strength = <2>;
1468			bias-disable;
1469		};
1470
1471		rx-pins {
1472			pins = "gpio124";
1473			function = "qup2";
1474			bias-pull-up;
1475		};
1476
1477		tx-pins {
1478			pins = "gpio123";
1479			function = "qup2";
1480			drive-strength = <2>;
1481			bias-disable;
1482		};
1483	};
1484
1485	usb0_sbu_default: usb0-sbu-state {
1486		oe-n-pins {
1487			pins = "gpio101";
1488			function = "gpio";
1489			bias-disable;
1490			drive-strength = <16>;
1491			output-high;
1492		};
1493
1494		sel-pins {
1495			pins = "gpio164";
1496			function = "gpio";
1497			bias-disable;
1498			drive-strength = <16>;
1499		};
1500	};
1501
1502	usb1_sbu_default: usb1-sbu-state {
1503		oe-n-pins {
1504			pins = "gpio48";
1505			function = "gpio";
1506			bias-disable;
1507			drive-strength = <16>;
1508			output-high;
1509		};
1510
1511		sel-pins {
1512			pins = "gpio47";
1513			function = "gpio";
1514			bias-disable;
1515			drive-strength = <16>;
1516		};
1517	};
1518
1519	wcd_default: wcd-default-state {
1520		reset-pins {
1521			pins = "gpio106";
1522			function = "gpio";
1523			bias-disable;
1524		};
1525	};
1526};
1527