1// SPDX-License-Identifier: BSD-3-Clause 2/* 3 * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved. 4 * Copyright (c) 2024, Xilin Wu <[email protected]> 5 */ 6 7/dts-v1/; 8 9#include <dt-bindings/gpio/gpio.h> 10#include <dt-bindings/input/gpio-keys.h> 11#include <dt-bindings/regulator/qcom,rpmh-regulator.h> 12#include <dt-bindings/pinctrl/qcom,pmic-gpio.h> 13 14#include "x1e80100.dtsi" 15#include "x1e80100-pmics.dtsi" 16 17/ { 18 model = "ASUS Vivobook S 15"; 19 compatible = "asus,vivobook-s15", "qcom,x1e80100"; 20 chassis-type = "laptop"; 21 22 gpio-keys { 23 compatible = "gpio-keys"; 24 pinctrl-0 = <&hall_int_n_default>; 25 pinctrl-names = "default"; 26 27 switch-lid { 28 gpios = <&tlmm 92 GPIO_ACTIVE_LOW>; 29 linux,input-type = <EV_SW>; 30 linux,code = <SW_LID>; 31 wakeup-source; 32 wakeup-event-action = <EV_ACT_DEASSERTED>; 33 }; 34 }; 35 36 pmic-glink { 37 compatible = "qcom,x1e80100-pmic-glink", 38 "qcom,sm8550-pmic-glink", 39 "qcom,pmic-glink"; 40 orientation-gpios = <&tlmm 121 GPIO_ACTIVE_HIGH>, 41 <&tlmm 123 GPIO_ACTIVE_HIGH>; 42 #address-cells = <1>; 43 #size-cells = <0>; 44 45 /* Left-side port, closer to the screen */ 46 connector@0 { 47 compatible = "usb-c-connector"; 48 reg = <0>; 49 power-role = "dual"; 50 data-role = "dual"; 51 52 ports { 53 #address-cells = <1>; 54 #size-cells = <0>; 55 56 port@0 { 57 reg = <0>; 58 59 pmic_glink_ss0_hs_in: endpoint { 60 remote-endpoint = <&usb_1_ss0_dwc3_hs>; 61 }; 62 }; 63 64 port@1 { 65 reg = <1>; 66 67 pmic_glink_ss0_ss_in: endpoint { 68 remote-endpoint = <&usb_1_ss0_qmpphy_out>; 69 }; 70 }; 71 }; 72 }; 73 74 /* Left-side port, farther from the screen */ 75 connector@1 { 76 compatible = "usb-c-connector"; 77 reg = <1>; 78 power-role = "dual"; 79 data-role = "dual"; 80 81 ports { 82 #address-cells = <1>; 83 #size-cells = <0>; 84 85 port@0 { 86 reg = <0>; 87 88 pmic_glink_ss1_hs_in: endpoint { 89 remote-endpoint = <&usb_1_ss1_dwc3_hs>; 90 }; 91 }; 92 93 port@1 { 94 reg = <1>; 95 96 pmic_glink_ss1_ss_in: endpoint { 97 remote-endpoint = <&usb_1_ss1_qmpphy_out>; 98 }; 99 }; 100 }; 101 }; 102 }; 103 104 reserved-memory { 105 linux,cma { 106 compatible = "shared-dma-pool"; 107 size = <0x0 0x8000000>; 108 reusable; 109 linux,cma-default; 110 }; 111 }; 112 113 vreg_edp_3p3: regulator-edp-3p3 { 114 compatible = "regulator-fixed"; 115 116 regulator-name = "VREG_EDP_3P3"; 117 regulator-min-microvolt = <3300000>; 118 regulator-max-microvolt = <3300000>; 119 120 gpio = <&tlmm 70 GPIO_ACTIVE_HIGH>; 121 enable-active-high; 122 123 pinctrl-0 = <&edp_reg_en>; 124 pinctrl-names = "default"; 125 126 regulator-always-on; 127 regulator-boot-on; 128 }; 129 130 vreg_nvme: regulator-nvme { 131 compatible = "regulator-fixed"; 132 133 regulator-name = "VREG_NVME_3P3"; 134 regulator-min-microvolt = <3300000>; 135 regulator-max-microvolt = <3300000>; 136 137 gpio = <&tlmm 18 GPIO_ACTIVE_HIGH>; 138 enable-active-high; 139 140 pinctrl-0 = <&nvme_reg_en>; 141 pinctrl-names = "default"; 142 143 regulator-boot-on; 144 }; 145 146 vph_pwr: regulator-vph-pwr { 147 compatible = "regulator-fixed"; 148 149 regulator-name = "vph_pwr"; 150 regulator-min-microvolt = <3700000>; 151 regulator-max-microvolt = <3700000>; 152 153 regulator-always-on; 154 regulator-boot-on; 155 }; 156}; 157 158&apps_rsc { 159 regulators-0 { 160 compatible = "qcom,pm8550-rpmh-regulators"; 161 qcom,pmic-id = "b"; 162 163 vdd-bob1-supply = <&vph_pwr>; 164 vdd-bob2-supply = <&vph_pwr>; 165 vdd-l1-l4-l10-supply = <&vreg_s4c_1p8>; 166 vdd-l2-l13-l14-supply = <&vreg_bob1>; 167 vdd-l5-l16-supply = <&vreg_bob1>; 168 vdd-l6-l7-supply = <&vreg_bob2>; 169 vdd-l8-l9-supply = <&vreg_bob1>; 170 vdd-l12-supply = <&vreg_s5j_1p2>; 171 vdd-l15-supply = <&vreg_s4c_1p8>; 172 vdd-l17-supply = <&vreg_bob2>; 173 174 vreg_bob1: bob1 { 175 regulator-name = "vreg_bob1"; 176 regulator-min-microvolt = <3008000>; 177 regulator-max-microvolt = <3960000>; 178 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 179 }; 180 181 vreg_bob2: bob2 { 182 regulator-name = "vreg_bob2"; 183 regulator-min-microvolt = <2504000>; 184 regulator-max-microvolt = <3008000>; 185 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 186 }; 187 188 vreg_l2b_3p0: ldo2 { 189 regulator-name = "vreg_l2b_3p0"; 190 regulator-min-microvolt = <3072000>; 191 regulator-max-microvolt = <3100000>; 192 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 193 }; 194 195 vreg_l14b_3p0: ldo14 { 196 regulator-name = "vreg_l14b_3p0"; 197 regulator-min-microvolt = <3072000>; 198 regulator-max-microvolt = <3072000>; 199 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 200 }; 201 }; 202 203 regulators-1 { 204 compatible = "qcom,pm8550ve-rpmh-regulators"; 205 qcom,pmic-id = "c"; 206 207 vdd-l1-supply = <&vreg_s5j_1p2>; 208 vdd-l2-supply = <&vreg_s1f_0p7>; 209 vdd-l3-supply = <&vreg_s1f_0p7>; 210 vdd-s4-supply = <&vph_pwr>; 211 212 vreg_s4c_1p8: smps4 { 213 regulator-name = "vreg_s4c_1p8"; 214 regulator-min-microvolt = <1856000>; 215 regulator-max-microvolt = <2000000>; 216 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 217 }; 218 }; 219 220 regulators-2 { 221 compatible = "qcom,pmc8380-rpmh-regulators"; 222 qcom,pmic-id = "d"; 223 224 vdd-l1-supply = <&vreg_s1f_0p7>; 225 vdd-l2-supply = <&vreg_s1f_0p7>; 226 vdd-l3-supply = <&vreg_s4c_1p8>; 227 vdd-s1-supply = <&vph_pwr>; 228 229 vreg_l1d_0p8: ldo1 { 230 regulator-name = "vreg_l1d_0p8"; 231 regulator-min-microvolt = <880000>; 232 regulator-max-microvolt = <920000>; 233 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 234 }; 235 236 vreg_l2d_0p9: ldo2 { 237 regulator-name = "vreg_l2d_0p9"; 238 regulator-min-microvolt = <912000>; 239 regulator-max-microvolt = <920000>; 240 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 241 }; 242 243 vreg_l3d_1p8: ldo3 { 244 regulator-name = "vreg_l3d_1p8"; 245 regulator-min-microvolt = <1800000>; 246 regulator-max-microvolt = <1800000>; 247 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 248 }; 249 }; 250 251 regulators-3 { 252 compatible = "qcom,pmc8380-rpmh-regulators"; 253 qcom,pmic-id = "e"; 254 255 vdd-l2-supply = <&vreg_s1f_0p7>; 256 vdd-l3-supply = <&vreg_s5j_1p2>; 257 258 vreg_l2e_0p8: ldo2 { 259 regulator-name = "vreg_l2e_0p8"; 260 regulator-min-microvolt = <880000>; 261 regulator-max-microvolt = <920000>; 262 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 263 }; 264 265 vreg_l3e_1p2: ldo3 { 266 regulator-name = "vreg_l3e_1p2"; 267 regulator-min-microvolt = <1200000>; 268 regulator-max-microvolt = <1200000>; 269 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 270 }; 271 }; 272 273 regulators-4 { 274 compatible = "qcom,pmc8380-rpmh-regulators"; 275 qcom,pmic-id = "f"; 276 277 vdd-l1-supply = <&vreg_s5j_1p2>; 278 vdd-l2-supply = <&vreg_s5j_1p2>; 279 vdd-l3-supply = <&vreg_s5j_1p2>; 280 vdd-s1-supply = <&vph_pwr>; 281 282 vreg_s1f_0p7: smps1 { 283 regulator-name = "vreg_s1f_0p7"; 284 regulator-min-microvolt = <700000>; 285 regulator-max-microvolt = <1100000>; 286 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 287 }; 288 }; 289 290 regulators-6 { 291 compatible = "qcom,pm8550ve-rpmh-regulators"; 292 qcom,pmic-id = "i"; 293 294 vdd-l1-supply = <&vreg_s4c_1p8>; 295 vdd-l2-supply = <&vreg_s5j_1p2>; 296 vdd-l3-supply = <&vreg_s1f_0p7>; 297 vdd-s1-supply = <&vph_pwr>; 298 vdd-s2-supply = <&vph_pwr>; 299 300 vreg_l3i_0p8: ldo3 { 301 regulator-name = "vreg_l3i_0p8"; 302 regulator-min-microvolt = <880000>; 303 regulator-max-microvolt = <920000>; 304 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 305 }; 306 }; 307 308 regulators-7 { 309 compatible = "qcom,pm8550ve-rpmh-regulators"; 310 qcom,pmic-id = "j"; 311 312 vdd-l1-supply = <&vreg_s1f_0p7>; 313 vdd-l2-supply = <&vreg_s5j_1p2>; 314 vdd-l3-supply = <&vreg_s1f_0p7>; 315 vdd-s5-supply = <&vph_pwr>; 316 317 vreg_s5j_1p2: smps5 { 318 regulator-name = "vreg_s5j_1p2"; 319 regulator-min-microvolt = <1256000>; 320 regulator-max-microvolt = <1304000>; 321 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 322 }; 323 324 vreg_l1j_0p8: ldo1 { 325 regulator-name = "vreg_l1j_0p8"; 326 regulator-min-microvolt = <880000>; 327 regulator-max-microvolt = <920000>; 328 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 329 }; 330 331 vreg_l2j_1p2: ldo2 { 332 regulator-name = "vreg_l2j_1p2"; 333 regulator-min-microvolt = <1200000>; 334 regulator-max-microvolt = <1200000>; 335 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 336 }; 337 338 vreg_l3j_0p8: ldo3 { 339 regulator-name = "vreg_l3j_0p8"; 340 regulator-min-microvolt = <880000>; 341 regulator-max-microvolt = <920000>; 342 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 343 }; 344 }; 345}; 346 347&gpu { 348 status = "okay"; 349 350 zap-shader { 351 firmware-name = "qcom/x1e80100/ASUSTeK/vivobook-s15/qcdxkmsuc8380.mbn"; 352 }; 353}; 354 355&i2c0 { 356 clock-frequency = <400000>; 357 status = "okay"; 358 359 touchpad@15 { 360 compatible = "hid-over-i2c"; 361 reg = <0x15>; 362 363 hid-descr-addr = <0x1>; 364 interrupts-extended = <&tlmm 3 IRQ_TYPE_LEVEL_LOW>; 365 366 pinctrl-0 = <&tpad_default>; 367 pinctrl-names = "default"; 368 369 wakeup-source; 370 }; 371}; 372 373&i2c1 { 374 clock-frequency = <400000>; 375 status = "okay"; 376 377 /* PS8830 USB4 Retimer? @ 0x8 */ 378}; 379 380&i2c3 { 381 clock-frequency = <400000>; 382 status = "okay"; 383 384 /* PS8830 USB4 Retimer? @ 0x8 */ 385}; 386 387&i2c5 { 388 clock-frequency = <400000>; 389 status = "okay"; 390 391 keyboard@3a { 392 compatible = "hid-over-i2c"; 393 reg = <0x3a>; 394 395 hid-descr-addr = <0x1>; 396 interrupts-extended = <&tlmm 67 IRQ_TYPE_LEVEL_LOW>; 397 398 pinctrl-0 = <&kybd_default>; 399 pinctrl-names = "default"; 400 401 wakeup-source; 402 }; 403 404 /* EC? @ 0x5b, 0x76 */ 405}; 406 407&i2c7 { 408 clock-frequency = <400000>; 409 status = "okay"; 410 411 /* PS8830 USB4 Retimer? @ 0x8 */ 412}; 413 414&mdss { 415 status = "okay"; 416}; 417 418&mdss_dp3 { 419 compatible = "qcom,x1e80100-dp"; 420 /delete-property/ #sound-dai-cells; 421 422 status = "okay"; 423 424 aux-bus { 425 panel { 426 compatible = "samsung,atna56ac03", "samsung,atna33xc20"; 427 enable-gpios = <&pmc8380_3_gpios 4 GPIO_ACTIVE_HIGH>; 428 power-supply = <&vreg_edp_3p3>; 429 430 pinctrl-0 = <&edp_bl_en>; 431 pinctrl-names = "default"; 432 433 port { 434 edp_panel_in: endpoint { 435 remote-endpoint = <&mdss_dp3_out>; 436 }; 437 }; 438 }; 439 }; 440 441 ports { 442 port@1 { 443 reg = <1>; 444 445 mdss_dp3_out: endpoint { 446 data-lanes = <0 1 2 3>; 447 link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>; 448 449 remote-endpoint = <&edp_panel_in>; 450 }; 451 }; 452 }; 453}; 454 455&mdss_dp3_phy { 456 vdda-phy-supply = <&vreg_l3j_0p8>; 457 vdda-pll-supply = <&vreg_l2j_1p2>; 458 459 status = "okay"; 460}; 461 462&pcie4 { 463 perst-gpios = <&tlmm 146 GPIO_ACTIVE_LOW>; 464 wake-gpios = <&tlmm 148 GPIO_ACTIVE_LOW>; 465 466 pinctrl-0 = <&pcie4_default>; 467 pinctrl-names = "default"; 468 469 status = "okay"; 470}; 471 472&pcie4_phy { 473 vdda-phy-supply = <&vreg_l3i_0p8>; 474 vdda-pll-supply = <&vreg_l3e_1p2>; 475 476 status = "okay"; 477}; 478 479&pcie6a { 480 perst-gpios = <&tlmm 152 GPIO_ACTIVE_LOW>; 481 wake-gpios = <&tlmm 154 GPIO_ACTIVE_LOW>; 482 483 vddpe-3v3-supply = <&vreg_nvme>; 484 485 pinctrl-0 = <&pcie6a_default>; 486 pinctrl-names = "default"; 487 488 status = "okay"; 489}; 490 491&pcie6a_phy { 492 vdda-phy-supply = <&vreg_l1d_0p8>; 493 vdda-pll-supply = <&vreg_l2j_1p2>; 494 495 status = "okay"; 496}; 497 498&pmc8380_3_gpios { 499 edp_bl_en: edp-bl-en-state { 500 pins = "gpio4"; 501 function = "normal"; 502 power-source = <1>; /* 1.8 V */ 503 qcom,drive-strength = <PMIC_GPIO_STRENGTH_MED>; 504 bias-pull-down; 505 input-disable; 506 output-enable; 507 }; 508}; 509 510&qupv3_0 { 511 status = "okay"; 512}; 513 514&qupv3_1 { 515 status = "okay"; 516}; 517 518&qupv3_2 { 519 status = "okay"; 520}; 521 522&remoteproc_adsp { 523 firmware-name = "qcom/x1e80100/ASUSTeK/vivobook-s15/qcadsp8380.mbn", 524 "qcom/x1e80100/ASUSTeK/vivobook-s15/adsp_dtbs.elf"; 525 526 status = "okay"; 527}; 528 529&remoteproc_cdsp { 530 firmware-name = "qcom/x1e80100/ASUSTeK/vivobook-s15/qccdsp8380.mbn", 531 "qcom/x1e80100/ASUSTeK/vivobook-s15/cdsp_dtbs.elf"; 532 533 status = "okay"; 534}; 535 536&smb2360_0 { 537 status = "okay"; 538}; 539 540&smb2360_0_eusb2_repeater { 541 vdd18-supply = <&vreg_l3d_1p8>; 542 vdd3-supply = <&vreg_l2b_3p0>; 543}; 544 545&smb2360_1 { 546 status = "okay"; 547}; 548 549&smb2360_1_eusb2_repeater { 550 vdd18-supply = <&vreg_l3d_1p8>; 551 vdd3-supply = <&vreg_l14b_3p0>; 552}; 553 554&tlmm { 555 gpio-reserved-ranges = <34 2>, /* Unused */ 556 <44 4>, /* SPI (TPM) */ 557 <238 1>; /* UFS Reset */ 558 559 edp_reg_en: edp-reg-en-state { 560 pins = "gpio70"; 561 function = "gpio"; 562 drive-strength = <16>; 563 bias-disable; 564 }; 565 566 hall_int_n_default: hall-int-n-state { 567 pins = "gpio92"; 568 function = "gpio"; 569 bias-disable; 570 }; 571 572 kybd_default: kybd-default-state { 573 pins = "gpio67"; 574 function = "gpio"; 575 bias-disable; 576 }; 577 578 nvme_reg_en: nvme-reg-en-state { 579 pins = "gpio18"; 580 function = "gpio"; 581 drive-strength = <2>; 582 bias-disable; 583 }; 584 585 pcie4_default: pcie4-default-state { 586 clkreq-n-pins { 587 pins = "gpio147"; 588 function = "pcie4_clk"; 589 drive-strength = <2>; 590 bias-pull-up; 591 }; 592 593 perst-n-pins { 594 pins = "gpio146"; 595 function = "gpio"; 596 drive-strength = <2>; 597 bias-disable; 598 }; 599 600 wake-n-pins { 601 pins = "gpio148"; 602 function = "gpio"; 603 drive-strength = <2>; 604 bias-pull-up; 605 }; 606 }; 607 608 pcie6a_default: pcie6a-default-state { 609 clkreq-n-pins { 610 pins = "gpio153"; 611 function = "pcie6a_clk"; 612 drive-strength = <2>; 613 bias-pull-up; 614 }; 615 616 perst-n-pins { 617 pins = "gpio152"; 618 function = "gpio"; 619 drive-strength = <2>; 620 bias-disable; 621 }; 622 623 wake-n-pins { 624 pins = "gpio154"; 625 function = "gpio"; 626 drive-strength = <2>; 627 bias-pull-up; 628 }; 629 }; 630 631 tpad_default: tpad-default-state { 632 pins = "gpio3"; 633 function = "gpio"; 634 bias-disable; 635 }; 636}; 637 638&usb_1_ss0_hsphy { 639 vdd-supply = <&vreg_l3j_0p8>; 640 vdda12-supply = <&vreg_l2j_1p2>; 641 642 phys = <&smb2360_0_eusb2_repeater>; 643 644 status = "okay"; 645}; 646 647&usb_1_ss0_qmpphy { 648 vdda-phy-supply = <&vreg_l2j_1p2>; 649 vdda-pll-supply = <&vreg_l1j_0p8>; 650 651 status = "okay"; 652}; 653 654&usb_1_ss0 { 655 status = "okay"; 656}; 657 658&usb_1_ss0_dwc3 { 659 dr_mode = "host"; 660}; 661 662&usb_1_ss0_dwc3_hs { 663 remote-endpoint = <&pmic_glink_ss0_hs_in>; 664}; 665 666&usb_1_ss0_qmpphy_out { 667 remote-endpoint = <&pmic_glink_ss0_ss_in>; 668}; 669 670&usb_1_ss1_hsphy { 671 vdd-supply = <&vreg_l3j_0p8>; 672 vdda12-supply = <&vreg_l2j_1p2>; 673 674 phys = <&smb2360_1_eusb2_repeater>; 675 676 status = "okay"; 677}; 678 679&usb_1_ss1_qmpphy { 680 vdda-phy-supply = <&vreg_l2j_1p2>; 681 vdda-pll-supply = <&vreg_l2d_0p9>; 682 683 status = "okay"; 684}; 685 686&usb_1_ss1 { 687 status = "okay"; 688}; 689 690&usb_1_ss1_dwc3 { 691 dr_mode = "host"; 692}; 693 694&usb_1_ss1_dwc3_hs { 695 remote-endpoint = <&pmic_glink_ss1_hs_in>; 696}; 697 698&usb_1_ss1_qmpphy_out { 699 remote-endpoint = <&pmic_glink_ss1_ss_in>; 700}; 701