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