1// SPDX-License-Identifier: GPL-2.0 2#include "qcom-msm8974.dtsi" 3#include "qcom-pm8841.dtsi" 4#include "qcom-pm8941.dtsi" 5#include <dt-bindings/gpio/gpio.h> 6#include <dt-bindings/input/input.h> 7#include <dt-bindings/pinctrl/qcom,pmic-gpio.h> 8 9/ { 10 model = "LGE MSM 8974 HAMMERHEAD"; 11 compatible = "lge,hammerhead", "qcom,msm8974"; 12 13 aliases { 14 serial0 = &blsp1_uart1; 15 serial1 = &blsp2_uart10; 16 }; 17 18 chosen { 19 stdout-path = "serial0:115200n8"; 20 }; 21 22 smd { 23 rpm { 24 rpm_requests { 25 pm8841-regulators { 26 s1 { 27 regulator-min-microvolt = <675000>; 28 regulator-max-microvolt = <1050000>; 29 }; 30 31 s2 { 32 regulator-min-microvolt = <500000>; 33 regulator-max-microvolt = <1050000>; 34 }; 35 36 s3 { 37 regulator-min-microvolt = <1050000>; 38 regulator-max-microvolt = <1050000>; 39 }; 40 41 s4 { 42 regulator-min-microvolt = <815000>; 43 regulator-max-microvolt = <900000>; 44 }; 45 }; 46 47 pm8941-regulators { 48 vdd_l1_l3-supply = <&pm8941_s1>; 49 vdd_l2_lvs1_2_3-supply = <&pm8941_s3>; 50 vdd_l4_l11-supply = <&pm8941_s1>; 51 vdd_l5_l7-supply = <&pm8941_s2>; 52 vdd_l6_l12_l14_l15-supply = <&pm8941_s2>; 53 vdd_l8_l16_l18_l19-supply = <&vreg_vph_pwr>; 54 vdd_l9_l10_l17_l22-supply = <&vreg_boost>; 55 vdd_l13_l20_l23_l24-supply = <&vreg_boost>; 56 vdd_l21-supply = <&vreg_boost>; 57 58 s1 { 59 regulator-min-microvolt = <1300000>; 60 regulator-max-microvolt = <1300000>; 61 62 regulator-always-on; 63 regulator-boot-on; 64 }; 65 66 s2 { 67 regulator-min-microvolt = <2150000>; 68 regulator-max-microvolt = <2150000>; 69 70 regulator-boot-on; 71 }; 72 73 s3 { 74 regulator-min-microvolt = <1800000>; 75 regulator-max-microvolt = <1800000>; 76 77 regulator-always-on; 78 regulator-boot-on; 79 }; 80 81 l1 { 82 regulator-min-microvolt = <1225000>; 83 regulator-max-microvolt = <1225000>; 84 85 regulator-always-on; 86 regulator-boot-on; 87 }; 88 89 l2 { 90 regulator-min-microvolt = <1200000>; 91 regulator-max-microvolt = <1200000>; 92 }; 93 94 l3 { 95 regulator-min-microvolt = <1225000>; 96 regulator-max-microvolt = <1225000>; 97 }; 98 99 l4 { 100 regulator-min-microvolt = <1225000>; 101 regulator-max-microvolt = <1225000>; 102 }; 103 104 l5 { 105 regulator-min-microvolt = <1800000>; 106 regulator-max-microvolt = <1800000>; 107 }; 108 109 l6 { 110 regulator-min-microvolt = <1800000>; 111 regulator-max-microvolt = <1800000>; 112 113 regulator-boot-on; 114 }; 115 116 l7 { 117 regulator-min-microvolt = <1800000>; 118 regulator-max-microvolt = <1800000>; 119 120 regulator-boot-on; 121 }; 122 123 l8 { 124 regulator-min-microvolt = <1800000>; 125 regulator-max-microvolt = <1800000>; 126 }; 127 128 l9 { 129 regulator-min-microvolt = <1800000>; 130 regulator-max-microvolt = <2950000>; 131 }; 132 133 l10 { 134 regulator-min-microvolt = <1800000>; 135 regulator-max-microvolt = <2950000>; 136 }; 137 138 l11 { 139 regulator-min-microvolt = <1300000>; 140 regulator-max-microvolt = <1300000>; 141 }; 142 143 l12 { 144 regulator-min-microvolt = <1800000>; 145 regulator-max-microvolt = <1800000>; 146 147 regulator-always-on; 148 regulator-boot-on; 149 }; 150 151 l13 { 152 regulator-min-microvolt = <1800000>; 153 regulator-max-microvolt = <2950000>; 154 155 regulator-boot-on; 156 }; 157 158 l14 { 159 regulator-min-microvolt = <1800000>; 160 regulator-max-microvolt = <1800000>; 161 }; 162 163 l15 { 164 regulator-min-microvolt = <2050000>; 165 regulator-max-microvolt = <2050000>; 166 }; 167 168 l16 { 169 regulator-min-microvolt = <2700000>; 170 regulator-max-microvolt = <2700000>; 171 }; 172 173 l17 { 174 regulator-min-microvolt = <2850000>; 175 regulator-max-microvolt = <2850000>; 176 }; 177 178 l18 { 179 regulator-min-microvolt = <2850000>; 180 regulator-max-microvolt = <2850000>; 181 }; 182 183 l19 { 184 regulator-min-microvolt = <3000000>; 185 regulator-max-microvolt = <3300000>; 186 }; 187 188 l20 { 189 regulator-min-microvolt = <2950000>; 190 regulator-max-microvolt = <2950000>; 191 192 regulator-boot-on; 193 regulator-system-load = <200000>; 194 regulator-allow-set-load; 195 }; 196 197 l21 { 198 regulator-min-microvolt = <2950000>; 199 regulator-max-microvolt = <2950000>; 200 201 regulator-boot-on; 202 }; 203 204 l22 { 205 regulator-min-microvolt = <3000000>; 206 regulator-max-microvolt = <3300000>; 207 }; 208 209 l23 { 210 regulator-min-microvolt = <3000000>; 211 regulator-max-microvolt = <3000000>; 212 }; 213 214 l24 { 215 regulator-min-microvolt = <3075000>; 216 regulator-max-microvolt = <3075000>; 217 218 regulator-boot-on; 219 }; 220 }; 221 }; 222 }; 223 }; 224 225 vreg_wlan: wlan-regulator { 226 compatible = "regulator-fixed"; 227 228 regulator-name = "wl-reg"; 229 regulator-min-microvolt = <3300000>; 230 regulator-max-microvolt = <3300000>; 231 232 gpio = <&msmgpio 26 GPIO_ACTIVE_HIGH>; 233 enable-active-high; 234 235 pinctrl-names = "default"; 236 pinctrl-0 = <&wlan_regulator_pin>; 237 }; 238}; 239 240&soc { 241 serial@f991d000 { 242 status = "okay"; 243 }; 244 245 pinctrl@fd510000 { 246 sdhc1_pin_a: sdhc1-pin-active { 247 clk { 248 pins = "sdc1_clk"; 249 drive-strength = <16>; 250 bias-disable; 251 }; 252 253 cmd-data { 254 pins = "sdc1_cmd", "sdc1_data"; 255 drive-strength = <10>; 256 bias-pull-up; 257 }; 258 }; 259 260 sdhc2_pin_a: sdhc2-pin-active { 261 clk { 262 pins = "sdc2_clk"; 263 drive-strength = <6>; 264 bias-disable; 265 }; 266 267 cmd-data { 268 pins = "sdc2_cmd", "sdc2_data"; 269 drive-strength = <6>; 270 bias-pull-up; 271 }; 272 }; 273 274 i2c1_pins: i2c1 { 275 mux { 276 pins = "gpio2", "gpio3"; 277 function = "blsp_i2c1"; 278 279 drive-strength = <2>; 280 bias-disable; 281 }; 282 }; 283 284 i2c2_pins: i2c2 { 285 mux { 286 pins = "gpio6", "gpio7"; 287 function = "blsp_i2c2"; 288 289 drive-strength = <2>; 290 bias-disable; 291 }; 292 }; 293 294 i2c3_pins: i2c3 { 295 mux { 296 pins = "gpio10", "gpio11"; 297 function = "blsp_i2c3"; 298 drive-strength = <2>; 299 bias-disable; 300 }; 301 }; 302 303 i2c11_pins: i2c11 { 304 mux { 305 pins = "gpio83", "gpio84"; 306 function = "blsp_i2c11"; 307 308 drive-strength = <2>; 309 bias-disable; 310 }; 311 }; 312 313 i2c12_pins: i2c12 { 314 mux { 315 pins = "gpio87", "gpio88"; 316 function = "blsp_i2c12"; 317 drive-strength = <2>; 318 bias-disable; 319 }; 320 }; 321 322 mpu6515_pin: mpu6515 { 323 irq { 324 pins = "gpio73"; 325 function = "gpio"; 326 bias-disable; 327 input-enable; 328 }; 329 }; 330 331 touch_pin: touch { 332 int { 333 pins = "gpio5"; 334 function = "gpio"; 335 336 drive-strength = <2>; 337 bias-disable; 338 input-enable; 339 }; 340 341 reset { 342 pins = "gpio8"; 343 function = "gpio"; 344 345 drive-strength = <2>; 346 bias-pull-up; 347 }; 348 }; 349 350 panel_pin: panel { 351 te { 352 pins = "gpio12"; 353 function = "mdp_vsync"; 354 355 drive-strength = <2>; 356 bias-disable; 357 }; 358 }; 359 360 bt_pin: bt { 361 hostwake { 362 pins = "gpio42"; 363 function = "gpio"; 364 }; 365 366 devwake { 367 pins = "gpio62"; 368 function = "gpio"; 369 }; 370 371 shutdown { 372 pins = "gpio41"; 373 function = "gpio"; 374 }; 375 }; 376 377 blsp2_uart10_pin_a: blsp2-uart10-pin-active { 378 tx { 379 pins = "gpio53"; 380 function = "blsp_uart10"; 381 382 drive-strength = <2>; 383 bias-disable; 384 }; 385 386 rx { 387 pins = "gpio54"; 388 function = "blsp_uart10"; 389 390 drive-strength = <2>; 391 bias-pull-up; 392 }; 393 394 cts { 395 pins = "gpio55"; 396 function = "blsp_uart10"; 397 398 drive-strength = <2>; 399 bias-pull-up; 400 }; 401 402 rts { 403 pins = "gpio56"; 404 function = "blsp_uart10"; 405 406 drive-strength = <2>; 407 bias-disable; 408 }; 409 }; 410 }; 411 412 sdhci@f9824900 { 413 status = "okay"; 414 415 vmmc-supply = <&pm8941_l20>; 416 vqmmc-supply = <&pm8941_s3>; 417 418 bus-width = <8>; 419 non-removable; 420 421 pinctrl-names = "default"; 422 pinctrl-0 = <&sdhc1_pin_a>; 423 }; 424 425 sdhci@f98a4900 { 426 status = "okay"; 427 428 max-frequency = <100000000>; 429 bus-width = <4>; 430 non-removable; 431 vmmc-supply = <&vreg_wlan>; 432 vqmmc-supply = <&pm8941_s3>; 433 434 pinctrl-names = "default"; 435 pinctrl-0 = <&sdhc2_pin_a>; 436 437 #address-cells = <1>; 438 #size-cells = <0>; 439 440 bcrmf@1 { 441 compatible = "brcm,bcm4339-fmac", "brcm,bcm4329-fmac"; 442 reg = <1>; 443 444 brcm,drive-strength = <10>; 445 446 pinctrl-names = "default"; 447 pinctrl-0 = <&wlan_sleep_clk_pin>; 448 }; 449 }; 450 451 gpio-keys { 452 compatible = "gpio-keys"; 453 input-name = "gpio-keys"; 454 455 pinctrl-names = "default"; 456 pinctrl-0 = <&gpio_keys_pin_a>; 457 458 volume-up { 459 label = "volume_up"; 460 gpios = <&pm8941_gpios 2 GPIO_ACTIVE_LOW>; 461 linux,input-type = <1>; 462 linux,code = <KEY_VOLUMEUP>; 463 }; 464 465 volume-down { 466 label = "volume_down"; 467 gpios = <&pm8941_gpios 3 GPIO_ACTIVE_LOW>; 468 linux,input-type = <1>; 469 linux,code = <KEY_VOLUMEDOWN>; 470 }; 471 }; 472 473 serial@f9960000 { 474 status = "okay"; 475 476 pinctrl-names = "default"; 477 pinctrl-0 = <&blsp2_uart10_pin_a>; 478 479 bluetooth { 480 compatible = "brcm,bcm43438-bt"; 481 max-speed = <3000000>; 482 483 pinctrl-names = "default"; 484 pinctrl-0 = <&bt_pin>; 485 486 host-wakeup-gpios = <&msmgpio 42 GPIO_ACTIVE_HIGH>; 487 device-wakeup-gpios = <&msmgpio 62 GPIO_ACTIVE_HIGH>; 488 shutdown-gpios = <&msmgpio 41 GPIO_ACTIVE_HIGH>; 489 }; 490 }; 491 492 i2c@f9967000 { 493 status = "okay"; 494 pinctrl-names = "default"; 495 pinctrl-0 = <&i2c11_pins>; 496 clock-frequency = <355000>; 497 qcom,src-freq = <50000000>; 498 499 led-controller@38 { 500 compatible = "ti,lm3630a"; 501 status = "okay"; 502 reg = <0x38>; 503 504 #address-cells = <1>; 505 #size-cells = <0>; 506 507 led@0 { 508 reg = <0>; 509 led-sources = <0 1>; 510 label = "lcd-backlight"; 511 default-brightness = <200>; 512 }; 513 }; 514 }; 515 516 i2c@f9968000 { 517 status = "okay"; 518 pinctrl-names = "default"; 519 pinctrl-0 = <&i2c12_pins>; 520 clock-frequency = <100000>; 521 qcom,src-freq = <50000000>; 522 523 mpu6515@68 { 524 compatible = "invensense,mpu6515"; 525 reg = <0x68>; 526 interrupts-extended = <&msmgpio 73 IRQ_TYPE_EDGE_FALLING>; 527 vddio-supply = <&pm8941_lvs1>; 528 529 pinctrl-names = "default"; 530 pinctrl-0 = <&mpu6515_pin>; 531 532 mount-matrix = "0", "-1", "0", 533 "-1", "0", "0", 534 "0", "0", "1"; 535 536 i2c-gate { 537 #address-cells = <1>; 538 #size-cells = <0>; 539 ak8963@f { 540 compatible = "asahi-kasei,ak8963"; 541 reg = <0x0f>; 542 gpios = <&msmgpio 67 0>; 543 vid-supply = <&pm8941_lvs1>; 544 vdd-supply = <&pm8941_l17>; 545 }; 546 547 bmp280@76 { 548 compatible = "bosch,bmp280"; 549 reg = <0x76>; 550 vdda-supply = <&pm8941_lvs1>; 551 vddd-supply = <&pm8941_l17>; 552 }; 553 }; 554 }; 555 }; 556 557 i2c@f9923000 { 558 status = "okay"; 559 pinctrl-names = "default"; 560 pinctrl-0 = <&i2c1_pins>; 561 clock-frequency = <100000>; 562 qcom,src-freq = <50000000>; 563 564 charger: bq24192@6b { 565 compatible = "ti,bq24192"; 566 reg = <0x6b>; 567 interrupts-extended = <&spmi_bus 0 0xd5 0 IRQ_TYPE_EDGE_FALLING>; 568 569 omit-battery-class; 570 571 usb_otg_vbus: usb-otg-vbus { }; 572 }; 573 574 fuelgauge: max17048@36 { 575 compatible = "maxim,max17048"; 576 reg = <0x36>; 577 578 maxim,double-soc; 579 maxim,rcomp = /bits/ 8 <0x4d>; 580 581 interrupt-parent = <&msmgpio>; 582 interrupts = <9 IRQ_TYPE_LEVEL_LOW>; 583 584 pinctrl-names = "default"; 585 pinctrl-0 = <&fuelgauge_pin>; 586 587 maxim,alert-low-soc-level = <2>; 588 }; 589 }; 590 591 i2c@f9924000 { 592 status = "okay"; 593 594 clock-frequency = <355000>; 595 qcom,src-freq = <50000000>; 596 597 pinctrl-names = "default"; 598 pinctrl-0 = <&i2c2_pins>; 599 600 synaptics@70 { 601 compatible = "syna,rmi4-i2c"; 602 reg = <0x70>; 603 604 interrupts-extended = <&msmgpio 5 IRQ_TYPE_EDGE_FALLING>; 605 vdd-supply = <&pm8941_l22>; 606 vio-supply = <&pm8941_lvs3>; 607 608 pinctrl-names = "default"; 609 pinctrl-0 = <&touch_pin>; 610 611 #address-cells = <1>; 612 #size-cells = <0>; 613 614 rmi4-f01@1 { 615 reg = <0x1>; 616 syna,nosleep-mode = <1>; 617 }; 618 619 rmi4-f12@12 { 620 reg = <0x12>; 621 syna,sensor-type = <1>; 622 }; 623 }; 624 }; 625 626 i2c@f9925000 { 627 status = "okay"; 628 pinctrl-names = "default"; 629 pinctrl-0 = <&i2c3_pins>; 630 clock-frequency = <100000>; 631 qcom,src-freq = <50000000>; 632 633 avago_apds993@39 { 634 compatible = "avago,apds9930"; 635 reg = <0x39>; 636 interrupts-extended = <&msmgpio 61 IRQ_TYPE_EDGE_FALLING>; 637 vdd-supply = <&pm8941_l17>; 638 vddio-supply = <&pm8941_lvs1>; 639 led-max-microamp = <100000>; 640 amstaos,proximity-diodes = <0>; 641 }; 642 }; 643 644 usb@f9a55000 { 645 status = "okay"; 646 647 phys = <&usb_hs1_phy>; 648 phy-select = <&tcsr 0xb000 0>; 649 650 extcon = <&charger>, <&usb_id>; 651 vbus-supply = <&usb_otg_vbus>; 652 653 hnp-disable; 654 srp-disable; 655 adp-disable; 656 657 ulpi { 658 phy@a { 659 status = "okay"; 660 661 v1p8-supply = <&pm8941_l6>; 662 v3p3-supply = <&pm8941_l24>; 663 664 qcom,init-seq = /bits/ 8 <0x1 0x64>; 665 }; 666 }; 667 }; 668 669 mdss@fd900000 { 670 status = "okay"; 671 672 mdp@fd900000 { 673 status = "okay"; 674 }; 675 676 dsi@fd922800 { 677 status = "okay"; 678 679 vdda-supply = <&pm8941_l2>; 680 vdd-supply = <&pm8941_lvs3>; 681 vddio-supply = <&pm8941_l12>; 682 683 #address-cells = <1>; 684 #size-cells = <0>; 685 686 ports { 687 port@1 { 688 endpoint { 689 remote-endpoint = <&panel_in>; 690 data-lanes = <0 1 2 3>; 691 }; 692 }; 693 }; 694 695 panel: panel@0 { 696 reg = <0>; 697 compatible = "lg,acx467akm-7"; 698 699 pinctrl-names = "default"; 700 pinctrl-0 = <&panel_pin>; 701 702 port { 703 panel_in: endpoint { 704 remote-endpoint = <&dsi0_out>; 705 }; 706 }; 707 }; 708 }; 709 710 dsi-phy@fd922a00 { 711 status = "okay"; 712 713 vddio-supply = <&pm8941_l12>; 714 }; 715 }; 716}; 717 718&spmi_bus { 719 pm8941@0 { 720 gpios@c000 { 721 gpio_keys_pin_a: gpio-keys-active { 722 pins = "gpio2", "gpio3"; 723 function = "normal"; 724 725 bias-pull-up; 726 power-source = <PM8941_GPIO_S3>; 727 }; 728 729 fuelgauge_pin: fuelgauge-int { 730 pins = "gpio9"; 731 function = "normal"; 732 733 bias-disable; 734 input-enable; 735 power-source = <PM8941_GPIO_S3>; 736 }; 737 738 wlan_sleep_clk_pin: wl-sleep-clk { 739 pins = "gpio16"; 740 function = "func2"; 741 742 output-high; 743 power-source = <PM8941_GPIO_S3>; 744 }; 745 746 wlan_regulator_pin: wl-reg-active { 747 pins = "gpio17"; 748 function = "normal"; 749 750 bias-disable; 751 power-source = <PM8941_GPIO_S3>; 752 }; 753 754 otg { 755 gpio-hog; 756 gpios = <35 GPIO_ACTIVE_HIGH>; 757 output-high; 758 line-name = "otg-gpio"; 759 }; 760 }; 761 }; 762}; 763