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