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