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