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