xref: /freebsd/sys/contrib/device-tree/src/arm64/qcom/sc8280xp-lenovo-thinkpad-x13s.dts (revision 031beb4e239bfce798af17f5fe8dba8bcaf13d99)
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 = <&mdss0_dp0_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 = <&mdss0_dp1_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 = <&pmic_glink_con0_ss>;
532};
533
534&mdss0_dp1 {
535	status = "okay";
536};
537
538&mdss0_dp1_out {
539	data-lanes = <0 1>;
540	remote-endpoint = <&pmic_glink_con1_ss>;
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	status = "okay";
1118};
1119
1120&usb_0_role_switch {
1121	remote-endpoint = <&pmic_glink_con0_hs>;
1122};
1123
1124&usb_1 {
1125	status = "okay";
1126};
1127
1128&usb_1_dwc3 {
1129	dr_mode = "host";
1130};
1131
1132&usb_1_hsphy {
1133	vdda-pll-supply = <&vreg_l4b>;
1134	vdda18-supply = <&vreg_l1c>;
1135	vdda33-supply = <&vreg_l13c>;
1136
1137	status = "okay";
1138};
1139
1140&usb_1_qmpphy {
1141	vdda-phy-supply = <&vreg_l4b>;
1142	vdda-pll-supply = <&vreg_l3b>;
1143
1144	status = "okay";
1145};
1146
1147&usb_1_role_switch {
1148	remote-endpoint = <&pmic_glink_con1_hs>;
1149};
1150
1151&vamacro {
1152	pinctrl-0 = <&dmic01_default>, <&dmic02_default>;
1153	pinctrl-names = "default";
1154
1155	vdd-micb-supply = <&vreg_s10b>;
1156
1157	qcom,dmic-sample-rate = <4800000>;
1158
1159	status = "okay";
1160};
1161
1162&wsamacro {
1163	status = "okay";
1164};
1165
1166&xo_board_clk {
1167	clock-frequency = <38400000>;
1168};
1169
1170/* PINCTRL */
1171
1172&lpass_tlmm {
1173	status = "okay";
1174};
1175
1176&pmc8280_1_gpios {
1177	edp_bl_en: edp-bl-en-state {
1178		pins = "gpio8";
1179		function = "normal";
1180	};
1181
1182	edp_bl_reg_en: edp-bl-reg-en-state {
1183		pins = "gpio9";
1184		function = "normal";
1185	};
1186
1187	misc_3p3_reg_en: misc-3p3-reg-en-state {
1188		pins = "gpio1";
1189		function = "normal";
1190	};
1191};
1192
1193&pmc8280_2_gpios {
1194	wwan_sw_en: wwan-sw-en-state {
1195		pins = "gpio1";
1196		function = "normal";
1197	};
1198};
1199
1200&pmc8280c_gpios {
1201	edp_bl_pwm: edp-bl-pwm-state {
1202		pins = "gpio8";
1203		function = "func1";
1204	};
1205};
1206
1207&pmr735a_gpios {
1208	hastings_reg_en: hastings-reg-en-state {
1209		pins = "gpio1";
1210		function = "normal";
1211	};
1212};
1213
1214&tlmm {
1215	gpio-reserved-ranges = <70 2>, <74 6>, <83 4>, <125 2>, <128 2>, <154 7>;
1216
1217	bt_default: bt-default-state {
1218		hstp-bt-en-pins {
1219			pins = "gpio133";
1220			function = "gpio";
1221			drive-strength = <16>;
1222			bias-disable;
1223		};
1224
1225		hstp-sw-ctrl-pins {
1226			pins = "gpio132";
1227			function = "gpio";
1228			bias-pull-down;
1229		};
1230	};
1231
1232	edp_reg_en: edp-reg-en-state {
1233		pins = "gpio25";
1234		function = "gpio";
1235		drive-strength = <16>;
1236		bias-disable;
1237	};
1238
1239	hall_int_n_default: hall-int-n-state {
1240		pins = "gpio107";
1241		function = "gpio";
1242		bias-disable;
1243	};
1244
1245	i2c4_default: i2c4-default-state {
1246		pins = "gpio171", "gpio172";
1247		function = "qup4";
1248		drive-strength = <16>;
1249		bias-disable;
1250	};
1251
1252	i2c21_default: i2c21-default-state {
1253		pins = "gpio81", "gpio82";
1254		function = "qup21";
1255		drive-strength = <16>;
1256		bias-disable;
1257	};
1258
1259	kybd_default: kybd-default-state {
1260		disable-pins {
1261			pins = "gpio102";
1262			function = "gpio";
1263			output-low;
1264		};
1265
1266		int-n-pins {
1267			pins = "gpio104";
1268			function = "gpio";
1269			bias-disable;
1270		};
1271
1272		reset-pins {
1273			pins = "gpio105";
1274			function = "gpio";
1275			bias-disable;
1276		};
1277	};
1278
1279	nvme_reg_en: nvme-reg-en-state {
1280		pins = "gpio135";
1281		function = "gpio";
1282		drive-strength = <2>;
1283		bias-disable;
1284	};
1285
1286	pcie2a_default: pcie2a-default-state {
1287		clkreq-n-pins {
1288			pins = "gpio142";
1289			function = "pcie2a_clkreq";
1290			drive-strength = <2>;
1291			bias-pull-up;
1292		};
1293
1294		perst-n-pins {
1295			pins = "gpio143";
1296			function = "gpio";
1297			drive-strength = <2>;
1298			bias-pull-down;
1299		};
1300
1301		wake-n-pins {
1302		       pins = "gpio145";
1303		       function = "gpio";
1304		       drive-strength = <2>;
1305		       bias-pull-up;
1306	       };
1307	};
1308
1309	pcie3a_default: pcie3a-default-state {
1310		clkreq-n-pins {
1311			pins = "gpio150";
1312			function = "pcie3a_clkreq";
1313			drive-strength = <2>;
1314			bias-pull-up;
1315		};
1316
1317		perst-n-pins {
1318			pins = "gpio151";
1319			function = "gpio";
1320			drive-strength = <2>;
1321			bias-pull-down;
1322		};
1323
1324		wake-n-pins {
1325			pins = "gpio148";
1326			function = "gpio";
1327			drive-strength = <2>;
1328			bias-pull-up;
1329		};
1330	};
1331
1332	pcie4_default: pcie4-default-state {
1333		clkreq-n-pins {
1334			pins = "gpio140";
1335			function = "pcie4_clkreq";
1336			drive-strength = <2>;
1337			bias-pull-up;
1338		};
1339
1340		perst-n-pins {
1341			pins = "gpio141";
1342			function = "gpio";
1343			drive-strength = <2>;
1344			bias-pull-down;
1345		};
1346
1347		wake-n-pins {
1348			pins = "gpio139";
1349			function = "gpio";
1350			drive-strength = <2>;
1351			bias-pull-up;
1352		};
1353	};
1354
1355	spkr_1_sd_n_default: spkr-1-sd-n-default-state {
1356		perst-n-pins {
1357			pins = "gpio178";
1358			function = "gpio";
1359			drive-strength = <16>;
1360			bias-disable;
1361			output-high;
1362		};
1363	};
1364
1365	spkr_2_sd_n_default: spkr-2-sd-n-default-state {
1366		perst-n-pins {
1367			pins = "gpio179";
1368			function = "gpio";
1369			drive-strength = <16>;
1370			bias-disable;
1371			output-high;
1372		};
1373	};
1374
1375	tpad_default: tpad-default-state {
1376		int-n-pins {
1377			pins = "gpio182";
1378			function = "gpio";
1379			bias-disable;
1380		};
1381	};
1382
1383	ts0_default: ts0-default-state {
1384		int-n-pins {
1385			pins = "gpio175";
1386			function = "gpio";
1387			bias-disable;
1388		};
1389
1390		reset-n-pins {
1391			pins = "gpio99";
1392			function = "gpio";
1393			output-high;
1394			drive-strength = <16>;
1395		};
1396	};
1397
1398	uart2_default: uart2-default-state {
1399		cts-pins {
1400			pins = "gpio121";
1401			function = "qup2";
1402			bias-bus-hold;
1403		};
1404
1405		rts-pins {
1406			pins = "gpio122";
1407			function = "qup2";
1408			drive-strength = <2>;
1409			bias-disable;
1410		};
1411
1412		rx-pins {
1413			pins = "gpio124";
1414			function = "qup2";
1415			bias-pull-up;
1416		};
1417
1418		tx-pins {
1419			pins = "gpio123";
1420			function = "qup2";
1421			drive-strength = <2>;
1422			bias-disable;
1423		};
1424	};
1425
1426	usb0_sbu_default: usb0-sbu-state {
1427		oe-n-pins {
1428			pins = "gpio101";
1429			function = "gpio";
1430			bias-disable;
1431			drive-strength = <16>;
1432			output-high;
1433		};
1434
1435		sel-pins {
1436			pins = "gpio164";
1437			function = "gpio";
1438			bias-disable;
1439			drive-strength = <16>;
1440		};
1441	};
1442
1443	usb1_sbu_default: usb1-sbu-state {
1444		oe-n-pins {
1445			pins = "gpio48";
1446			function = "gpio";
1447			bias-disable;
1448			drive-strength = <16>;
1449			output-high;
1450		};
1451
1452		sel-pins {
1453			pins = "gpio47";
1454			function = "gpio";
1455			bias-disable;
1456			drive-strength = <16>;
1457		};
1458	};
1459
1460	wcd_default: wcd-default-state {
1461		reset-pins {
1462			pins = "gpio106";
1463			function = "gpio";
1464			bias-disable;
1465		};
1466	};
1467};
1468