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