Linux 6.7-rc7
[linux-modified.git] / arch / arm64 / boot / dts / qcom / sc8280xp-lenovo-thinkpad-x13s.dts
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                 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 = "/*(DEBLOBBED)*/";
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 = "/*(DEBLOBBED)*/";
955
956         status = "okay";
957 };
958
959 &remoteproc_nsp0 {
960         firmware-name = "/*(DEBLOBBED)*/";
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 };