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