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