1 // SPDX-License-Identifier: BSD-3-Clause 2 /* 3 * Copyright (c) 2020, Konrad Dybcio <konrad.dy 4 */ 5 6 #include "msm8994.dtsi" 7 #include "pm8994.dtsi" 8 #include "pmi8994.dtsi" 9 #include <dt-bindings/gpio/gpio.h> 10 #include <dt-bindings/input/gpio-keys.h> 11 12 / { 13 /* required for bootloader to select c 14 15 /* 16 * We support MSM8994 v2 (0x20000) and 17 * The V1 chip (0x0 and 0x10000) is si 18 * and requires driver-side changes (i 19 * Besides that, it's very rare. 20 */ 21 qcom,msm-id = <207 0x20000>, <207 0x20 22 /* We only use pm8994+pmi8994. */ 23 qcom,pmic-id = <0x10009 0x1000a 0x00 0 24 /* This property is shared across all 25 qcom,board-id = <8 0>; 26 27 /* Kitakami firmware doesn't support P 28 /delete-node/ psci; 29 30 gpio-keys { 31 compatible = "gpio-keys"; 32 autorepeat; 33 34 button-0 { 35 label = "Volume Down"; 36 gpios = <&pm8994_gpios 37 linux,input-type = <1> 38 linux,code = <KEY_VOLU 39 wakeup-source; 40 debounce-interval = <1 41 }; 42 43 button-1 { 44 label = "Volume Up"; 45 gpios = <&pm8994_gpios 46 linux,input-type = <1> 47 linux,code = <KEY_VOLU 48 wakeup-source; 49 debounce-interval = <1 50 }; 51 52 button-2 { 53 label = "Camera Snapsh 54 gpios = <&pm8994_gpios 55 linux,input-type = <1> 56 linux,code = <KEY_CAME 57 wakeup-source; 58 debounce-interval = <1 59 }; 60 61 button-3 { 62 label = "Camera Focus" 63 gpios = <&pm8994_gpios 64 linux,input-type = <1> 65 linux,code = <KEY_VOLU 66 wakeup-source; 67 debounce-interval = <1 68 }; 69 }; 70 71 reserved-memory { 72 /* This is for getting crash l 73 ramoops@1fe00000 { 74 compatible = "ramoops" 75 reg = <0 0x1fe00000 0 76 console-size = <0x1000 77 record-size = <0x10000 78 ftrace-size = <0x10000 79 pmsg-size = <0x80000>; 80 }; 81 82 fb_region: fb@40000000 { 83 reg = <0 0x40000000 0 84 no-map; 85 }; 86 87 tzapp: memory@c7800000 { 88 reg = <0 0xc7800000 0 89 no-map; 90 }; 91 }; 92 }; 93 94 &blsp1_spi1 { 95 status = "okay"; 96 97 /* FPC fingerprint reader */ 98 }; 99 100 /* I2C1 is disabled on this board */ 101 102 &blsp1_i2c2 { 103 status = "okay"; 104 clock-frequency = <355000>; 105 106 /* NXP PN547 NFC */ 107 }; 108 109 &blsp1_i2c6 { 110 status = "okay"; 111 clock-frequency = <355000>; 112 113 touchscreen: rmi4-i2c-dev@2c { 114 compatible = "syna,rmi4-i2c"; 115 reg = <0x2c>; 116 #address-cells = <1>; 117 #size-cells = <0>; 118 119 interrupt-parent = <&tlmm>; 120 interrupts = <42 IRQ_TYPE_EDGE 121 122 pinctrl-names = "default"; 123 pinctrl-0 = <&ts_int_active &t 124 125 vdd-supply = <&pm8994_l22>; 126 vio-supply = <&pm8994_s4>; 127 128 syna,reset-delay-ms = <220>; 129 syna,startup-delay-ms = <220>; 130 131 rmi4-f01@1 { 132 reg = <0x01>; 133 syna,nosleep-mode = <1 134 }; 135 136 rmi4-f11@11 { 137 reg = <0x11>; 138 syna,sensor-type = <1> 139 }; 140 }; 141 }; 142 143 &blsp1_uart2 { 144 status = "okay"; 145 }; 146 147 &blsp2_i2c5 { 148 status = "okay"; 149 clock-frequency = <355000>; 150 151 /* sii8620 HDMI/MHL bridge */ 152 }; 153 154 &blsp2_uart2 { 155 status = "okay"; 156 }; 157 158 /* 159 * Kitakami bootloader only turns cont_splash 160 * specific downstream MDSS/backlight nodes in 161 * One way to use that framebuffer is to load 162 * LK with the downstream DTB appended and the 163 * mainline Linux. 164 */ 165 &cont_splash_mem { 166 reg = <0 0x03401000 0 0x2200000>; 167 }; 168 169 &pmi8994_spmi_regulators { 170 /* 171 * Yeah, this one *is* managed by RPMP 172 * to be hacked up as a-o due to the G 173 * power domain.. which still isn't en 174 * OXILI_CX and OXILI_GX together! 175 */ 176 vdd_gfx: s2 { 177 regulator-name = "VDD_GFX"; 178 regulator-min-microvolt = <980 179 regulator-max-microvolt = <980 180 181 /* hack until we rig up the gp 182 regulator-always-on; 183 }; 184 }; 185 186 &rpm_requests { 187 /* PMI8994 should probe first, because 188 pmi8994_regulators: regulators-0 { 189 compatible = "qcom,rpm-pmi8994 190 191 vdd_s1-supply = <&vph_pwr>; 192 vdd_bst_byp-supply = <&vph_pwr 193 194 pmi8994_s1: s1 { 195 regulator-min-microvol 196 regulator-max-microvol 197 }; 198 199 /* S2 & S3 - VDD_GFX */ 200 201 pmi8994_bby: boost-bypass { 202 regulator-min-microvol 203 regulator-max-microvol 204 }; 205 }; 206 207 pm8994_regulators: regulators-1 { 208 compatible = "qcom,rpm-pm8994- 209 210 vdd_s3-supply = <&vph_pwr>; 211 vdd_s4-supply = <&vph_pwr>; 212 vdd_s5-supply = <&vph_pwr>; 213 vdd_s6-supply = <&vph_pwr>; 214 vdd_s7-supply = <&vph_pwr>; 215 vdd_l1-supply = <&pmi8994_s1>; 216 vdd_l2_l26_l28-supply = <&pm89 217 vdd_l3_l11-supply = <&pm8994_s 218 vdd_l4_l27_l31-supply = <&pm89 219 vdd_l6_l12_l32-supply = <&pm89 220 vdd_l8_l16_l30-supply = <&vph_ 221 vdd_l9_l10_l18_l22-supply = <& 222 vdd_l13_l19_l23_l24-supply = < 223 vdd_l14_l15-supply = <&pm8994_ 224 vdd_l17_l29-supply = <&pmi8994 225 vdd_l20_l21-supply = <&pmi8994 226 vdd_l25-supply = <&pm8994_s3>; 227 vdd_lvs1_2-supply = <&pm8994_s 228 229 /* S1, S2, S6 and S12 are mana 230 231 pm8994_s3: s3 { 232 regulator-min-microvol 233 regulator-max-microvol 234 }; 235 236 pm8994_s4: s4 { 237 regulator-min-microvol 238 regulator-max-microvol 239 regulator-system-load 240 regulator-allow-set-lo 241 regulator-always-on; 242 }; 243 244 pm8994_s5: s5 { 245 regulator-min-microvol 246 regulator-max-microvol 247 }; 248 249 pm8994_s7: s7 { 250 regulator-min-microvol 251 regulator-max-microvol 252 }; 253 254 /* 255 * S8 - SPMI-managed VDD_APC0 256 * S9, S10 and S11 (the main o 257 */ 258 259 pm8994_l1: l1 { 260 regulator-min-microvol 261 regulator-max-microvol 262 }; 263 264 pm8994_l2: l2 { 265 regulator-min-microvol 266 regulator-max-microvol 267 regulator-system-load 268 regulator-allow-set-lo 269 }; 270 271 pm8994_l3: l3 { 272 regulator-min-microvol 273 regulator-max-microvol 274 regulator-boot-on; 275 }; 276 277 pm8994_l4: l4 { 278 regulator-min-microvol 279 regulator-max-microvol 280 }; 281 282 /* L5 is inaccessible from RPM 283 284 pm8994_l6: l6 { 285 regulator-min-microvol 286 regulator-max-microvol 287 }; 288 289 /* L7 is inaccessible from RPM 290 291 pm8994_l8: l8 { 292 regulator-min-microvol 293 regulator-max-microvol 294 }; 295 296 pm8994_l9: l9 { 297 regulator-min-microvol 298 regulator-max-microvol 299 }; 300 301 pm8994_l10: l10 { 302 regulator-min-microvol 303 regulator-max-microvol 304 }; 305 306 pm8994_l11: l11 { 307 regulator-min-microvol 308 regulator-max-microvol 309 }; 310 311 pm8994_l12: l12 { 312 regulator-min-microvol 313 regulator-max-microvol 314 regulator-system-load 315 regulator-allow-set-lo 316 }; 317 318 pm8994_l13: l13 { 319 regulator-min-microvol 320 regulator-max-microvol 321 }; 322 323 pm8994_l14: l14 { 324 regulator-min-microvol 325 regulator-max-microvol 326 regulator-system-load 327 regulator-allow-set-lo 328 regulator-boot-on; 329 }; 330 331 pm8994_l15: l15 { 332 regulator-min-microvol 333 regulator-max-microvol 334 }; 335 336 pm8994_l16: l16 { 337 regulator-min-microvol 338 regulator-max-microvol 339 }; 340 341 pm8994_l17: l17 { 342 regulator-min-microvol 343 regulator-max-microvol 344 regulator-boot-on; 345 }; 346 347 pm8994_l18: l18 { 348 regulator-min-microvol 349 regulator-max-microvol 350 regulator-always-on; 351 regulator-boot-on; 352 }; 353 354 pm8994_l19: l19 { 355 regulator-min-microvol 356 regulator-max-microvol 357 regulator-boot-on; 358 }; 359 360 pm8994_l20: l20 { 361 regulator-min-microvol 362 regulator-max-microvol 363 regulator-system-load 364 regulator-allow-set-lo 365 }; 366 367 pm8994_l21: l21 { 368 regulator-min-microvol 369 regulator-max-microvol 370 regulator-system-load 371 regulator-allow-set-lo 372 }; 373 374 pm8994_l22: l22 { 375 regulator-min-microvol 376 regulator-max-microvol 377 regulator-boot-on; 378 }; 379 380 pm8994_l23: l23 { 381 regulator-min-microvol 382 regulator-max-microvol 383 regulator-always-on; 384 regulator-boot-on; 385 }; 386 387 pm8994_l24: l24 { 388 regulator-min-microvol 389 regulator-max-microvol 390 }; 391 392 pm8994_l25: l25 { 393 regulator-min-microvol 394 regulator-max-microvol 395 regulator-boot-on; 396 }; 397 398 pm8994_l26: l26 { 399 regulator-min-microvol 400 regulator-max-microvol 401 }; 402 403 pm8994_l27: l27 { 404 regulator-min-microvol 405 regulator-max-microvol 406 regulator-boot-on; 407 }; 408 409 pm8994_l28: l28 { 410 regulator-min-microvol 411 regulator-max-microvol 412 regulator-system-load 413 regulator-allow-set-lo 414 }; 415 416 pm8994_l29: l29 { 417 regulator-min-microvol 418 regulator-max-microvol 419 regulator-boot-on; 420 }; 421 422 pm8994_l30: l30 { 423 regulator-min-microvol 424 regulator-max-microvol 425 regulator-boot-on; 426 }; 427 428 pm8994_l31: l31 { 429 regulator-min-microvol 430 regulator-max-microvol 431 regulator-system-load 432 regulator-allow-set-lo 433 }; 434 435 pm8994_l32: l32 { 436 regulator-min-microvol 437 regulator-max-microvol 438 }; 439 440 pm8994_lvs1: lvs1 { 441 regulator-boot-on; 442 }; 443 pm8994_lvs2: lvs2 { 444 regulator-boot-on; 445 }; 446 }; 447 }; 448 449 &sdhc1 { 450 /* 451 * There is an issue with the eMMC cau 452 * damage to the card if a quirk isn't 453 * Until it's fixed, disable the MMC s 454 * devices. 455 */ 456 status = "disabled"; 457 458 /* 459 * Downstream pushes 2.95V to the sdhc 460 * but upstream driver REALLY wants to 461 * cause of the hs400-1_8v mode. MMC w 462 * that regulator, so let's not use it 463 * vqmmc is also disabled cause driver 464 * 465 * vmmc-supply = <&pm8994_l20>; 466 * vqmmc-supply = <&pm8994_s4>; 467 */ 468 }; 469 470 &sdhc2 { 471 status = "okay"; 472 473 cd-gpios = <&tlmm 100 GPIO_ACTIVE_HIGH 474 vmmc-supply = <&pm8994_l21>; 475 vqmmc-supply = <&pm8994_l13>; 476 }; 477 478 &tlmm { 479 ts_int_active: ts-int-active-state { 480 pins = "gpio42"; 481 function = "gpio"; 482 drive-strength = <2>; 483 bias-disable; 484 }; 485 486 ts_reset_active: ts-reset-active-state 487 pins = "gpio109"; 488 function = "gpio"; 489 drive-strength = <2>; 490 bias-disable; 491 output-low; 492 }; 493 };
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.