1 // SPDX-License-Identifier: GPL-2.0 2 #include "qcom-msm8974pro.dtsi" 3 #include "pma8084.dtsi" 4 #include <dt-bindings/input/input.h> 5 #include <dt-bindings/pinctrl/qcom,pmic-gpio.h 6 #include <dt-bindings/leds/common.h> 7 8 / { 9 chassis-type = "handset"; 10 11 aliases { 12 serial0 = &blsp1_uart1; 13 mmc0 = &sdhc_1; /* SDC1 eMMC s 14 mmc1 = &sdhc_3; /* SDC2 SD car 15 }; 16 17 chosen { 18 stdout-path = "serial0:115200n 19 }; 20 21 gpio-keys { 22 compatible = "gpio-keys"; 23 24 pinctrl-names = "default"; 25 pinctrl-0 = <&gpio_keys_pin_a> 26 27 key-volume-down { 28 label = "volume_down"; 29 gpios = <&pma8084_gpio 30 linux,input-type = <1> 31 linux,code = <KEY_VOLU 32 debounce-interval = <1 33 }; 34 35 key-home { 36 label = "home_key"; 37 gpios = <&pma8084_gpio 38 linux,input-type = <1> 39 linux,code = <KEY_HOME 40 wakeup-source; 41 debounce-interval = <1 42 }; 43 44 key-volume-up { 45 label = "volume_up"; 46 gpios = <&pma8084_gpio 47 linux,input-type = <1> 48 linux,code = <KEY_VOLU 49 debounce-interval = <1 50 }; 51 }; 52 53 i2c-gpio-touchkey { 54 compatible = "i2c-gpio"; 55 #address-cells = <1>; 56 #size-cells = <0>; 57 sda-gpios = <&tlmm 95 (GPIO_AC 58 scl-gpios = <&tlmm 96 (GPIO_AC 59 pinctrl-names = "default"; 60 pinctrl-0 = <&i2c_touchkey_pin 61 62 touchkey@20 { 63 compatible = "cypress, 64 reg = <0x20>; 65 66 interrupt-parent = <&p 67 interrupts = <6 IRQ_TY 68 pinctrl-names = "defau 69 pinctrl-0 = <&touchkey 70 71 vcc-supply = <&max7782 72 vdd-supply = <&pma8084 73 74 linux,keycodes = <KEY_ 75 }; 76 }; 77 78 i2c_led_gpio: i2c-gpio-led { 79 compatible = "i2c-gpio"; 80 #address-cells = <1>; 81 #size-cells = <0>; 82 pinctrl-names = "default"; 83 pinctrl-0 = <&i2c_led_gpioex_p 84 85 i2c-gpio,delay-us = <2>; 86 87 gpio_expander: gpio@20 { 88 compatible = "nxp,pcal 89 reg = <0x20>; 90 91 gpio-controller; 92 #gpio-cells = <2>; 93 94 vcc-supply = <&pma8084 95 96 pinctrl-names = "defau 97 pinctrl-0 = <&gpioex_p 98 99 reset-gpios = <&tlmm 1 100 }; 101 102 led-controller@30 { 103 compatible = "panasoni 104 reg = <0x30>; 105 106 #address-cells = <1>; 107 #size-cells = <0>; 108 109 led@1 { 110 reg = <1>; 111 function = LED 112 color = <LED_C 113 }; 114 115 led@2 { 116 reg = <2>; 117 function = LED 118 color = <LED_C 119 }; 120 121 led@3 { 122 reg = <3>; 123 function = LED 124 color = <LED_C 125 }; 126 }; 127 }; 128 129 vreg_wlan: wlan-regulator { 130 compatible = "regulator-fixed" 131 132 regulator-name = "wl-reg"; 133 regulator-min-microvolt = <330 134 regulator-max-microvolt = <330 135 136 gpio = <&gpio_expander 8 GPIO_ 137 enable-active-high; 138 }; 139 140 vreg_panel: panel-regulator { 141 compatible = "regulator-fixed" 142 143 pinctrl-names = "default"; 144 pinctrl-0 = <&panel_en_pin>; 145 146 regulator-name = "panel-vddr-r 147 regulator-min-microvolt = <150 148 regulator-max-microvolt = <150 149 150 gpio = <&pma8084_gpios 14 GPIO 151 enable-active-high; 152 }; 153 154 vreg_vph_pwr: vreg-vph-pwr { 155 compatible = "regulator-fixed" 156 regulator-name = "vph-pwr"; 157 158 regulator-min-microvolt = <360 159 regulator-max-microvolt = <360 160 161 regulator-always-on; 162 }; 163 }; 164 165 &blsp1_i2c2 { 166 status = "okay"; 167 168 touchscreen@20 { 169 compatible = "syna,rmi4-i2c"; 170 reg = <0x20>; 171 172 interrupt-parent = <&pma8084_g 173 interrupts = <8 IRQ_TYPE_EDGE_ 174 175 vdd-supply = <&max77826_ldo13> 176 vio-supply = <&pma8084_lvs2>; 177 178 pinctrl-names = "default"; 179 pinctrl-0 = <&touch_pin>; 180 181 syna,startup-delay-ms = <100>; 182 183 #address-cells = <1>; 184 #size-cells = <0>; 185 186 rmi4-f01@1 { 187 reg = <0x1>; 188 syna,nosleep-mode = <1 189 }; 190 191 rmi4-f12@12 { 192 reg = <0x12>; 193 syna,sensor-type = <1> 194 }; 195 }; 196 }; 197 198 &blsp1_i2c6 { 199 status = "okay"; 200 201 pmic@60 { 202 reg = <0x60>; 203 compatible = "maxim,max77826"; 204 205 regulators { 206 max77826_ldo1: LDO1 { 207 regulator-min- 208 regulator-max- 209 }; 210 211 max77826_ldo2: LDO2 { 212 regulator-min- 213 regulator-max- 214 }; 215 216 max77826_ldo3: LDO3 { 217 regulator-min- 218 regulator-max- 219 }; 220 221 max77826_ldo4: LDO4 { 222 regulator-min- 223 regulator-max- 224 }; 225 226 max77826_ldo5: LDO5 { 227 regulator-min- 228 regulator-max- 229 }; 230 231 max77826_ldo6: LDO6 { 232 regulator-min- 233 regulator-max- 234 }; 235 236 max77826_ldo7: LDO7 { 237 regulator-min- 238 regulator-max- 239 }; 240 241 max77826_ldo8: LDO8 { 242 regulator-min- 243 regulator-max- 244 }; 245 246 max77826_ldo9: LDO9 { 247 regulator-min- 248 regulator-max- 249 }; 250 251 max77826_ldo10: LDO10 252 regulator-min- 253 regulator-max- 254 }; 255 256 max77826_ldo11: LDO11 257 regulator-min- 258 regulator-max- 259 }; 260 261 max77826_ldo12: LDO12 262 regulator-min- 263 regulator-max- 264 }; 265 266 max77826_ldo13: LDO13 267 regulator-min- 268 regulator-max- 269 }; 270 271 max77826_ldo14: LDO14 272 regulator-min- 273 regulator-max- 274 }; 275 276 max77826_ldo15: LDO15 277 regulator-min- 278 regulator-max- 279 }; 280 281 max77826_buck: BUCK { 282 regulator-min- 283 regulator-max- 284 }; 285 286 max77826_buckboost: BU 287 regulator-min- 288 regulator-max- 289 }; 290 }; 291 }; 292 }; 293 294 &blsp1_uart2 { 295 status = "okay"; 296 }; 297 298 &blsp2_i2c6 { 299 status = "okay"; 300 301 fuelgauge@36 { 302 compatible = "maxim,max17048"; 303 reg = <0x36>; 304 305 maxim,double-soc; 306 maxim,rcomp = /bits/ 8 <0x56>; 307 308 interrupt-parent = <&pma8084_g 309 interrupts = <21 IRQ_TYPE_LEVE 310 311 pinctrl-names = "default"; 312 pinctrl-0 = <&fuelgauge_pin>; 313 }; 314 }; 315 316 &blsp2_uart2 { 317 status = "okay"; 318 319 pinctrl-names = "default", "sleep"; 320 pinctrl-0 = <&blsp2_uart2_pins_active> 321 pinctrl-1 = <&blsp2_uart2_pins_sleep>; 322 323 bluetooth { 324 compatible = "brcm,bcm43540-bt 325 max-speed = <3000000>; 326 pinctrl-names = "default"; 327 pinctrl-0 = <&bt_pins>; 328 device-wakeup-gpios = <&tlmm 9 329 shutdown-gpios = <&gpio_expand 330 interrupt-parent = <&tlmm>; 331 interrupts = <75 IRQ_TYPE_LEVE 332 interrupt-names = "host-wakeup 333 }; 334 }; 335 336 &gpu { 337 status = "okay"; 338 }; 339 340 &mdss { 341 status = "okay"; 342 }; 343 344 &mdss_dsi0 { 345 status = "okay"; 346 347 vdda-supply = <&pma8084_l2>; 348 vdd-supply = <&pma8084_l22>; 349 vddio-supply = <&pma8084_l12>; 350 351 panel: panel@0 { 352 reg = <0>; 353 compatible = "samsung,s6e3fa2" 354 355 pinctrl-names = "default"; 356 pinctrl-0 = <&panel_te_pin &pa 357 358 iovdd-supply = <&pma8084_lvs4> 359 vddr-supply = <&vreg_panel>; 360 361 reset-gpios = <&pma8084_gpios 362 363 port { 364 panel_in: endpoint { 365 remote-endpoin 366 }; 367 }; 368 }; 369 }; 370 371 &mdss_dsi0_out { 372 remote-endpoint = <&panel_in>; 373 data-lanes = <0 1 2 3>; 374 }; 375 376 &mdss_dsi0_phy { 377 status = "okay"; 378 379 vddio-supply = <&pma8084_l12>; 380 }; 381 382 &pma8084_gpios { 383 gpio_keys_pin_a: gpio-keys-active-stat 384 pins = "gpio2", "gpio3", "gpio 385 function = "normal"; 386 387 bias-pull-up; 388 power-source = <PMA8084_GPIO_S 389 }; 390 391 touchkey_pin: touchkey-int-state { 392 pins = "gpio6"; 393 function = "normal"; 394 bias-disable; 395 input-enable; 396 power-source = <PMA8084_GPIO_S 397 }; 398 399 touch_pin: touchscreen-int-state { 400 pins = "gpio8"; 401 function = "normal"; 402 bias-disable; 403 input-enable; 404 power-source = <PMA8084_GPIO_S 405 }; 406 407 panel_en_pin: panel-en-state { 408 pins = "gpio14"; 409 function = "normal"; 410 bias-pull-up; 411 power-source = <PMA8084_GPIO_S 412 qcom,drive-strength = <PMIC_GP 413 }; 414 415 wlan_sleep_clk_pin: wlan-sleep-clk-sta 416 pins = "gpio16"; 417 function = "func2"; 418 419 output-high; 420 power-source = <PMA8084_GPIO_S 421 qcom,drive-strength = <PMIC_GP 422 }; 423 424 panel_rst_pin: panel-rst-state { 425 pins = "gpio17"; 426 function = "normal"; 427 bias-disable; 428 power-source = <PMA8084_GPIO_S 429 qcom,drive-strength = <PMIC_GP 430 }; 431 432 fuelgauge_pin: fuelgauge-int-state { 433 pins = "gpio21"; 434 function = "normal"; 435 bias-disable; 436 input-enable; 437 power-source = <PMA8084_GPIO_S 438 }; 439 }; 440 441 &reserved_memory { 442 ramoops@3e8e0000 { 443 compatible = "ramoops"; 444 reg = <0x3e8e0000 0x200000>; 445 446 console-size = <0x100000>; 447 record-size = <0x10000>; 448 ftrace-size = <0x10000>; 449 pmsg-size = <0x80000>; 450 ecc-size = <8>; 451 }; 452 }; 453 454 &remoteproc_adsp { 455 status = "okay"; 456 cx-supply = <&pma8084_s2>; 457 }; 458 459 &remoteproc_mss { 460 status = "okay"; 461 cx-supply = <&pma8084_s2>; 462 mss-supply = <&pma8084_s6>; 463 mx-supply = <&pma8084_s1>; 464 pll-supply = <&pma8084_l12>; 465 }; 466 467 &rpm_requests { 468 regulators-0 { 469 compatible = "qcom,rpm-pma8084 470 471 pma8084_s1: s1 { 472 regulator-min-microvol 473 regulator-max-microvol 474 regulator-always-on; 475 }; 476 477 pma8084_s2: s2 { 478 regulator-min-microvol 479 regulator-max-microvol 480 }; 481 482 pma8084_s3: s3 { 483 regulator-min-microvol 484 regulator-max-microvol 485 }; 486 487 pma8084_s4: s4 { 488 regulator-min-microvol 489 regulator-max-microvol 490 }; 491 492 pma8084_s5: s5 { 493 regulator-min-microvol 494 regulator-max-microvol 495 }; 496 497 pma8084_s6: s6 { 498 regulator-min-microvol 499 regulator-max-microvol 500 }; 501 502 pma8084_l1: l1 { 503 regulator-min-microvol 504 regulator-max-microvol 505 }; 506 507 pma8084_l2: l2 { 508 regulator-min-microvol 509 regulator-max-microvol 510 }; 511 512 pma8084_l3: l3 { 513 regulator-min-microvol 514 regulator-max-microvol 515 }; 516 517 pma8084_l4: l4 { 518 regulator-min-microvol 519 regulator-max-microvol 520 }; 521 522 pma8084_l5: l5 { 523 regulator-min-microvol 524 regulator-max-microvol 525 }; 526 527 pma8084_l6: l6 { 528 regulator-min-microvol 529 regulator-max-microvol 530 }; 531 532 pma8084_l7: l7 { 533 regulator-min-microvol 534 regulator-max-microvol 535 }; 536 537 pma8084_l8: l8 { 538 regulator-min-microvol 539 regulator-max-microvol 540 }; 541 542 pma8084_l9: l9 { 543 regulator-min-microvol 544 regulator-max-microvol 545 }; 546 547 pma8084_l10: l10 { 548 regulator-min-microvol 549 regulator-max-microvol 550 }; 551 552 pma8084_l11: l11 { 553 regulator-min-microvol 554 regulator-max-microvol 555 }; 556 557 pma8084_l12: l12 { 558 regulator-min-microvol 559 regulator-max-microvol 560 regulator-always-on; 561 }; 562 563 pma8084_l13: l13 { 564 regulator-min-microvol 565 regulator-max-microvol 566 }; 567 568 pma8084_l14: l14 { 569 regulator-min-microvol 570 regulator-max-microvol 571 }; 572 573 pma8084_l15: l15 { 574 regulator-min-microvol 575 regulator-max-microvol 576 }; 577 578 pma8084_l16: l16 { 579 regulator-min-microvol 580 regulator-max-microvol 581 }; 582 583 pma8084_l17: l17 { 584 regulator-min-microvol 585 regulator-max-microvol 586 }; 587 588 pma8084_l18: l18 { 589 regulator-min-microvol 590 regulator-max-microvol 591 }; 592 593 pma8084_l19: l19 { 594 regulator-min-microvol 595 regulator-max-microvol 596 }; 597 598 pma8084_l20: l20 { 599 regulator-min-microvol 600 regulator-max-microvol 601 regulator-system-load 602 regulator-allow-set-lo 603 }; 604 605 pma8084_l21: l21 { 606 regulator-min-microvol 607 regulator-max-microvol 608 regulator-system-load 609 regulator-allow-set-lo 610 }; 611 612 pma8084_l22: l22 { 613 regulator-min-microvol 614 regulator-max-microvol 615 }; 616 617 pma8084_l23: l23 { 618 regulator-min-microvol 619 regulator-max-microvol 620 }; 621 622 pma8084_l24: l24 { 623 regulator-min-microvol 624 regulator-max-microvol 625 }; 626 627 pma8084_l25: l25 { 628 regulator-min-microvol 629 regulator-max-microvol 630 }; 631 632 pma8084_l26: l26 { 633 regulator-min-microvol 634 regulator-max-microvol 635 }; 636 637 pma8084_l27: l27 { 638 regulator-min-microvol 639 regulator-max-microvol 640 }; 641 642 pma8084_lvs1: lvs1 {}; 643 pma8084_lvs2: lvs2 {}; 644 pma8084_lvs3: lvs3 {}; 645 pma8084_lvs4: lvs4 {}; 646 647 pma8084_5vs1: 5vs1 {}; 648 }; 649 }; 650 651 &sdhc_1 { 652 status = "okay"; 653 654 vmmc-supply = <&pma8084_l20>; 655 vqmmc-supply = <&pma8084_s4>; 656 657 pinctrl-names = "default", "sleep"; 658 pinctrl-0 = <&sdc1_on>; 659 pinctrl-1 = <&sdc1_off>; 660 }; 661 662 &sdhc_2 { 663 status = "okay"; 664 max-frequency = <100000000>; 665 vmmc-supply = <&vreg_wlan>; 666 vqmmc-supply = <&pma8084_s4>; 667 non-removable; 668 669 pinctrl-names = "default", "sleep"; 670 pinctrl-0 = <&sdc2_on>; 671 pinctrl-1 = <&sdc2_off>; 672 673 wifi@1 { 674 reg = <1>; 675 compatible = "brcm,bcm4329-fma 676 677 /* 678 * Allow all klte* variants to 679 * as they have little differe 680 */ 681 brcm,board-type = "samsung,klt 682 683 interrupt-parent = <&tlmm>; 684 interrupts = <92 IRQ_TYPE_LEVE 685 interrupt-names = "host-wake"; 686 687 pinctrl-names = "default"; 688 pinctrl-0 = <&wlan_sleep_clk_p 689 }; 690 }; 691 692 &sdhc_3 { 693 status = "okay"; 694 max-frequency = <100000000>; 695 vmmc-supply = <&pma8084_l21>; 696 vqmmc-supply = <&pma8084_l13>; 697 698 /* 699 * cd-gpio is intentionally disabled. 700 * present during boot is not initiali 701 * cd-gpios the driver resorts to poll 702 */ 703 pinctrl-names = "default"; 704 pinctrl-0 = <&sdc3_on /* &sdhc3_cd_pin 705 /* cd-gpios = <&tlmm 62 GPIO_ACTIVE_LO 706 }; 707 708 &tlmm { 709 /* This seems suspicious, but somebody 710 blsp2_uart2_pins_active: blsp2-uart2-p 711 pins = "gpio45", "gpio46", "gp 712 function = "blsp_uart8"; 713 drive-strength = <8>; 714 bias-disable; 715 }; 716 717 blsp2_uart2_pins_sleep: blsp2-uart2-pi 718 pins = "gpio45", "gpio46", "gp 719 function = "gpio"; 720 drive-strength = <2>; 721 bias-pull-down; 722 }; 723 724 bt_pins: bt-pins-state { 725 hostwake-pins { 726 pins = "gpio75"; 727 function = "gpio"; 728 drive-strength = <16>; 729 }; 730 731 devwake-pins { 732 pins = "gpio91"; 733 function = "gpio"; 734 drive-strength = <2>; 735 }; 736 }; 737 738 sdc1_on: sdhc1-on-state { 739 clk-pins { 740 pins = "sdc1_clk"; 741 drive-strength = <4>; 742 bias-disable; 743 }; 744 745 cmd-data-pins { 746 pins = "sdc1_cmd", "sd 747 drive-strength = <4>; 748 bias-pull-up; 749 }; 750 }; 751 752 sdc3_on: sdc3-on-state { 753 pins = "gpio35", "gpio36", "gp 754 function = "sdc3"; 755 drive-strength = <8>; 756 bias-disable; 757 }; 758 759 sdhc3_cd_pin: sdc3-cd-on-state { 760 pins = "gpio62"; 761 function = "gpio"; 762 763 drive-strength = <2>; 764 bias-disable; 765 }; 766 767 sdc2_on: sdhc2-on-state { 768 clk-pins { 769 pins = "sdc2_clk"; 770 drive-strength = <6>; 771 bias-disable; 772 }; 773 774 cmd-data-pins { 775 pins = "sdc2_cmd", "sd 776 drive-strength = <6>; 777 bias-pull-up; 778 }; 779 }; 780 781 i2c_touchkey_pins: i2c-touchkey-state 782 pins = "gpio95", "gpio96"; 783 function = "gpio"; 784 bias-pull-up; 785 }; 786 787 i2c_led_gpioex_pins: i2c-led-gpioex-st 788 function = "gpio"; 789 bias-pull-down; 790 }; 791 792 gpioex_pin: gpioex-state { 793 pins = "gpio145"; 794 function = "gpio"; 795 bias-pull-up; 796 drive-strength = <2>; 797 }; 798 799 wifi_pin: wifi-state { 800 pins = "gpio92"; 801 function = "gpio"; 802 bias-pull-down; 803 }; 804 805 panel_te_pin: panel-state { 806 pins = "gpio12"; 807 function = "mdp_vsync"; 808 drive-strength = <2>; 809 bias-disable; 810 }; 811 }; 812 813 &usb { 814 status = "okay"; 815 816 phys = <&usb_hs1_phy>; 817 phy-select = <&tcsr 0xb000 0>; 818 819 hnp-disable; 820 srp-disable; 821 adp-disable; 822 }; 823 824 &usb_hs1_phy { 825 status = "okay"; 826 827 v1p8-supply = <&pma8084_l6>; 828 v3p3-supply = <&pma8084_l24>; 829 830 qcom,init-seq = /bits/ 8 <0x1 0x64>; 831 };
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.