1 // SPDX-License-Identifier: BSD-3-Clause 2 /* 3 * Copyright (c) 2022-2024 Jianhua Lu <lujianhu 4 */ 5 6 #include <dt-bindings/arm/qcom,ids.h> 7 #include <dt-bindings/phy/phy.h> 8 #include <dt-bindings/regulator/qcom,rpmh-regu 9 #include <dt-bindings/usb/pd.h> 10 #include "sm8250.dtsi" 11 #include "pm8150.dtsi" 12 #include "pm8150b.dtsi" 13 #include "pm8150l.dtsi" 14 #include "pm8009.dtsi" 15 16 /* 17 * Delete following upstream (sm8250.dtsi) res 18 * memory mappings which are different on this 19 */ 20 /delete-node/ &adsp_mem; 21 /delete-node/ &cdsp_secure_heap; 22 /delete-node/ &slpi_mem; 23 /delete-node/ &spss_mem; 24 /delete-node/ &xbl_aop_mem; 25 26 / { 27 chassis-type = "tablet"; 28 29 /* required for bootloader to select c 30 qcom,msm-id = <QCOM_ID_SM8250 0x20001> 31 qcom,board-id = <0x10008 0>; 32 33 chosen { 34 #address-cells = <2>; 35 #size-cells = <2>; 36 ranges; 37 38 framebuffer: framebuffer@9c000 39 compatible = "simple-f 40 reg = <0x0 0x9c000000 41 width = <1600>; 42 height = <2560>; 43 stride = <(1600 * 4)>; 44 format = "a8r8g8b8"; 45 }; 46 }; 47 48 battery_l: battery-l { 49 compatible = "simple-battery"; 50 voltage-min-design-microvolt = 51 energy-full-design-microwatt-h 52 charge-full-design-microamp-ho 53 }; 54 55 battery_r: battery-r { 56 compatible = "simple-battery"; 57 voltage-min-design-microvolt = 58 energy-full-design-microwatt-h 59 charge-full-design-microamp-ho 60 }; 61 62 bl_vddpos_5p5: bl-vddpos-regulator { 63 compatible = "regulator-fixed" 64 regulator-name = "bl_vddpos_5p 65 regulator-min-microvolt = <550 66 regulator-max-microvolt = <550 67 regulator-enable-ramp-delay = 68 gpio = <&tlmm 130 GPIO_ACTIVE_ 69 enable-active-high; 70 regulator-boot-on; 71 }; 72 73 bl_vddneg_5p5: bl-vddneg-regulator { 74 compatible = "regulator-fixed" 75 regulator-name = "bl_vddneg_5p 76 regulator-min-microvolt = <550 77 regulator-max-microvolt = <550 78 regulator-enable-ramp-delay = 79 gpio = <&tlmm 131 GPIO_ACTIVE_ 80 enable-active-high; 81 regulator-boot-on; 82 }; 83 84 gpio_keys: gpio-keys { 85 compatible = "gpio-keys"; 86 87 pinctrl-names = "default"; 88 pinctrl-0 = <&vol_up_n>; 89 90 key-vol-up { 91 label = "Volume Up"; 92 gpios = <&pm8150_gpios 93 linux,code = <KEY_VOLU 94 debounce-interval = <1 95 linux,can-disable; 96 wakeup-source; 97 }; 98 }; 99 100 vph_pwr: vph-pwr-regulator { 101 compatible = "regulator-fixed" 102 regulator-name = "vph_pwr"; 103 regulator-min-microvolt = <370 104 regulator-max-microvolt = <370 105 }; 106 107 /* S6c is really ebi.lvl but it's ther 108 vreg_s6c_0p88: smpc6-regulator { 109 compatible = "regulator-fixed" 110 regulator-name = "vreg_s6c_0p8 111 regulator-min-microvolt = <880 112 regulator-max-microvolt = <880 113 regulator-always-on; 114 vin-supply = <&vph_pwr>; 115 }; 116 117 reserved-memory { 118 xbl_aop_mem: xbl-aop@80600000 119 reg = <0x0 0x80600000 120 no-map; 121 }; 122 123 slpi_mem: slpi@88c00000 { 124 reg = <0x0 0x88c00000 125 no-map; 126 }; 127 128 adsp_mem: adsp@8bb00000 { 129 reg = <0x0 0x8bb00000 130 no-map; 131 }; 132 133 spss_mem: spss@8e000000 { 134 reg = <0x0 0x8e000000 135 no-map; 136 }; 137 138 cdsp_secure_heap: cdsp-secure- 139 reg = <0x0 0x8e100000 140 no-map; 141 }; 142 143 cont_splash_mem: cont-splash@9 144 reg = <0x0 0x9c000000 145 no-map; 146 }; 147 148 ramoops@b0000000 { 149 compatible = "ramoops" 150 reg = <0x0 0xb0000000 151 record-size = <0x1000> 152 console-size = <0x2000 153 ecc-size = <16>; 154 no-map; 155 }; 156 }; 157 }; 158 159 &adsp { 160 firmware-name = "qcom/sm8250/xiaomi/el 161 status = "okay"; 162 }; 163 164 &apps_rsc { 165 regulators-0 { 166 compatible = "qcom,pm8150-rpmh 167 qcom,pmic-id = "a"; 168 169 vdd-s1-supply = <&vph_pwr>; 170 vdd-s2-supply = <&vph_pwr>; 171 vdd-s3-supply = <&vph_pwr>; 172 vdd-s4-supply = <&vph_pwr>; 173 vdd-s5-supply = <&vph_pwr>; 174 vdd-s6-supply = <&vph_pwr>; 175 vdd-s7-supply = <&vph_pwr>; 176 vdd-s8-supply = <&vph_pwr>; 177 vdd-s9-supply = <&vph_pwr>; 178 vdd-s10-supply = <&vph_pwr>; 179 vdd-l1-l8-l11-supply = <&vreg_ 180 vdd-l2-l10-supply = <&vreg_bob 181 vdd-l3-l4-l5-l18-supply = <&vr 182 vdd-l6-l9-supply = <&vreg_s8c_ 183 vdd-l7-l12-l14-l15-supply = <& 184 vdd-l13-l16-l17-supply = <&vre 185 186 /* (S1+S2+S3) - cx.lvl (ARC) * 187 188 vreg_s4a_1p8: smps4 { 189 regulator-name = "vreg 190 regulator-min-microvol 191 regulator-max-microvol 192 regulator-initial-mode 193 regulator-allow-set-lo 194 regulator-allowed-mode 195 196 }; 197 198 vreg_s5a_1p9: smps5 { 199 regulator-name = "vreg 200 regulator-min-microvol 201 regulator-max-microvol 202 regulator-initial-mode 203 }; 204 205 vreg_s6a_0p95: smps6 { 206 regulator-name = "vreg 207 regulator-min-microvol 208 regulator-max-microvol 209 regulator-initial-mode 210 }; 211 212 vreg_l2a_3p1: ldo2 { 213 regulator-name = "vreg 214 regulator-min-microvol 215 regulator-max-microvol 216 regulator-initial-mode 217 }; 218 219 vreg_l3a_0p9: ldo3 { 220 regulator-name = "vreg 221 regulator-min-microvol 222 regulator-max-microvol 223 regulator-initial-mode 224 }; 225 226 /* L4 - lmx.lvl (ARC) */ 227 228 vreg_l5a_0p88: ldo5 { 229 regulator-name = "vreg 230 regulator-min-microvol 231 regulator-max-microvol 232 regulator-initial-mode 233 }; 234 235 vreg_l6a_1p2: ldo6 { 236 regulator-name = "vreg 237 regulator-min-microvol 238 regulator-max-microvol 239 regulator-initial-mode 240 regulator-allow-set-lo 241 regulator-allowed-mode 242 243 }; 244 245 /* L7 is unused. */ 246 247 vreg_l9a_1p2: ldo9 { 248 regulator-name = "vreg 249 regulator-min-microvol 250 regulator-max-microvol 251 regulator-initial-mode 252 }; 253 254 /* L10 is unused, L11 - lcx.lv 255 256 vreg_l12a_1p8: ldo12 { 257 regulator-name = "vreg 258 regulator-min-microvol 259 regulator-max-microvol 260 regulator-initial-mode 261 }; 262 263 /* L13 is unused. */ 264 265 vreg_l14a_1p88: ldo14 { 266 regulator-name = "vreg 267 regulator-min-microvol 268 regulator-max-microvol 269 regulator-initial-mode 270 }; 271 272 /* L15 & L16 are unused. */ 273 274 vreg_l17a_3p0: ldo17 { 275 regulator-name = "vreg 276 regulator-min-microvol 277 regulator-max-microvol 278 regulator-initial-mode 279 regulator-allow-set-lo 280 regulator-allowed-mode 281 282 }; 283 284 vreg_l18a_0p9: ldo18 { 285 regulator-name = "vreg 286 regulator-min-microvol 287 regulator-max-microvol 288 regulator-initial-mode 289 }; 290 }; 291 292 /* 293 * Remaining regulators that are not y 294 * OLEDB: 4925000-8100000 295 * ab: 4600000-6100000 296 * ibb: 800000-5400000 297 */ 298 regulators-1 { 299 compatible = "qcom,pm8150l-rpm 300 qcom,pmic-id = "c"; 301 302 vdd-s1-supply = <&vph_pwr>; 303 vdd-s2-supply = <&vph_pwr>; 304 vdd-s3-supply = <&vph_pwr>; 305 vdd-s4-supply = <&vph_pwr>; 306 vdd-s5-supply = <&vph_pwr>; 307 vdd-s6-supply = <&vph_pwr>; 308 vdd-s7-supply = <&vph_pwr>; 309 vdd-s8-supply = <&vph_pwr>; 310 vdd-l1-l8-supply = <&vreg_s4a_ 311 vdd-l2-l3-supply = <&vreg_s8c_ 312 vdd-l4-l5-l6-supply = <&vreg_b 313 vdd-l7-l11-supply = <&vreg_bob 314 vdd-l9-l10-supply = <&vreg_bob 315 vdd-bob-supply = <&vph_pwr>; 316 317 vreg_bob: bob { 318 regulator-name = "vreg 319 regulator-min-microvol 320 regulator-max-microvol 321 regulator-initial-mode 322 }; 323 324 /* 325 * S1-S6 are ARCs: 326 * (S1+S2) - gfx.lvl, 327 * S3 - mx.lvl, 328 * (S4+S5) - mmcx.lvl, 329 * S6 - ebi.lvl 330 */ 331 332 vreg_s7c_0p35: smps7 { 333 regulator-name = "vreg 334 regulator-min-microvol 335 regulator-max-microvol 336 regulator-initial-mode 337 }; 338 339 vreg_s8c_1p35: smps8 { 340 regulator-name = "vreg 341 regulator-min-microvol 342 regulator-max-microvol 343 regulator-initial-mode 344 }; 345 346 vreg_l1c_1p8: ldo1 { 347 regulator-name = "vreg 348 regulator-min-microvol 349 regulator-max-microvol 350 regulator-initial-mode 351 }; 352 353 /* L2-4 are unused. */ 354 355 vreg_l5c_1p8: ldo5 { 356 regulator-name = "vreg 357 regulator-min-microvol 358 regulator-max-microvol 359 regulator-initial-mode 360 }; 361 362 vreg_l6c_2p9: ldo6 { 363 regulator-name = "vreg 364 regulator-min-microvol 365 regulator-max-microvol 366 regulator-initial-mode 367 regulator-allow-set-lo 368 regulator-allowed-mode 369 370 }; 371 372 vreg_l7c_2p85: ldo7 { 373 regulator-name = "vreg 374 regulator-min-microvol 375 regulator-max-microvol 376 regulator-initial-mode 377 }; 378 379 vreg_l8c_1p8: ldo8 { 380 regulator-name = "vreg 381 regulator-min-microvol 382 regulator-max-microvol 383 regulator-initial-mode 384 }; 385 386 vreg_l9c_2p9: ldo9 { 387 regulator-name = "vreg 388 regulator-min-microvol 389 regulator-max-microvol 390 regulator-initial-mode 391 regulator-allow-set-lo 392 regulator-allowed-mode 393 394 }; 395 396 vreg_l10c_3p3: ldo10 { 397 regulator-name = "vreg 398 regulator-min-microvol 399 regulator-max-microvol 400 regulator-initial-mode 401 }; 402 403 vreg_l11c_3p0: ldo11 { 404 regulator-name = "vreg 405 regulator-min-microvol 406 regulator-max-microvol 407 regulator-initial-mode 408 }; 409 }; 410 411 regulators-2 { 412 compatible = "qcom,pm8009-rpmh 413 qcom,pmic-id = "f"; 414 415 vdd-s1-supply = <&vph_pwr>; 416 vdd-s2-supply = <&vreg_bob>; 417 vdd-l2-supply = <&vreg_s8c_1p3 418 vdd-l5-l6-supply = <&vreg_bob> 419 vdd-l7-supply = <&vreg_s4a_1p8 420 421 vreg_s1f_1p2: smps1 { 422 regulator-name = "vreg 423 regulator-min-microvol 424 regulator-max-microvol 425 regulator-initial-mode 426 }; 427 428 vreg_s2f_0p5: smps2 { 429 regulator-name = "vreg 430 regulator-min-microvol 431 regulator-max-microvol 432 regulator-initial-mode 433 }; 434 435 /* L1 is unused. */ 436 437 vreg_l2f_1p3: ldo2 { 438 regulator-name = "vreg 439 regulator-min-microvol 440 regulator-max-microvol 441 regulator-initial-mode 442 }; 443 444 /* L3 & L4 are unused. */ 445 446 vreg_l5f_2p8: ldo5 { 447 regulator-name = "vreg 448 regulator-min-microvol 449 regulator-max-microvol 450 regulator-initial-mode 451 }; 452 453 vreg_l6f_2p8: ldo6 { 454 regulator-name = "vreg 455 regulator-min-microvol 456 regulator-max-microvol 457 regulator-initial-mode 458 }; 459 460 vreg_l7f_1p8: ldo7 { 461 regulator-name = "vreg 462 regulator-min-microvol 463 regulator-max-microvol 464 regulator-initial-mode 465 }; 466 }; 467 }; 468 469 &cdsp { 470 firmware-name = "qcom/sm8250/xiaomi/el 471 status = "okay"; 472 }; 473 474 &gmu { 475 status = "okay"; 476 }; 477 478 &gpi_dma0 { 479 status = "okay"; 480 }; 481 482 &gpi_dma1 { 483 status = "okay"; 484 }; 485 486 &gpi_dma2 { 487 status = "okay"; 488 }; 489 490 &gpu { 491 status = "okay"; 492 493 zap-shader { 494 memory-region = <&gpu_mem>; 495 firmware-name = "qcom/sm8250/x 496 }; 497 }; 498 499 &i2c0 { 500 clock-frequency = <400000>; 501 status = "okay"; 502 503 fuel-gauge@55 { 504 compatible = "ti,bq27z561"; 505 reg = <0x55>; 506 monitored-battery = <&battery_ 507 }; 508 }; 509 510 &i2c11 { 511 clock-frequency = <400000>; 512 status = "okay"; 513 514 backlight: backlight@11 { 515 compatible = "kinetic,ktz8866" 516 reg = <0x11>; 517 vddpos-supply = <&bl_vddpos_5p 518 vddneg-supply = <&bl_vddneg_5p 519 enable-gpios = <&tlmm 139 GPIO 520 current-num-sinks = <5>; 521 kinetic,current-ramp-delay-ms 522 kinetic,led-enable-ramp-delay- 523 kinetic,enable-lcd-bias; 524 }; 525 }; 526 527 &i2c13 { 528 clock-frequency = <400000>; 529 status = "okay"; 530 531 fuel-gauge@55 { 532 compatible = "ti,bq27z561"; 533 reg = <0x55>; 534 monitored-battery = <&battery_ 535 }; 536 }; 537 538 &mdss { 539 status = "okay"; 540 }; 541 542 &mdss_dsi0 { 543 vdda-supply = <&vreg_l9a_1p2>; 544 qcom,dual-dsi-mode; 545 qcom,sync-dual-dsi; 546 qcom,master-dsi; 547 status = "okay"; 548 549 display_panel: panel@0 { 550 reg = <0>; 551 vddio-supply = <&vreg_l14a_1p8 552 reset-gpios = <&tlmm 75 GPIO_A 553 backlight = <&backlight>; 554 rotation = <90>; 555 556 status = "disabled"; 557 558 ports { 559 #address-cells = <1>; 560 #size-cells = <0>; 561 562 port@0 { 563 reg = <0>; 564 565 panel_in_0: en 566 remote 567 }; 568 }; 569 570 port@1 { 571 reg = <1>; 572 573 panel_in_1: en 574 remote 575 }; 576 }; 577 }; 578 }; 579 }; 580 581 &mdss_dsi0_out { 582 data-lanes = <0 1 2>; 583 remote-endpoint = <&panel_in_0>; 584 }; 585 586 &mdss_dsi0_phy { 587 vdds-supply = <&vreg_l5a_0p88>; 588 phy-type = <PHY_TYPE_CPHY>; 589 status = "okay"; 590 }; 591 592 &mdss_dsi1 { 593 vdda-supply = <&vreg_l9a_1p2>; 594 qcom,dual-dsi-mode; 595 qcom,sync-dual-dsi; 596 /* DSI1 is slave, so use DSI0 clocks * 597 assigned-clock-parents = <&mdss_dsi0_p 598 status = "okay"; 599 }; 600 601 &mdss_dsi1_out { 602 data-lanes = <0 1 2>; 603 remote-endpoint = <&panel_in_1>; 604 }; 605 606 &mdss_dsi1_phy { 607 vdds-supply = <&vreg_l5a_0p88>; 608 phy-type = <PHY_TYPE_CPHY>; 609 status = "okay"; 610 }; 611 612 &pcie0 { 613 status = "okay"; 614 }; 615 616 &pcie0_phy { 617 vdda-phy-supply = <&vreg_l5a_0p88>; 618 vdda-pll-supply = <&vreg_l9a_1p2>; 619 status = "okay"; 620 }; 621 622 &pm8150_gpios { 623 vol_up_n: vol-up-n-state { 624 pins = "gpio6"; 625 function = "normal"; 626 power-source = <1>; 627 input-enable; 628 bias-pull-up; 629 }; 630 }; 631 632 &pm8150b_typec { 633 vdd-pdphy-supply = <&vreg_l2a_3p1>; 634 status = "okay"; 635 636 connector { 637 compatible = "usb-c-connector" 638 639 op-sink-microwatt = <10000000> 640 power-role = "dual"; 641 data-role = "dual"; 642 self-powered; 643 644 source-pdos = <PDO_FIXED(5000, 645 PDO_F 646 PDO_F 647 PDO_F 648 649 sink-pdos = <PDO_FIXED(5000, 3 650 PDO_FIX 651 PDO_FIX 652 PDO_FIX 653 PDO_VAR 654 655 ports { 656 #address-cells = <1>; 657 #size-cells = <0>; 658 659 port@0 { 660 reg = <0>; 661 662 pm8150b_hs_in: 663 remote 664 }; 665 }; 666 }; 667 }; 668 }; 669 670 &pm8150b_vbus { 671 regulator-min-microamp = <500000>; 672 regulator-max-microamp = <3000000>; 673 status = "okay"; 674 }; 675 676 &pon_pwrkey { 677 status = "okay"; 678 }; 679 680 &pon_resin { 681 linux,code = <KEY_VOLUMEDOWN>; 682 status = "okay"; 683 }; 684 685 &qupv3_id_0 { 686 status = "okay"; 687 }; 688 689 &qupv3_id_1 { 690 status = "okay"; 691 }; 692 693 &qupv3_id_2 { 694 status = "okay"; 695 }; 696 697 &slpi { 698 firmware-name = "qcom/sm8250/xiaomi/el 699 status = "okay"; 700 }; 701 702 &tlmm { 703 gpio-reserved-ranges = <40 4>; 704 }; 705 706 &usb_1 { 707 /* USB 2.0 only */ 708 qcom,select-utmi-as-pipe-clk; 709 status = "okay"; 710 }; 711 712 &usb_1_dwc3 { 713 dr_mode = "otg"; 714 maximum-speed = "high-speed"; 715 /* Remove USB3 phy */ 716 phys = <&usb_1_hsphy>; 717 phy-names = "usb2-phy"; 718 usb-role-switch; 719 }; 720 721 &usb_1_hsphy { 722 vdda-pll-supply = <&vreg_l5a_0p88>; 723 vdda18-supply = <&vreg_l12a_1p8>; 724 vdda33-supply = <&vreg_l2a_3p1>; 725 status = "okay"; 726 }; 727 728 &usb_1_dwc3_hs_out { 729 remote-endpoint = <&pm8150b_hs_in>; 730 }; 731 732 &ufs_mem_hc { 733 vcc-supply = <&vreg_l17a_3p0>; 734 vcc-max-microamp = <800000>; 735 vccq-supply = <&vreg_l6a_1p2>; 736 vccq-max-microamp = <800000>; 737 vccq2-supply = <&vreg_s4a_1p8>; 738 vccq2-max-microamp = <800000>; 739 status = "okay"; 740 }; 741 742 &ufs_mem_phy { 743 vdda-phy-supply = <&vreg_l5a_0p88>; 744 vdda-pll-supply = <&vreg_l9a_1p2>; 745 status = "okay"; 746 }; 747 748 &venus { 749 firmware-name = "qcom/sm8250/xiaomi/el 750 status = "okay"; 751 };
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.