1// SPDX-License-Identifier: BSD-3-Clause
2/*
3 * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved.
4 * Copyright (c) 2024, Linaro Limited
5 */
6
7/dts-v1/;
8
9#include <dt-bindings/gpio/gpio.h>
10#include <dt-bindings/input/gpio-keys.h>
11#include <dt-bindings/input/input.h>
12#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
13
14#include "x1e80100.dtsi"
15#include "x1e80100-pmics.dtsi"
16
17/ {
18	model = "Lenovo ThinkPad T14s Gen 6";
19	compatible = "lenovo,thinkpad-t14s", "qcom,x1e78100", "qcom,x1e80100";
20	chassis-type = "laptop";
21
22	wcd938x: audio-codec {
23		compatible = "qcom,wcd9385-codec";
24
25		pinctrl-0 = <&wcd_default>;
26		pinctrl-names = "default";
27
28		qcom,micbias1-microvolt = <1800000>;
29		qcom,micbias2-microvolt = <1800000>;
30		qcom,micbias3-microvolt = <1800000>;
31		qcom,micbias4-microvolt = <1800000>;
32		qcom,mbhc-buttons-vthreshold-microvolt = <75000 150000 237000 500000 500000 500000 500000 500000>;
33		qcom,mbhc-headset-vthreshold-microvolt = <1700000>;
34		qcom,mbhc-headphone-vthreshold-microvolt = <50000>;
35		qcom,rx-device = <&wcd_rx>;
36		qcom,tx-device = <&wcd_tx>;
37
38		reset-gpios = <&tlmm 191 GPIO_ACTIVE_LOW>;
39
40		vdd-buck-supply = <&vreg_l15b_1p8>;
41		vdd-rxtx-supply = <&vreg_l15b_1p8>;
42		vdd-io-supply = <&vreg_l15b_1p8>;
43		vdd-mic-bias-supply = <&vreg_bob1>;
44
45		#sound-dai-cells = <1>;
46	};
47
48	gpio-keys {
49		compatible = "gpio-keys";
50
51		pinctrl-0 = <&hall_int_n_default>;
52		pinctrl-names = "default";
53
54		switch-lid {
55			gpios = <&tlmm 92 GPIO_ACTIVE_LOW>;
56			linux,input-type = <EV_SW>;
57			linux,code = <SW_LID>;
58			wakeup-source;
59			wakeup-event-action = <EV_ACT_DEASSERTED>;
60		};
61	};
62
63	pmic-glink {
64		compatible = "qcom,x1e80100-pmic-glink",
65			     "qcom,sm8550-pmic-glink",
66			     "qcom,pmic-glink";
67		orientation-gpios = <&tlmm 121 GPIO_ACTIVE_HIGH>,
68				    <&tlmm 123 GPIO_ACTIVE_HIGH>;
69		#address-cells = <1>;
70		#size-cells = <0>;
71
72		/* Display-adjacent port */
73		connector@0 {
74			compatible = "usb-c-connector";
75			reg = <0>;
76			power-role = "dual";
77			data-role = "dual";
78
79			ports {
80				#address-cells = <1>;
81				#size-cells = <0>;
82
83				port@0 {
84					reg = <0>;
85
86					pmic_glink_ss0_hs_in: endpoint {
87						remote-endpoint = <&usb_1_ss0_dwc3_hs>;
88					};
89				};
90
91				port@1 {
92					reg = <1>;
93
94					pmic_glink_ss0_ss_in: endpoint {
95						remote-endpoint = <&usb_1_ss0_qmpphy_out>;
96					};
97				};
98			};
99		};
100
101		/* User-adjacent port */
102		connector@1 {
103			compatible = "usb-c-connector";
104			reg = <1>;
105			power-role = "dual";
106			data-role = "dual";
107
108			ports {
109				#address-cells = <1>;
110				#size-cells = <0>;
111
112				port@0 {
113					reg = <0>;
114
115					pmic_glink_ss1_hs_in: endpoint {
116						remote-endpoint = <&usb_1_ss1_dwc3_hs>;
117					};
118				};
119
120				port@1 {
121					reg = <1>;
122
123					pmic_glink_ss1_ss_in: endpoint {
124						remote-endpoint = <&usb_1_ss1_qmpphy_out>;
125					};
126				};
127			};
128		};
129	};
130
131	reserved-memory {
132		linux,cma {
133			compatible = "shared-dma-pool";
134			size = <0x0 0x8000000>;
135			reusable;
136			linux,cma-default;
137		};
138	};
139
140	vreg_edp_3p3: regulator-edp-3p3 {
141		compatible = "regulator-fixed";
142
143		regulator-name = "VREG_EDP_3P3";
144		regulator-min-microvolt = <3300000>;
145		regulator-max-microvolt = <3300000>;
146
147		gpio = <&tlmm 70 GPIO_ACTIVE_HIGH>;
148		enable-active-high;
149
150		pinctrl-0 = <&edp_reg_en>;
151		pinctrl-names = "default";
152
153		regulator-boot-on;
154	};
155
156	vreg_nvme: regulator-nvme {
157		compatible = "regulator-fixed";
158
159		regulator-name = "VREG_NVME_3P3";
160		regulator-min-microvolt = <3300000>;
161		regulator-max-microvolt = <3300000>;
162
163		gpio = <&tlmm 18 GPIO_ACTIVE_HIGH>;
164		enable-active-high;
165
166		pinctrl-0 = <&nvme_reg_en>;
167		pinctrl-names = "default";
168
169		regulator-boot-on;
170	};
171
172	vph_pwr: regulator-vph-pwr {
173		compatible = "regulator-fixed";
174
175		regulator-name = "vph_pwr";
176		regulator-min-microvolt = <3700000>;
177		regulator-max-microvolt = <3700000>;
178
179		regulator-always-on;
180		regulator-boot-on;
181	};
182
183	sound {
184		compatible = "qcom,x1e80100-sndcard";
185		model = "X1E80100-LENOVO-Thinkpad-T14s";
186		audio-routing = "SpkrLeft IN", "WSA WSA_SPK1 OUT",
187				"SpkrRight IN", "WSA WSA_SPK2 OUT",
188				"IN1_HPHL", "HPHL_OUT",
189				"IN2_HPHR", "HPHR_OUT",
190				"AMIC2", "MIC BIAS2",
191				"VA DMIC0", "MIC BIAS1",
192				"VA DMIC1", "MIC BIAS1",
193				"VA DMIC0", "VA MIC BIAS1",
194				"VA DMIC1", "VA MIC BIAS1",
195				"TX SWR_INPUT1", "ADC2_OUTPUT";
196
197		wcd-playback-dai-link {
198			link-name = "WCD Playback";
199
200			cpu {
201				sound-dai = <&q6apmbedai RX_CODEC_DMA_RX_0>;
202			};
203
204			codec {
205				sound-dai = <&wcd938x 0>, <&swr1 0>, <&lpass_rxmacro 0>;
206			};
207
208			platform {
209				sound-dai = <&q6apm>;
210			};
211		};
212
213		wcd-capture-dai-link {
214			link-name = "WCD Capture";
215
216			cpu {
217				sound-dai = <&q6apmbedai TX_CODEC_DMA_TX_3>;
218			};
219
220			codec {
221				sound-dai = <&wcd938x 1>, <&swr2 1>, <&lpass_txmacro 0>;
222			};
223
224			platform {
225				sound-dai = <&q6apm>;
226			};
227		};
228
229		wsa-dai-link {
230			link-name = "WSA Playback";
231
232			cpu {
233				sound-dai = <&q6apmbedai WSA_CODEC_DMA_RX_0>;
234			};
235
236			codec {
237				sound-dai = <&left_spkr>, <&right_spkr>, <&swr0 0>, <&lpass_wsamacro 0>;
238			};
239
240			platform {
241				sound-dai = <&q6apm>;
242			};
243		};
244
245		va-dai-link {
246			link-name = "VA Capture";
247
248			cpu {
249				sound-dai = <&q6apmbedai VA_CODEC_DMA_TX_0>;
250			};
251
252			codec {
253				sound-dai = <&lpass_vamacro 0>;
254			};
255
256			platform {
257				sound-dai = <&q6apm>;
258			};
259		};
260	};
261};
262
263&apps_rsc {
264	regulators-0 {
265		compatible = "qcom,pm8550-rpmh-regulators";
266		qcom,pmic-id = "b";
267
268		vdd-bob1-supply = <&vph_pwr>;
269		vdd-bob2-supply = <&vph_pwr>;
270		vdd-l1-l4-l10-supply = <&vreg_s4c_1p8>;
271		vdd-l2-l13-l14-supply = <&vreg_bob1>;
272		vdd-l5-l16-supply = <&vreg_bob1>;
273		vdd-l6-l7-supply = <&vreg_bob2>;
274		vdd-l8-l9-supply = <&vreg_bob1>;
275		vdd-l12-supply = <&vreg_s5j_1p2>;
276		vdd-l15-supply = <&vreg_s4c_1p8>;
277		vdd-l17-supply = <&vreg_bob2>;
278
279		vreg_bob1: bob1 {
280			regulator-name = "vreg_bob1";
281			regulator-min-microvolt = <3008000>;
282			regulator-max-microvolt = <3960000>;
283			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
284		};
285
286		vreg_bob2: bob2 {
287			regulator-name = "vreg_bob2";
288			regulator-min-microvolt = <2504000>;
289			regulator-max-microvolt = <3008000>;
290			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
291		};
292
293		vreg_l1b_1p8: ldo1 {
294			regulator-name = "vreg_l1b_1p8";
295			regulator-min-microvolt = <1800000>;
296			regulator-max-microvolt = <1800000>;
297			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
298		};
299
300		vreg_l2b_3p0: ldo2 {
301			regulator-name = "vreg_l2b_3p0";
302			regulator-min-microvolt = <3072000>;
303			regulator-max-microvolt = <3072000>;
304			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
305		};
306
307		vreg_l4b_1p8: ldo4 {
308			regulator-name = "vreg_l4b_1p8";
309			regulator-min-microvolt = <1800000>;
310			regulator-max-microvolt = <1800000>;
311			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
312		};
313
314		vreg_l6b_1p8: ldo6 {
315			regulator-name = "vreg_l6b_1p8";
316			regulator-min-microvolt = <1800000>;
317			regulator-max-microvolt = <2960000>;
318			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
319		};
320
321		vreg_l8b_3p0: ldo8 {
322			regulator-name = "vreg_l8b_3p0";
323			regulator-min-microvolt = <3072000>;
324			regulator-max-microvolt = <3072000>;
325			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
326		};
327
328		vreg_l9b_2p9: ldo9 {
329			regulator-name = "vreg_l9b_2p9";
330			regulator-min-microvolt = <2960000>;
331			regulator-max-microvolt = <2960000>;
332			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
333		};
334
335		vreg_l10b_1p8: ldo10 {
336			regulator-name = "vreg_l10b_1p8";
337			regulator-min-microvolt = <1800000>;
338			regulator-max-microvolt = <1800000>;
339			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
340		};
341
342		vreg_l12b_1p2: ldo12 {
343			regulator-name = "vreg_l12b_1p2";
344			regulator-min-microvolt = <1200000>;
345			regulator-max-microvolt = <1200000>;
346			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
347		};
348
349		vreg_l13b_3p0: ldo13 {
350			regulator-name = "vreg_l13b_3p0";
351			regulator-min-microvolt = <3072000>;
352			regulator-max-microvolt = <3072000>;
353			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
354		};
355
356		vreg_l14b_3p0: ldo14 {
357			regulator-name = "vreg_l14b_3p0";
358			regulator-min-microvolt = <3072000>;
359			regulator-max-microvolt = <3072000>;
360			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
361		};
362
363		vreg_l15b_1p8: ldo15 {
364			regulator-name = "vreg_l15b_1p8";
365			regulator-min-microvolt = <1800000>;
366			regulator-max-microvolt = <1800000>;
367			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
368		};
369
370		vreg_l17b_2p5: ldo17 {
371			regulator-name = "vreg_l17b_2p5";
372			regulator-min-microvolt = <2504000>;
373			regulator-max-microvolt = <2504000>;
374			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
375		};
376	};
377
378	regulators-1 {
379		compatible = "qcom,pm8550ve-rpmh-regulators";
380		qcom,pmic-id = "c";
381
382		vdd-l1-supply = <&vreg_s5j_1p2>;
383		vdd-l2-supply = <&vreg_s1f_0p7>;
384		vdd-l3-supply = <&vreg_s1f_0p7>;
385		vdd-s4-supply = <&vph_pwr>;
386
387		vreg_s4c_1p8: smps4 {
388			regulator-name = "vreg_s4c_1p8";
389			regulator-min-microvolt = <1856000>;
390			regulator-max-microvolt = <2000000>;
391			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
392		};
393
394		vreg_l1c_1p2: ldo1 {
395			regulator-name = "vreg_l1c_1p2";
396			regulator-min-microvolt = <1200000>;
397			regulator-max-microvolt = <1200000>;
398			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
399		};
400
401		vreg_l2c_0p8: ldo2 {
402			regulator-name = "vreg_l2c_0p8";
403			regulator-min-microvolt = <880000>;
404			regulator-max-microvolt = <880000>;
405			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
406		};
407
408		vreg_l3c_0p8: ldo3 {
409			regulator-name = "vreg_l3c_0p8";
410			regulator-min-microvolt = <912000>;
411			regulator-max-microvolt = <912000>;
412			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
413		};
414	};
415
416	regulators-2 {
417		compatible = "qcom,pmc8380-rpmh-regulators";
418		qcom,pmic-id = "d";
419
420		vdd-l1-supply = <&vreg_s1f_0p7>;
421		vdd-l2-supply = <&vreg_s1f_0p7>;
422		vdd-l3-supply = <&vreg_s4c_1p8>;
423		vdd-s1-supply = <&vph_pwr>;
424
425		vreg_l1d_0p8: ldo1 {
426			regulator-name = "vreg_l1d_0p8";
427			regulator-min-microvolt = <880000>;
428			regulator-max-microvolt = <880000>;
429			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
430		};
431
432		vreg_l2d_0p9: ldo2 {
433			regulator-name = "vreg_l2d_0p9";
434			regulator-min-microvolt = <912000>;
435			regulator-max-microvolt = <912000>;
436			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
437		};
438
439		vreg_l3d_1p8: ldo3 {
440			regulator-name = "vreg_l3d_1p8";
441			regulator-min-microvolt = <1800000>;
442			regulator-max-microvolt = <1800000>;
443			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
444		};
445	};
446
447	regulators-3 {
448		compatible = "qcom,pmc8380-rpmh-regulators";
449		qcom,pmic-id = "e";
450
451		vdd-l2-supply = <&vreg_s1f_0p7>;
452		vdd-l3-supply = <&vreg_s5j_1p2>;
453
454		vreg_l2e_0p8: ldo2 {
455			regulator-name = "vreg_l2e_0p8";
456			regulator-min-microvolt = <880000>;
457			regulator-max-microvolt = <880000>;
458			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
459		};
460
461		vreg_l3e_1p2: ldo3 {
462			regulator-name = "vreg_l3e_1p2";
463			regulator-min-microvolt = <1200000>;
464			regulator-max-microvolt = <1200000>;
465			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
466		};
467	};
468
469	regulators-4 {
470		compatible = "qcom,pmc8380-rpmh-regulators";
471		qcom,pmic-id = "f";
472
473		vdd-l1-supply = <&vreg_s5j_1p2>;
474		vdd-l2-supply = <&vreg_s5j_1p2>;
475		vdd-l3-supply = <&vreg_s5j_1p2>;
476		vdd-s1-supply = <&vph_pwr>;
477
478		vreg_s1f_0p7: smps1 {
479			regulator-name = "vreg_s1f_0p7";
480			regulator-min-microvolt = <700000>;
481			regulator-max-microvolt = <1100000>;
482			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
483		};
484	};
485
486	regulators-6 {
487		compatible = "qcom,pm8550ve-rpmh-regulators";
488		qcom,pmic-id = "i";
489
490		vdd-l1-supply = <&vreg_s4c_1p8>;
491		vdd-l2-supply = <&vreg_s5j_1p2>;
492		vdd-l3-supply = <&vreg_s1f_0p7>;
493		vdd-s1-supply = <&vph_pwr>;
494		vdd-s2-supply = <&vph_pwr>;
495
496		vreg_l1i_1p8: ldo1 {
497			regulator-name = "vreg_l1i_1p8";
498			regulator-min-microvolt = <1800000>;
499			regulator-max-microvolt = <1800000>;
500			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
501		};
502
503		vreg_l2i_1p2: ldo2 {
504			regulator-name = "vreg_l2i_1p2";
505			regulator-min-microvolt = <1200000>;
506			regulator-max-microvolt = <1200000>;
507			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
508		};
509
510		vreg_l3i_0p8: ldo3 {
511			regulator-name = "vreg_l3i_0p8";
512			regulator-min-microvolt = <880000>;
513			regulator-max-microvolt = <880000>;
514			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
515		};
516	};
517
518	regulators-7 {
519		compatible = "qcom,pm8550ve-rpmh-regulators";
520		qcom,pmic-id = "j";
521
522		vdd-l1-supply = <&vreg_s1f_0p7>;
523		vdd-l2-supply = <&vreg_s5j_1p2>;
524		vdd-l3-supply = <&vreg_s1f_0p7>;
525		vdd-s5-supply = <&vph_pwr>;
526
527		vreg_s5j_1p2: smps5 {
528			regulator-name = "vreg_s5j_1p2";
529			regulator-min-microvolt = <1256000>;
530			regulator-max-microvolt = <1304000>;
531			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
532		};
533
534		vreg_l1j_0p8: ldo1 {
535			regulator-name = "vreg_l1j_0p8";
536			regulator-min-microvolt = <912000>;
537			regulator-max-microvolt = <912000>;
538			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
539		};
540
541		vreg_l2j_1p2: ldo2 {
542			regulator-name = "vreg_l2j_1p2";
543			regulator-min-microvolt = <1256000>;
544			regulator-max-microvolt = <1256000>;
545			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
546		};
547
548		vreg_l3j_0p8: ldo3 {
549			regulator-name = "vreg_l3j_0p8";
550			regulator-min-microvolt = <880000>;
551			regulator-max-microvolt = <880000>;
552			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
553		};
554	};
555};
556
557&gpu {
558	status = "okay";
559
560	zap-shader {
561		firmware-name = "qcom/x1e80100/LENOVO/21N1/qcdxkmsuc8380.mbn";
562	};
563};
564
565&i2c0 {
566	clock-frequency = <400000>;
567
568	pinctrl-0 = <&qup_i2c0_data_clk>, <&tpad_default>;
569	pinctrl-names = "default";
570
571	status = "okay";
572
573	/* ELAN06E2 or ELAN06E3 */
574	touchpad@15 {
575		compatible = "hid-over-i2c";
576		reg = <0x15>;
577
578		hid-descr-addr = <0x1>;
579		interrupts-extended = <&tlmm 3 IRQ_TYPE_LEVEL_LOW>;
580
581		wakeup-source;
582	};
583
584	/* SYNA8022 or SYNA8024 */
585	touchpad@2c {
586		compatible = "hid-over-i2c";
587		reg = <0x2c>;
588
589		hid-descr-addr = <0x20>;
590		interrupts-extended = <&tlmm 3 IRQ_TYPE_LEVEL_LOW>;
591
592		wakeup-source;
593	};
594
595	/* ELAN06F1 or SYNA06F2 */
596	keyboard@3a {
597		compatible = "hid-over-i2c";
598		reg = <0x3a>;
599
600		hid-descr-addr = <0x1>;
601		interrupts-extended = <&tlmm 67 IRQ_TYPE_LEVEL_LOW>;
602
603		pinctrl-0 = <&kybd_default>;
604		pinctrl-names = "default";
605
606		wakeup-source;
607	};
608};
609
610&i2c5 {
611	clock-frequency = <400000>;
612
613	status = "okay";
614
615	eusb5_repeater: redriver@43 {
616		compatible = "nxp,ptn3222";
617		reg = <0x43>;
618		#phy-cells = <0>;
619
620		vdd3v3-supply = <&vreg_l13b_3p0>;
621		vdd1v8-supply = <&vreg_l4b_1p8>;
622
623		reset-gpios = <&tlmm 7 GPIO_ACTIVE_LOW>;
624
625		pinctrl-0 = <&eusb5_reset_n>;
626		pinctrl-names = "default";
627	};
628
629	eusb3_repeater: redriver@47 {
630		compatible = "nxp,ptn3222";
631		reg = <0x47>;
632		#phy-cells = <0>;
633
634		vdd3v3-supply = <&vreg_l13b_3p0>;
635		vdd1v8-supply = <&vreg_l4b_1p8>;
636
637		reset-gpios = <&tlmm 6 GPIO_ACTIVE_LOW>;
638
639		pinctrl-0 = <&eusb3_reset_n>;
640		pinctrl-names = "default";
641	};
642
643	eusb6_repeater: redriver@4f {
644		compatible = "nxp,ptn3222";
645		reg = <0x4f>;
646		#phy-cells = <0>;
647
648		vdd3v3-supply = <&vreg_l13b_3p0>;
649		vdd1v8-supply = <&vreg_l4b_1p8>;
650
651		reset-gpios = <&tlmm 184 GPIO_ACTIVE_LOW>;
652
653		pinctrl-0 = <&eusb6_reset_n>;
654		pinctrl-names = "default";
655	};
656};
657
658&i2c8 {
659	clock-frequency = <400000>;
660
661	status = "okay";
662
663	/* ILIT2911 or GTCH1563 */
664	touchscreen@10 {
665		compatible = "hid-over-i2c";
666		reg = <0x10>;
667
668		hid-descr-addr = <0x1>;
669		interrupts-extended = <&tlmm 51 IRQ_TYPE_LEVEL_LOW>;
670
671		pinctrl-0 = <&ts0_default>;
672		pinctrl-names = "default";
673	};
674
675	/* TODO: second-sourced touchscreen @ 0x41 */
676};
677
678&lpass_tlmm {
679	spkr_01_sd_n_active: spkr-01-sd-n-active-state {
680		pins = "gpio12";
681		function = "gpio";
682		drive-strength = <16>;
683		bias-disable;
684		output-low;
685	};
686};
687
688&lpass_vamacro {
689	pinctrl-0 = <&dmic01_default>;
690	pinctrl-names = "default";
691
692	vdd-micb-supply = <&vreg_l1b_1p8>;
693	qcom,dmic-sample-rate = <4800000>;
694};
695
696&mdss {
697	status = "okay";
698};
699
700&mdss_dp3 {
701	compatible = "qcom,x1e80100-dp";
702	/delete-property/ #sound-dai-cells;
703
704	status = "okay";
705
706	aux-bus {
707		panel {
708			compatible = "edp-panel";
709			enable-gpios = <&pmc8380_3_gpios 4 GPIO_ACTIVE_HIGH>;
710			power-supply = <&vreg_edp_3p3>;
711
712			pinctrl-0 = <&edp_bl_en>;
713			pinctrl-names = "default";
714
715			port {
716				edp_panel_in: endpoint {
717					remote-endpoint = <&mdss_dp3_out>;
718				};
719			};
720		};
721	};
722
723	ports {
724		port@1 {
725			reg = <1>;
726
727			mdss_dp3_out: endpoint {
728				data-lanes = <0 1 2 3>;
729				link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>;
730
731				remote-endpoint = <&edp_panel_in>;
732			};
733		};
734	};
735};
736
737&mdss_dp3_phy {
738	vdda-phy-supply = <&vreg_l3j_0p8>;
739	vdda-pll-supply = <&vreg_l2j_1p2>;
740
741	status = "okay";
742};
743
744&pcie4 {
745	perst-gpios = <&tlmm 146 GPIO_ACTIVE_LOW>;
746	wake-gpios = <&tlmm 148 GPIO_ACTIVE_LOW>;
747
748	pinctrl-0 = <&pcie4_default>;
749	pinctrl-names = "default";
750
751	status = "okay";
752};
753
754&pcie4_phy {
755	vdda-phy-supply = <&vreg_l3i_0p8>;
756	vdda-pll-supply = <&vreg_l3e_1p2>;
757
758	status = "okay";
759};
760
761&pcie6a {
762	perst-gpios = <&tlmm 152 GPIO_ACTIVE_LOW>;
763	wake-gpios = <&tlmm 154 GPIO_ACTIVE_LOW>;
764
765	vddpe-3v3-supply = <&vreg_nvme>;
766
767	pinctrl-0 = <&pcie6a_default>;
768	pinctrl-names = "default";
769
770	status = "okay";
771};
772
773&pcie6a_phy {
774	vdda-phy-supply = <&vreg_l1d_0p8>;
775	vdda-pll-supply = <&vreg_l2j_1p2>;
776
777	status = "okay";
778};
779
780&pmc8380_3_gpios {
781	edp_bl_en: edp-bl-en-state {
782		pins = "gpio4";
783		function = "normal";
784		power-source = <1>;
785		input-disable;
786		output-enable;
787	};
788};
789
790&qupv3_0 {
791	status = "okay";
792};
793
794&qupv3_1 {
795	status = "okay";
796};
797
798&qupv3_2 {
799	status = "okay";
800};
801
802&remoteproc_adsp {
803	firmware-name = "qcom/x1e80100/LENOVO/21N1/qcadsp8380.mbn",
804			"qcom/x1e80100/LENOVO/21N1/adsp_dtbs.elf";
805
806	status = "okay";
807};
808
809&remoteproc_cdsp {
810	firmware-name = "qcom/x1e80100/LENOVO/21N1/qccdsp8380.mbn",
811			"qcom/x1e80100/LENOVO/21N1/cdsp_dtbs.elf";
812
813	status = "okay";
814};
815
816&smb2360_0 {
817	status = "okay";
818};
819
820&smb2360_0_eusb2_repeater {
821	vdd18-supply = <&vreg_l3d_1p8>;
822	vdd3-supply = <&vreg_l2b_3p0>;
823};
824
825&smb2360_1 {
826	status = "okay";
827};
828
829&smb2360_1_eusb2_repeater {
830	vdd18-supply = <&vreg_l3d_1p8>;
831	vdd3-supply = <&vreg_l14b_3p0>;
832};
833
834&swr0 {
835	status = "okay";
836
837	pinctrl-0 = <&wsa_swr_active>, <&spkr_01_sd_n_active>;
838	pinctrl-names = "default";
839
840	/* WSA8845, Left Speaker */
841	left_spkr: speaker@0,0 {
842		compatible = "sdw20217020400";
843		reg = <0 0>;
844		reset-gpios = <&lpass_tlmm 12 GPIO_ACTIVE_LOW>;
845		#sound-dai-cells = <0>;
846		sound-name-prefix = "SpkrLeft";
847		vdd-1p8-supply = <&vreg_l15b_1p8>;
848		vdd-io-supply = <&vreg_l12b_1p2>;
849		qcom,port-mapping = <1 2 3 7 10 13>;
850	};
851
852	/* WSA8845, Right Speaker */
853	right_spkr: speaker@0,1 {
854		compatible = "sdw20217020400";
855		reg = <0 1>;
856		reset-gpios = <&lpass_tlmm 12 GPIO_ACTIVE_LOW>;
857		#sound-dai-cells = <0>;
858		sound-name-prefix = "SpkrRight";
859		vdd-1p8-supply = <&vreg_l15b_1p8>;
860		vdd-io-supply = <&vreg_l12b_1p2>;
861		qcom,port-mapping = <4 5 6 7 11 13>;
862	};
863};
864
865&swr1 {
866	status = "okay";
867
868	/* WCD9385 RX */
869	wcd_rx: codec@0,4 {
870		compatible = "sdw20217010d00";
871		reg = <0 4>;
872		qcom,rx-port-mapping = <1 2 3 4 5>;
873	};
874};
875
876&swr2 {
877	status = "okay";
878
879	/* WCD9385 TX */
880	wcd_tx: codec@0,3 {
881		compatible = "sdw20217010d00";
882		reg = <0 3>;
883		qcom,tx-port-mapping = <2 2 3 4>;
884	};
885};
886
887&tlmm {
888	gpio-reserved-ranges = <34 2>, /* Unused */
889			       <44 4>, /* SPI (TPM) */
890			       <72 2>, /* Secure EC I2C connection (?) */
891			       <238 1>; /* UFS Reset */
892
893	eusb3_reset_n: eusb3-reset-n-state {
894		pins = "gpio6";
895		function = "gpio";
896		drive-strength = <2>;
897		bias-disable;
898		output-low;
899	};
900
901	eusb5_reset_n: eusb5-reset-n-state {
902		pins = "gpio7";
903		function = "gpio";
904		drive-strength = <2>;
905		bias-disable;
906		output-low;
907	};
908
909	eusb6_reset_n: eusb6-reset-n-state {
910		pins = "gpio184";
911		function = "gpio";
912		drive-strength = <2>;
913		bias-disable;
914		output-low;
915	};
916
917	tpad_default: tpad-default-state {
918		pins = "gpio3";
919		function = "gpio";
920		bias-pull-up;
921	};
922
923	nvme_reg_en: nvme-reg-en-state {
924		pins = "gpio18";
925		function = "gpio";
926		drive-strength = <2>;
927		bias-disable;
928	};
929
930	ts0_default: ts0-default-state {
931		reset-n-pins {
932			pins = "gpio48";
933			function = "gpio";
934			output-high;
935			drive-strength = <16>;
936		};
937
938		int-n-pins {
939			pins = "gpio51";
940			function = "gpio";
941			bias-disable;
942		};
943	};
944
945	kybd_default: kybd-default-state {
946		pins = "gpio67";
947		function = "gpio";
948		bias-disable;
949	};
950
951	edp_reg_en: edp-reg-en-state {
952		pins = "gpio70";
953		function = "gpio";
954		drive-strength = <16>;
955		bias-disable;
956	};
957
958	hall_int_n_default: hall-int-n-state {
959		pins = "gpio92";
960		function = "gpio";
961		bias-disable;
962	};
963
964	pcie4_default: pcie4-default-state {
965		clkreq-n-pins {
966			pins = "gpio147";
967			function = "pcie4_clk";
968			drive-strength = <2>;
969			bias-pull-up;
970		};
971
972		perst-n-pins {
973			pins = "gpio146";
974			function = "gpio";
975			drive-strength = <2>;
976			bias-disable;
977		};
978
979		wake-n-pins {
980			pins = "gpio148";
981			function = "gpio";
982			drive-strength = <2>;
983			bias-pull-up;
984		};
985	};
986
987	pcie6a_default: pcie6a-default-state {
988		clkreq-n-pins {
989			pins = "gpio153";
990			function = "pcie6a_clk";
991			drive-strength = <2>;
992			bias-pull-up;
993		};
994
995		perst-n-pins {
996			pins = "gpio152";
997			function = "gpio";
998			drive-strength = <2>;
999			bias-disable;
1000		};
1001
1002		wake-n-pins {
1003			pins = "gpio154";
1004			function = "gpio";
1005			drive-strength = <2>;
1006			bias-pull-up;
1007		};
1008	};
1009
1010	wcd_default: wcd-reset-n-active-state {
1011		pins = "gpio191";
1012		function = "gpio";
1013		drive-strength = <16>;
1014		bias-disable;
1015		output-low;
1016	};
1017};
1018
1019&usb_1_ss0_hsphy {
1020	vdd-supply = <&vreg_l3j_0p8>;
1021	vdda12-supply = <&vreg_l2j_1p2>;
1022
1023	phys = <&smb2360_0_eusb2_repeater>;
1024
1025	status = "okay";
1026};
1027
1028&usb_1_ss0_qmpphy {
1029	vdda-phy-supply = <&vreg_l2j_1p2>;
1030	vdda-pll-supply = <&vreg_l1j_0p8>;
1031
1032	status = "okay";
1033};
1034
1035&usb_1_ss0 {
1036	status = "okay";
1037};
1038
1039&usb_1_ss0_dwc3 {
1040	dr_mode = "host";
1041};
1042
1043&usb_1_ss0_dwc3_hs {
1044	remote-endpoint = <&pmic_glink_ss0_hs_in>;
1045};
1046
1047&usb_1_ss0_qmpphy_out {
1048	remote-endpoint = <&pmic_glink_ss0_ss_in>;
1049};
1050
1051&usb_1_ss1_hsphy {
1052	vdd-supply = <&vreg_l3j_0p8>;
1053	vdda12-supply = <&vreg_l2j_1p2>;
1054
1055	phys = <&smb2360_1_eusb2_repeater>;
1056
1057	status = "okay";
1058};
1059
1060&usb_1_ss1_qmpphy {
1061	vdda-phy-supply = <&vreg_l2j_1p2>;
1062	vdda-pll-supply = <&vreg_l2d_0p9>;
1063
1064	status = "okay";
1065};
1066
1067&usb_1_ss1 {
1068	status = "okay";
1069};
1070
1071&usb_1_ss1_dwc3 {
1072	dr_mode = "host";
1073};
1074
1075&usb_1_ss1_dwc3_hs {
1076	remote-endpoint = <&pmic_glink_ss1_hs_in>;
1077};
1078
1079&usb_1_ss1_qmpphy_out {
1080	remote-endpoint = <&pmic_glink_ss1_ss_in>;
1081};
1082
1083&usb_2 {
1084	status = "okay";
1085};
1086
1087&usb_2_dwc3 {
1088	dr_mode = "host";
1089};
1090
1091&usb_2_hsphy {
1092	vdd-supply = <&vreg_l2e_0p8>;
1093	vdda12-supply = <&vreg_l3e_1p2>;
1094
1095	phys = <&eusb5_repeater>;
1096
1097	status = "okay";
1098};
1099
1100&usb_mp {
1101	status = "okay";
1102};
1103
1104&usb_mp_hsphy0 {
1105	vdd-supply = <&vreg_l2e_0p8>;
1106	vdda12-supply = <&vreg_l3e_1p2>;
1107
1108	phys = <&eusb6_repeater>;
1109
1110	status = "okay";
1111};
1112
1113&usb_mp_hsphy1 {
1114	vdd-supply = <&vreg_l2e_0p8>;
1115	vdda12-supply = <&vreg_l3e_1p2>;
1116
1117	phys = <&eusb3_repeater>;
1118
1119	status = "okay";
1120};
1121
1122&usb_mp_qmpphy0 {
1123	vdda-phy-supply = <&vreg_l3e_1p2>;
1124	vdda-pll-supply = <&vreg_l3c_0p8>;
1125
1126	status = "okay";
1127};
1128
1129&usb_mp_qmpphy1 {
1130	vdda-phy-supply = <&vreg_l3e_1p2>;
1131	vdda-pll-supply = <&vreg_l3c_0p8>;
1132
1133	status = "okay";
1134};
1135