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