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 = "ok"; 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 = "ok"; 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 = "ok"; 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 = "ok"; 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 = "ok"; 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 = "ok"; 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 = "ok"; 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 i2c-gate { 533 #address-cells = <1>; 534 #size-cells = <0>; 535 ak8963@f { 536 compatible = "asahi-kasei,ak8963"; 537 reg = <0x0f>; 538 gpios = <&msmgpio 67 0>; 539 vid-supply = <&pm8941_lvs1>; 540 vdd-supply = <&pm8941_l17>; 541 }; 542 543 bmp280@76 { 544 compatible = "bosch,bmp280"; 545 reg = <0x76>; 546 vdda-supply = <&pm8941_lvs1>; 547 vddd-supply = <&pm8941_l17>; 548 }; 549 }; 550 }; 551 }; 552 553 i2c@f9923000 { 554 status = "ok"; 555 pinctrl-names = "default"; 556 pinctrl-0 = <&i2c1_pins>; 557 clock-frequency = <100000>; 558 qcom,src-freq = <50000000>; 559 560 charger: bq24192@6b { 561 compatible = "ti,bq24192"; 562 reg = <0x6b>; 563 interrupts-extended = <&spmi_bus 0 0xd5 0 IRQ_TYPE_EDGE_FALLING>; 564 565 omit-battery-class; 566 567 usb_otg_vbus: usb-otg-vbus { }; 568 }; 569 }; 570 571 i2c@f9924000 { 572 status = "ok"; 573 574 clock-frequency = <355000>; 575 qcom,src-freq = <50000000>; 576 577 pinctrl-names = "default"; 578 pinctrl-0 = <&i2c2_pins>; 579 580 synaptics@70 { 581 compatible = "syna,rmi4-i2c"; 582 reg = <0x70>; 583 584 interrupts-extended = <&msmgpio 5 IRQ_TYPE_EDGE_FALLING>; 585 vdd-supply = <&pm8941_l22>; 586 vio-supply = <&pm8941_lvs3>; 587 588 pinctrl-names = "default"; 589 pinctrl-0 = <&touch_pin>; 590 591 #address-cells = <1>; 592 #size-cells = <0>; 593 594 rmi4-f01@1 { 595 reg = <0x1>; 596 syna,nosleep-mode = <1>; 597 }; 598 599 rmi4-f12@12 { 600 reg = <0x12>; 601 syna,sensor-type = <1>; 602 }; 603 }; 604 }; 605 606 i2c@f9925000 { 607 status = "ok"; 608 pinctrl-names = "default"; 609 pinctrl-0 = <&i2c3_pins>; 610 clock-frequency = <100000>; 611 qcom,src-freq = <50000000>; 612 613 avago_apds993@39 { 614 compatible = "avago,apds9930"; 615 reg = <0x39>; 616 interrupts-extended = <&msmgpio 61 IRQ_TYPE_EDGE_FALLING>; 617 vdd-supply = <&pm8941_l17>; 618 vddio-supply = <&pm8941_lvs1>; 619 led-max-microamp = <100000>; 620 amstaos,proximity-diodes = <0>; 621 }; 622 }; 623 624 usb@f9a55000 { 625 status = "ok"; 626 627 phys = <&usb_hs1_phy>; 628 phy-select = <&tcsr 0xb000 0>; 629 630 extcon = <&charger>, <&usb_id>; 631 vbus-supply = <&usb_otg_vbus>; 632 633 hnp-disable; 634 srp-disable; 635 adp-disable; 636 637 ulpi { 638 phy@a { 639 status = "ok"; 640 641 v1p8-supply = <&pm8941_l6>; 642 v3p3-supply = <&pm8941_l24>; 643 644 qcom,init-seq = /bits/ 8 <0x1 0x64>; 645 }; 646 }; 647 }; 648 649 mdss@fd900000 { 650 status = "ok"; 651 652 mdp@fd900000 { 653 status = "ok"; 654 }; 655 656 dsi@fd922800 { 657 status = "ok"; 658 659 vdda-supply = <&pm8941_l2>; 660 vdd-supply = <&pm8941_lvs3>; 661 vddio-supply = <&pm8941_l12>; 662 663 #address-cells = <1>; 664 #size-cells = <0>; 665 666 ports { 667 port@1 { 668 endpoint { 669 remote-endpoint = <&panel_in>; 670 data-lanes = <0 1 2 3>; 671 }; 672 }; 673 }; 674 675 panel: panel@0 { 676 reg = <0>; 677 compatible = "lg,acx467akm-7"; 678 679 pinctrl-names = "default"; 680 pinctrl-0 = <&panel_pin>; 681 682 port { 683 panel_in: endpoint { 684 remote-endpoint = <&dsi0_out>; 685 }; 686 }; 687 }; 688 }; 689 690 dsi-phy@fd922a00 { 691 status = "ok"; 692 693 vddio-supply = <&pm8941_l12>; 694 }; 695 }; 696}; 697 698&spmi_bus { 699 pm8941@0 { 700 gpios@c000 { 701 gpio_keys_pin_a: gpio-keys-active { 702 pins = "gpio2", "gpio3"; 703 function = "normal"; 704 705 bias-pull-up; 706 power-source = <PM8941_GPIO_S3>; 707 }; 708 709 wlan_sleep_clk_pin: wl-sleep-clk { 710 pins = "gpio16"; 711 function = "func2"; 712 713 output-high; 714 power-source = <PM8941_GPIO_S3>; 715 }; 716 717 wlan_regulator_pin: wl-reg-active { 718 pins = "gpio17"; 719 function = "normal"; 720 721 bias-disable; 722 power-source = <PM8941_GPIO_S3>; 723 }; 724 725 otg { 726 gpio-hog; 727 gpios = <35 GPIO_ACTIVE_HIGH>; 728 output-high; 729 line-name = "otg-gpio"; 730 }; 731 }; 732 }; 733}; 734