1// SPDX-License-Identifier: GPL-2.0 2#include "qcom-msm8974pro.dtsi" 3#include "pm8841.dtsi" 4#include "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 aliases { 11 mmc0 = &sdhc_1; 12 mmc1 = &sdhc_2; 13 serial0 = &blsp1_uart2; 14 serial1 = &blsp2_uart1; 15 }; 16 17 chosen { 18 stdout-path = "serial0:115200n8"; 19 }; 20 21 gpio-keys { 22 compatible = "gpio-keys"; 23 24 pinctrl-0 = <&gpio_keys_pin_a>; 25 pinctrl-names = "default"; 26 27 key-volume-down { 28 label = "volume_down"; 29 gpios = <&pm8941_gpios 2 GPIO_ACTIVE_LOW>; 30 linux,code = <KEY_VOLUMEDOWN>; 31 debounce-interval = <15>; 32 }; 33 34 key-volume-up { 35 label = "volume_up"; 36 gpios = <&pm8941_gpios 5 GPIO_ACTIVE_LOW>; 37 linux,code = <KEY_VOLUMEUP>; 38 debounce-interval = <15>; 39 }; 40 }; 41 42 vreg_vsp: lcd-dcdc-regulator { 43 compatible = "regulator-fixed"; 44 regulator-name = "vreg_vsp"; 45 regulator-min-microvolt = <5600000>; 46 regulator-max-microvolt = <5600000>; 47 48 gpio = <&pm8941_gpios 20 GPIO_ACTIVE_HIGH>; 49 enable-active-high; 50 51 pinctrl-0 = <&lcd_dcdc_en_pin_a>; 52 pinctrl-names = "default"; 53 }; 54 55 vreg_boost: vreg-boost { 56 compatible = "regulator-fixed"; 57 58 regulator-name = "vreg-boost"; 59 regulator-min-microvolt = <3150000>; 60 regulator-max-microvolt = <3150000>; 61 62 regulator-always-on; 63 regulator-boot-on; 64 65 gpio = <&pm8941_gpios 21 GPIO_ACTIVE_HIGH>; 66 enable-active-high; 67 68 pinctrl-names = "default"; 69 pinctrl-0 = <&boost_bypass_n_pin>; 70 }; 71 72 vreg_vph_pwr: vreg-vph-pwr { 73 compatible = "regulator-fixed"; 74 regulator-name = "vph-pwr"; 75 76 regulator-min-microvolt = <3600000>; 77 regulator-max-microvolt = <3600000>; 78 79 regulator-always-on; 80 }; 81 82 vreg_wlan: wlan-regulator { 83 compatible = "regulator-fixed"; 84 85 regulator-name = "wl-reg"; 86 regulator-min-microvolt = <3300000>; 87 regulator-max-microvolt = <3300000>; 88 89 gpio = <&pm8941_gpios 18 GPIO_ACTIVE_HIGH>; 90 enable-active-high; 91 92 pinctrl-0 = <&wlan_regulator_pin>; 93 pinctrl-names = "default"; 94 }; 95}; 96 97&blsp1_uart2 { 98 status = "okay"; 99}; 100 101&blsp2_i2c2 { 102 clock-frequency = <355000>; 103 104 status = "okay"; 105 106 synaptics_touchscreen: synaptics@2c { 107 compatible = "syna,rmi4-i2c"; 108 reg = <0x2c>; 109 110 interrupt-parent = <&tlmm>; 111 interrupts = <86 IRQ_TYPE_EDGE_FALLING>; 112 113 #address-cells = <1>; 114 #size-cells = <0>; 115 116 vdd-supply = <&pm8941_l22>; 117 /* vio-supply is set in dts */ 118 119 pinctrl-0 = <&ts_int_pin>; 120 pinctrl-names = "default"; 121 122 syna,startup-delay-ms = <100>; 123 124 rmi4-f01@1 { 125 reg = <0x1>; 126 syna,nosleep-mode = <1>; 127 }; 128 129 rmi4-f11@11 { 130 reg = <0x11>; 131 syna,sensor-type = <1>; 132 touchscreen-inverted-x; 133 }; 134 }; 135}; 136 137&pm8941_coincell { 138 qcom,rset-ohms = <2100>; 139 qcom,vset-millivolts = <3000>; 140 141 status = "okay"; 142}; 143 144&pm8941_gpios { 145 gpio_keys_pin_a: gpio-keys-active-state { 146 pins = "gpio2", "gpio5"; 147 function = "normal"; 148 bias-pull-up; 149 power-source = <PM8941_GPIO_S3>; 150 }; 151 152 wlan_sleep_clk_pin: wl-sleep-clk-state { 153 pins = "gpio17"; 154 function = "func2"; 155 output-high; 156 power-source = <PM8941_GPIO_S3>; 157 }; 158 159 wlan_regulator_pin: wl-reg-active-state { 160 pins = "gpio18"; 161 function = "normal"; 162 bias-disable; 163 power-source = <PM8941_GPIO_S3>; 164 }; 165 166 lcd_dcdc_en_pin_a: lcd-dcdc-en-active-state { 167 pins = "gpio20"; 168 function = "normal"; 169 bias-disable; 170 power-source = <PM8941_GPIO_S3>; 171 input-disable; 172 output-low; 173 }; 174}; 175 176&pm8941_lpg { 177 qcom,power-source = <1>; 178 179 status = "okay"; 180 181 multi-led { 182 color = <LED_COLOR_ID_RGB>; 183 function = LED_FUNCTION_STATUS; 184 185 #address-cells = <1>; 186 #size-cells = <0>; 187 188 led@5 { 189 reg = <5>; 190 color = <LED_COLOR_ID_BLUE>; 191 }; 192 193 led@6 { 194 reg = <6>; 195 color = <LED_COLOR_ID_GREEN>; 196 }; 197 198 led@7 { 199 reg = <7>; 200 color = <LED_COLOR_ID_RED>; 201 }; 202 }; 203}; 204 205&pm8941_vib { 206 status = "okay"; 207}; 208 209&remoteproc_adsp { 210 cx-supply = <&pm8841_s2>; 211 status = "okay"; 212}; 213 214&remoteproc_mss { 215 cx-supply = <&pm8841_s2>; 216 mss-supply = <&pm8841_s3>; 217 mx-supply = <&pm8841_s1>; 218 pll-supply = <&pm8941_l12>; 219 status = "okay"; 220}; 221 222&rpm_requests { 223 regulators-0 { 224 compatible = "qcom,rpm-pm8841-regulators"; 225 226 pm8841_s1: s1 { 227 regulator-min-microvolt = <675000>; 228 regulator-max-microvolt = <1050000>; 229 }; 230 231 pm8841_s2: s2 { 232 regulator-min-microvolt = <500000>; 233 regulator-max-microvolt = <1050000>; 234 }; 235 236 pm8841_s3: s3 { 237 regulator-min-microvolt = <500000>; 238 regulator-max-microvolt = <1050000>; 239 }; 240 241 pm8841_s4: s4 { 242 regulator-min-microvolt = <500000>; 243 regulator-max-microvolt = <1050000>; 244 }; 245 }; 246 247 regulators-1 { 248 compatible = "qcom,rpm-pm8941-regulators"; 249 250 vdd_l1_l3-supply = <&pm8941_s1>; 251 vdd_l2_lvs1_2_3-supply = <&pm8941_s3>; 252 vdd_l4_l11-supply = <&pm8941_s1>; 253 vdd_l5_l7-supply = <&pm8941_s2>; 254 vdd_l6_l12_l14_l15-supply = <&pm8941_s2>; 255 vdd_l9_l10_l17_l22-supply = <&vreg_boost>; 256 vdd_l13_l20_l23_l24-supply = <&vreg_boost>; 257 vdd_l21-supply = <&vreg_boost>; 258 259 pm8941_s1: s1 { 260 regulator-min-microvolt = <1300000>; 261 regulator-max-microvolt = <1300000>; 262 regulator-always-on; 263 regulator-boot-on; 264 }; 265 266 pm8941_s2: s2 { 267 regulator-min-microvolt = <2150000>; 268 regulator-max-microvolt = <2150000>; 269 regulator-boot-on; 270 }; 271 272 pm8941_s3: s3 { 273 regulator-min-microvolt = <1800000>; 274 regulator-max-microvolt = <1800000>; 275 regulator-system-load = <154000>; 276 regulator-always-on; 277 regulator-boot-on; 278 }; 279 280 pm8941_s4: s4 { 281 regulator-min-microvolt = <5000000>; 282 regulator-max-microvolt = <5000000>; 283 }; 284 285 pm8941_l1: l1 { 286 regulator-min-microvolt = <1225000>; 287 regulator-max-microvolt = <1225000>; 288 regulator-always-on; 289 regulator-boot-on; 290 }; 291 292 pm8941_l2: l2 { 293 regulator-min-microvolt = <1200000>; 294 regulator-max-microvolt = <1200000>; 295 }; 296 297 pm8941_l3: l3 { 298 regulator-min-microvolt = <1200000>; 299 regulator-max-microvolt = <1200000>; 300 }; 301 302 pm8941_l4: l4 { 303 regulator-min-microvolt = <1225000>; 304 regulator-max-microvolt = <1225000>; 305 }; 306 307 pm8941_l5: l5 { 308 regulator-min-microvolt = <1800000>; 309 regulator-max-microvolt = <1800000>; 310 }; 311 312 pm8941_l6: l6 { 313 regulator-min-microvolt = <1800000>; 314 regulator-max-microvolt = <1800000>; 315 regulator-boot-on; 316 }; 317 318 pm8941_l7: l7 { 319 regulator-min-microvolt = <1800000>; 320 regulator-max-microvolt = <1800000>; 321 regulator-boot-on; 322 }; 323 324 pm8941_l8: l8 { 325 regulator-min-microvolt = <1800000>; 326 regulator-max-microvolt = <1800000>; 327 }; 328 329 pm8941_l9: l9 { 330 regulator-min-microvolt = <1800000>; 331 regulator-max-microvolt = <2950000>; 332 }; 333 334 pm8941_l12: l12 { 335 regulator-min-microvolt = <1800000>; 336 regulator-max-microvolt = <1800000>; 337 regulator-always-on; 338 regulator-boot-on; 339 }; 340 341 pm8941_l13: l13 { 342 regulator-min-microvolt = <1800000>; 343 regulator-max-microvolt = <2950000>; 344 regulator-boot-on; 345 }; 346 347 pm8941_l14: l14 { 348 regulator-min-microvolt = <1800000>; 349 regulator-max-microvolt = <1800000>; 350 }; 351 352 pm8941_l15: l15 { 353 regulator-min-microvolt = <2050000>; 354 regulator-max-microvolt = <2050000>; 355 }; 356 357 pm8941_l16: l16 { 358 regulator-min-microvolt = <2700000>; 359 regulator-max-microvolt = <2700000>; 360 }; 361 362 pm8941_l17: l17 { 363 regulator-min-microvolt = <2700000>; 364 regulator-max-microvolt = <2700000>; 365 }; 366 367 pm8941_l18: l18 { 368 regulator-min-microvolt = <2850000>; 369 regulator-max-microvolt = <2850000>; 370 }; 371 372 pm8941_l20: l20 { 373 regulator-min-microvolt = <2950000>; 374 regulator-max-microvolt = <2950000>; 375 regulator-system-load = <500000>; 376 regulator-allow-set-load; 377 regulator-boot-on; 378 }; 379 380 pm8941_l21: l21 { 381 regulator-min-microvolt = <2950000>; 382 regulator-max-microvolt = <2950000>; 383 regulator-system-load = <500000>; 384 regulator-allow-set-load; 385 regulator-boot-on; 386 }; 387 388 pm8941_l22: l22 { 389 regulator-min-microvolt = <3000000>; 390 regulator-max-microvolt = <3000000>; 391 }; 392 393 pm8941_l23: l23 { 394 regulator-min-microvolt = <2800000>; 395 regulator-max-microvolt = <2800000>; 396 }; 397 398 pm8941_l24: l24 { 399 regulator-min-microvolt = <3075000>; 400 regulator-max-microvolt = <3075000>; 401 regulator-boot-on; 402 }; 403 404 pm8941_lvs3: lvs3 {}; 405 }; 406}; 407 408&sdhc_1 { 409 vmmc-supply = <&pm8941_l20>; 410 vqmmc-supply = <&pm8941_s3>; 411 412 pinctrl-0 = <&sdc1_on>; 413 pinctrl-1 = <&sdc1_off>; 414 pinctrl-names = "default", "sleep"; 415 416 status = "okay"; 417}; 418 419&sdhc_2 { 420 vmmc-supply = <&pm8941_l21>; 421 vqmmc-supply = <&pm8941_l13>; 422 423 cd-gpios = <&tlmm 62 GPIO_ACTIVE_LOW>; 424 425 pinctrl-0 = <&sdc2_on>; 426 pinctrl-1 = <&sdc2_off>; 427 pinctrl-names = "default", "sleep"; 428 429 status = "okay"; 430}; 431 432&sdhc_3 { 433 max-frequency = <100000000>; 434 vmmc-supply = <&vreg_wlan>; 435 non-removable; 436 437 pinctrl-0 = <&sdc3_on>; 438 pinctrl-names = "default"; 439 440 status = "okay"; 441 442 wifi@1 { 443 compatible = "brcm,bcm4339-fmac", "brcm,bcm4329-fmac"; 444 reg = <1>; 445 446 brcm,drive-strength = <10>; 447 448 pinctrl-0 = <&wlan_sleep_clk_pin>; 449 pinctrl-names = "default"; 450 }; 451}; 452 453&tlmm { 454 sdc1_on: sdc1-on-state { 455 clk-pins { 456 pins = "sdc1_clk"; 457 drive-strength = <16>; 458 bias-disable; 459 }; 460 461 cmd-data-pins { 462 pins = "sdc1_cmd", "sdc1_data"; 463 drive-strength = <10>; 464 bias-pull-up; 465 }; 466 }; 467 468 sdc2_on: sdc2-on-state { 469 clk-pins { 470 pins = "sdc2_clk"; 471 drive-strength = <6>; 472 bias-disable; 473 }; 474 475 cmd-data-pins { 476 pins = "sdc2_cmd", "sdc2_data"; 477 drive-strength = <6>; 478 bias-pull-up; 479 }; 480 481 cd-pins { 482 pins = "gpio62"; 483 function = "gpio"; 484 drive-strength = <2>; 485 bias-disable; 486 }; 487 }; 488 489 sdc3_on: sdc3-on-state { 490 clk-pins { 491 pins = "gpio40"; 492 function = "sdc3"; 493 drive-strength = <10>; 494 bias-disable; 495 }; 496 497 cmd-pins { 498 pins = "gpio39"; 499 function = "sdc3"; 500 drive-strength = <10>; 501 bias-pull-up; 502 }; 503 504 data-pins { 505 pins = "gpio35", "gpio36", "gpio37", "gpio38"; 506 function = "sdc3"; 507 drive-strength = <10>; 508 bias-pull-up; 509 }; 510 }; 511 512 ts_int_pin: ts-int-pin-state { 513 pins = "gpio86"; 514 function = "gpio"; 515 drive-strength = <2>; 516 bias-disable; 517 }; 518}; 519 520&usb { 521 phys = <&usb_hs1_phy>; 522 phy-select = <&tcsr 0xb000 0>; 523 extcon = <&smbb>, <&usb_id>; 524 vbus-supply = <&chg_otg>; 525 526 hnp-disable; 527 srp-disable; 528 adp-disable; 529 530 status = "okay"; 531}; 532 533&usb_hs1_phy { 534 v1p8-supply = <&pm8941_l6>; 535 v3p3-supply = <&pm8941_l24>; 536 537 extcon = <&smbb>; 538 qcom,init-seq = /bits/ 8 <0x1 0x64>; 539 540 status = "okay"; 541}; 542