1// SPDX-License-Identifier: BSD-3-Clause 2/* 3 * Copyright (c) 2020, Yassine Oudjana <y.oudjana@protonmail.com> 4 */ 5 6/dts-v1/; 7 8#include "msm8996.dtsi" 9#include "pm8994.dtsi" 10#include "pmi8994.dtsi" 11#include <dt-bindings/input/input.h> 12#include <dt-bindings/gpio/gpio.h> 13#include <dt-bindings/leds/common.h> 14#include <dt-bindings/pinctrl/qcom,pmic-gpio.h> 15 16/ { 17 clocks { 18 compatible = "simple-bus"; 19 20 divclk1_cdc: divclk1 { 21 compatible = "gpio-gate-clock"; 22 clocks = <&rpmcc RPM_SMD_DIV_CLK1>; 23 #clock-cells = <0>; 24 enable-gpios = <&pm8994_gpios 15 GPIO_ACTIVE_HIGH>; 25 26 pinctrl-names = "default"; 27 pinctrl-0 = <&divclk1_default>; 28 }; 29 30 divclk4: divclk4 { 31 compatible = "fixed-clock"; 32 #clock-cells = <0>; 33 clock-frequency = <32768>; 34 clock-output-names = "divclk4"; 35 36 pinctrl-names = "default"; 37 pinctrl-0 = <&divclk4_pin_a>; 38 }; 39 }; 40 41 gpio_keys { 42 compatible = "gpio-keys"; 43 44 vol_up { 45 label = "Volume Up"; 46 gpios = <&pm8994_gpios 2 GPIO_ACTIVE_LOW>; 47 linux,code = <KEY_VOLUMEUP>; 48 wakeup-source; 49 debounce-interval = <15>; 50 }; 51 52 dome { 53 label = "Home"; 54 gpios = <&tlmm 34 GPIO_ACTIVE_LOW>; 55 linux,code = <KEY_HOME>; 56 wakeup-source; 57 debounce-interval = <15>; 58 }; 59 }; 60 61 reserved-memory { 62 memory@88800000 { 63 reg = <0x0 0x88800000 0x0 0x1400000>; 64 no-map; 65 }; 66 67 /* This platform has all PIL regions offset by 0x1400000 */ 68 /delete-node/ mpss@88800000; 69 mpss_mem: mpss@89c00000 { 70 reg = <0x0 0x89c00000 0x0 0x6200000>; 71 no-map; 72 }; 73 74 /delete-node/ adsp@8ea00000; 75 adsp_mem: adsp@8fe00000 { 76 reg = <0x0 0x8fe00000 0x0 0x1b00000>; 77 no-map; 78 }; 79 80 /delete-node/ slpi@90500000; 81 slpi_mem: slpi@91900000 { 82 reg = <0x0 0x91900000 0x0 0xa00000>; 83 no-map; 84 }; 85 86 /delete-node/ gpu@90f00000; 87 gpu_mem: gpu@92300000 { 88 compatible = "shared-dma-pool"; 89 reg = <0x0 0x92300000 0x0 0x2000>; 90 no-map; 91 }; 92 93 /delete-node/ venus@91000000; 94 venus_mem: venus@92400000 { 95 reg = <0x0 0x92400000 0x0 0x500000>; 96 no-map; 97 }; 98 99 ramoops@92900000 { 100 compatible = "ramoops"; 101 reg = <0x0 0x92900000 0x0 0x100000>; 102 no-map; 103 104 record-size = <0x8000>; 105 console-size = <0x80000>; 106 ftrace-size = <0x20000>; 107 pmsg-size = <0x40000>; 108 }; 109 110 /delete-node/ rmtfs; 111 rmtfs@f6c00000 { 112 compatible = "qcom,rmtfs-mem"; 113 reg = <0 0xf6c00000 0 0x200000>; 114 no-map; 115 116 qcom,client-id = <1>; 117 qcom,vmid = <15>; 118 }; 119 120 /delete-node/ mba@91500000; 121 mba_mem: mba@f6f00000 { 122 reg = <0x0 0xf6f00000 0x0 0x100000>; 123 no-map; 124 }; 125 }; 126 127 vph_pwr: vph-pwr-regulator { 128 compatible = "regulator-fixed"; 129 regulator-name = "vph_pwr"; 130 regulator-min-microvolt = <3800000>; 131 regulator-max-microvolt = <3800000>; 132 regulator-always-on; 133 regulator-boot-on; 134 }; 135 136 vdd_3v2_tp: vdd-3v2-tp { 137 compatible = "regulator-fixed"; 138 regulator-name = "vdd_3v2_tp"; 139 regulator-min-microvolt = <3200000>; 140 regulator-max-microvolt = <3200000>; 141 startup-delay-us = <4000>; 142 vin-supply = <&vph_pwr>; 143 144 gpio = <&tlmm 73 0>; 145 enable-active-high; 146 }; 147 148 vdd_3v3: rome-vreg { 149 compatible = "regulator-fixed"; 150 regulator-name = "vdd_3v3"; 151 regulator-min-microvolt = <3300000>; 152 regulator-max-microvolt = <3300000>; 153 startup-delay-us = <4000>; 154 vin-supply = <&vph_pwr_bbyp>; 155 156 gpio = <&pm8994_gpios 9 0>; 157 enable-active-high; 158 pinctrl-names = "default"; 159 pinctrl-0 = <&rome_enable_default>; 160 161 /* Required by QCA6174a - vddpe-3v3 */ 162 regulator-always-on; 163 }; 164 165 /* WL_EN pin defined as a fixed regulator */ 166 wlan_en: wlan-en-1-8v { 167 compatible = "regulator-fixed"; 168 regulator-name = "wlan-en-regulator"; 169 regulator-min-microvolt = <1800000>; 170 regulator-max-microvolt = <1800000>; 171 172 gpio = <&pm8994_gpios 8 0>; 173 /* WLAN card specific delay */ 174 startup-delay-us = <70000>; 175 enable-active-high; 176 pinctrl-names = "default"; 177 pinctrl-0 = <&wlan_en_default>; 178 }; 179}; 180 181&adsp_pil { 182 status = "okay"; 183}; 184 185&blsp2_i2c2 { 186 status = "okay"; 187 label = "NFC_I2C"; 188 clock-frequency = <400000>; 189 190 nfc: pn548@28 { 191 compatible = "nxp,nxp-nci-i2c"; 192 193 reg = <0x28>; 194 195 interrupt-parent = <&tlmm>; 196 interrupts = <9 IRQ_TYPE_LEVEL_HIGH>; 197 198 enable-gpios = <&tlmm 12 GPIO_ACTIVE_HIGH>; 199 firmware-gpios = <&tlmm 21 GPIO_ACTIVE_HIGH>; 200 201 pinctrl-names = "default"; 202 pinctrl-0 = <&nfc_default>; 203 }; 204}; 205 206&blsp2_i2c3 { 207 status = "okay"; 208 label = "TYPEC_I2C"; 209 210 typec: tusb320l@47 { 211 compatible = "ti,tusb320l"; 212 reg = <0x47>; 213 interrupt-parent = <&tlmm>; 214 interrupts = <63 IRQ_TYPE_EDGE_RISING>; 215 }; 216}; 217 218&blsp2_i2c6 { 219 status = "okay"; 220 label = "MSM_TS_I2C"; 221}; 222 223&blsp1_uart2 { 224 status = "okay"; 225 label = "QCA_UART"; 226 227 bluetooth: qca6174a { 228 compatible = "qcom,qca6174-bt"; 229 230 enable-gpios = <&pm8994_gpios 19 GPIO_ACTIVE_HIGH>; 231 clocks = <&divclk4>; 232 }; 233}; 234 235&dsi0 { 236 status = "okay"; 237 238 vdd-supply = <&vreg_l2a_1p25>; 239 vddio-supply = <&vreg_l14a_1p8>; 240 241 pinctrl-names = "default", "sleep"; 242 pinctrl-0 = <&mdss_dsi_default &mdss_te_default>; 243 pinctrl-1 = <&mdss_dsi_sleep &mdss_te_sleep>; 244}; 245 246&dsi0_out { 247 status = "okay"; 248 249 data-lanes = <0 1 2 3>; 250}; 251 252&dsi0_phy { 253 status = "okay"; 254 255 vcca-supply = <&vreg_l28a_0p925>; 256}; 257 258&gpu { 259 status = "okay"; 260}; 261 262&mdss { 263 status = "okay"; 264}; 265 266&mmcc { 267 vdd-gfx-supply = <&vdd_gfx>; 268}; 269 270&mss_pil { 271 status = "okay"; 272 273 pll-supply = <&vreg_l12a_1p8>; 274}; 275 276&pcie0 { 277 status = "okay"; 278 279 /* Supplied by vdd_3v3, but choose wlan_en to drive enable pin high */ 280 vddpe-3v3-supply = <&wlan_en>; 281 vdda-supply = <&vreg_l28a_0p925>; 282 283 perst-gpios = <&tlmm 35 GPIO_ACTIVE_LOW>; 284 wake-gpios = <&tlmm 37 GPIO_ACTIVE_HIGH>; 285}; 286 287&pcie_phy { 288 status = "okay"; 289 290 vdda-phy-supply = <&vreg_l28a_0p925>; 291 vdda-pll-supply = <&vreg_l12a_1p8>; 292}; 293 294&pm8994_resin { 295 status = "okay"; 296 297 linux,code = <KEY_VOLUMEDOWN>; 298}; 299 300&slpi_pil { 301 status = "okay"; 302 303 px-supply = <&vreg_lvs2a_1p8>; 304}; 305 306&usb3 { 307 status = "okay"; 308 extcon = <&typec>; 309 310 qcom,select-utmi-as-pipe-clk; 311}; 312 313&usb3_dwc3 { 314 extcon = <&typec>; 315 316 /* usb3-phy is not used on this device */ 317 phys = <&hsusb_phy1>; 318 phy-names = "usb2-phy"; 319 320 maximum-speed = "high-speed"; 321 snps,is-utmi-l1-suspend; 322 snps,usb2-gadget-lpm-disable; 323 snps,hird-threshold = /bits/ 8 <0>; 324}; 325 326&hsusb_phy1 { 327 status = "okay"; 328 extcon = <&typec>; 329 330 vdda-pll-supply = <&vreg_l12a_1p8>; 331 vdda-phy-dpdm-supply = <&vreg_l24a_3p075>; 332}; 333 334&ufshc { 335 status = "okay"; 336 337 vcc-supply = <&vreg_l20a_2p95>; 338 vccq-supply = <&vreg_l25a_1p2>; 339 vccq2-supply = <&vreg_s4a_1p8>; 340 341 vcc-max-microamp = <600000>; 342 vccq-max-microamp = <450000>; 343 vccq2-max-microamp = <450000>; 344}; 345 346&ufsphy { 347 status = "okay"; 348 349 vdda-phy-supply = <&vreg_l28a_0p925>; 350 vdda-pll-supply = <&vreg_l12a_1p8>; 351 vddp-ref-clk-supply = <&vreg_l25a_1p2>; 352}; 353 354&venus { 355 status = "okay"; 356}; 357 358&wcd9335 { 359 clock-names = "mclk", "slimbus"; 360 clocks = <&divclk1_cdc>, 361 <&rpmcc RPM_SMD_BB_CLK1>; 362 363 vdd-buck-supply = <&vreg_s4a_1p8>; 364 vdd-buck-sido-supply = <&vreg_s4a_1p8>; 365 vdd-rx-supply = <&vreg_s4a_1p8>; 366 vdd-tx-supply = <&vreg_s4a_1p8>; 367 vdd-vbat-supply = <&vph_pwr>; 368 vdd-micbias-supply = <&vph_pwr_bbyp>; 369 vdd-io-supply = <&vreg_s4a_1p8>; 370}; 371 372&rpm_requests { 373 pm8994-regulators { 374 compatible = "qcom,rpm-pm8994-regulators"; 375 376 vdd_s1-supply = <&vph_pwr>; 377 vdd_s2-supply = <&vph_pwr>; 378 vdd_s3-supply = <&vph_pwr>; 379 vdd_s4-supply = <&vph_pwr>; 380 vdd_s5-supply = <&vph_pwr>; 381 vdd_s6-supply = <&vph_pwr>; 382 vdd_s7-supply = <&vph_pwr>; 383 vdd_s8-supply = <&vph_pwr>; 384 vdd_s9-supply = <&vph_pwr>; 385 vdd_s10-supply = <&vph_pwr>; 386 vdd_s11-supply = <&vph_pwr>; 387 vdd_s12-supply = <&vph_pwr>; 388 vdd_l1-supply = <&vreg_s1b_1p025>; 389 vdd_l2_l26_l28-supply = <&vreg_s3a_1p3>; 390 vdd_l3_l11-supply = <&vreg_s3a_1p3>; 391 vdd_l4_l27_l31-supply = <&vreg_s3a_1p3>; 392 vdd_l5_l7-supply = <&vreg_s5a_2p15>; 393 vdd_l6_l12_l32-supply = <&vreg_s5a_2p15>; 394 vdd_l8_l16_l30-supply = <&vph_pwr>; 395 vdd_l9_l10_l18_l22-supply = <&vph_pwr_bbyp>; 396 vdd_l13_l19_l23_l24-supply = <&vph_pwr_bbyp>; 397 vdd_l14_l15-supply = <&vreg_s5a_2p15>; 398 vdd_l17_l29-supply = <&vph_pwr_bbyp>; 399 vdd_l20_l21-supply = <&vph_pwr_bbyp>; 400 vdd_l25-supply = <&vreg_s3a_1p3>; 401 vdd_lvs1_2-supply = <&vreg_s4a_1p8>; 402 403 vreg_s3a_1p3: s3 { 404 regulator-name = "vreg_s3a_1p3"; 405 regulator-min-microvolt = <1300000>; 406 regulator-max-microvolt = <1300000>; 407 408 /* Required by QCA6174a - vdd-core */ 409 regulator-always-on; 410 }; 411 vreg_s4a_1p8: s4 { 412 regulator-name = "vreg_s4a_1p8"; 413 regulator-min-microvolt = <1800000>; 414 regulator-max-microvolt = <1800000>; 415 regulator-allow-set-load; 416 417 /* Required by QCA6174a - vddio */ 418 regulator-always-on; 419 }; 420 vreg_s5a_2p15: s5 { 421 regulator-name = "vreg_s5a_2p15"; 422 regulator-min-microvolt = <2150000>; 423 regulator-max-microvolt = <2150000>; 424 }; 425 vreg_s7a_0p8: s7 { 426 regulator-name = "vreg_s7a_0p8"; 427 regulator-min-microvolt = <800000>; 428 regulator-max-microvolt = <800000>; 429 }; 430 vreg_l1a_1p0: l1 { 431 regulator-name = "vreg_l1a_1p0"; 432 regulator-min-microvolt = <1000000>; 433 regulator-max-microvolt = <1000000>; 434 }; 435 vreg_l2a_1p25: l2 { 436 regulator-name = "vreg_l2a_1p25"; 437 regulator-min-microvolt = <1250000>; 438 regulator-max-microvolt = <1250000>; 439 }; 440 vreg_l4a_1p225: l4 { 441 regulator-name = "vreg_l4a_1p225"; 442 regulator-min-microvolt = <1225000>; 443 regulator-max-microvolt = <1225000>; 444 }; 445 vreg_l6a_1p8: l6 { 446 regulator-name = "vreg_l6a_1p8"; 447 regulator-min-microvolt = <1800000>; 448 regulator-max-microvolt = <1800000>; 449 }; 450 vreg_l8a_1p8: l8 { 451 regulator-name = "vreg_l8a_1p8"; 452 regulator-min-microvolt = <1800000>; 453 regulator-max-microvolt = <1800000>; 454 }; 455 vreg_l9a_1p8: l9 { 456 regulator-name = "vreg_l9a_1p8"; 457 regulator-min-microvolt = <1800000>; 458 regulator-max-microvolt = <1800000>; 459 }; 460 vreg_l10a_1p8: l10 { 461 regulator-name = "vreg_l10a_1p8"; 462 regulator-min-microvolt = <1800000>; 463 regulator-max-microvolt = <1800000>; 464 }; 465 vreg_l12a_1p8: l12 { 466 regulator-name = "vreg_l12a_1p8"; 467 regulator-min-microvolt = <1800000>; 468 regulator-max-microvolt = <1800000>; 469 regulator-allow-set-load; 470 }; 471 vreg_l13a_2p95: l13 { 472 regulator-name = "vreg_l13a_2p95"; 473 regulator-min-microvolt = <1800000>; 474 regulator-max-microvolt = <2950000>; 475 }; 476 vreg_l14a_1p8: l14 { 477 regulator-name = "vreg_l14a_1p8"; 478 regulator-min-microvolt = <1800000>; 479 regulator-max-microvolt = <1800000>; 480 }; 481 vreg_l15a_1p8: l15 { 482 regulator-name = "vreg_l15a_1p8"; 483 regulator-min-microvolt = <1800000>; 484 regulator-max-microvolt = <1800000>; 485 }; 486 vreg_l16a_2p7: l16 { 487 regulator-name = "vreg_l16a_2p7"; 488 regulator-min-microvolt = <2700000>; 489 regulator-max-microvolt = <2700000>; 490 }; 491 vreg_l19a_3p3: l19 { 492 regulator-name = "vreg_l19a_3p3"; 493 regulator-min-microvolt = <3000000>; 494 regulator-max-microvolt = <3000000>; 495 }; 496 vreg_l20a_2p95: l20 { 497 regulator-name = "vreg_l20a_2p95"; 498 regulator-min-microvolt = <2950000>; 499 regulator-max-microvolt = <2950000>; 500 regulator-allow-set-load; 501 }; 502 vreg_l21a_2p95: l21 { 503 regulator-name = "vreg_l21a_2p95"; 504 regulator-min-microvolt = <3300000>; 505 regulator-max-microvolt = <3300000>; 506 regulator-always-on; 507 }; 508 vreg_l23a_2p8: l23 { 509 regulator-name = "vreg_l23a_2p8"; 510 regulator-min-microvolt = <2800000>; 511 regulator-max-microvolt = <2800000>; 512 }; 513 vreg_l24a_3p075: l24 { 514 regulator-name = "vreg_l24a_3p075"; 515 regulator-min-microvolt = <3075000>; 516 regulator-max-microvolt = <3075000>; 517 }; 518 vreg_l25a_1p2: l25 { 519 regulator-name = "vreg_l25a_1p2"; 520 regulator-min-microvolt = <1200000>; 521 regulator-max-microvolt = <1200000>; 522 regulator-allow-set-load; 523 }; 524 vreg_l27a_1p2: l27 { 525 regulator-name = "vreg_l27a_1p2"; 526 regulator-min-microvolt = <1200000>; 527 regulator-max-microvolt = <1200000>; 528 }; 529 vreg_l28a_0p925: l28 { 530 regulator-name = "vreg_l28a_0p925"; 531 regulator-min-microvolt = <925000>; 532 regulator-max-microvolt = <925000>; 533 regulator-allow-set-load; 534 }; 535 vreg_l30a_1p8: l30 { 536 regulator-name = "vreg_l30a_1p8"; 537 regulator-min-microvolt = <1800000>; 538 regulator-max-microvolt = <1800000>; 539 540 /* Required by QCA6174a - vddio-xtal */ 541 regulator-always-on; 542 }; 543 vreg_l32a_1p8: l32 { 544 regulator-name = "vreg_l32a_1p8"; 545 regulator-min-microvolt = <1800000>; 546 regulator-max-microvolt = <1800000>; 547 }; 548 vreg_lvs1a_1p8: lvs1 { 549 regulator-min-microvolt = <1800000>; 550 regulator-max-microvolt = <1800000>; 551 }; 552 vreg_lvs2a_1p8: lvs2 { 553 regulator-min-microvolt = <1800000>; 554 regulator-max-microvolt = <1800000>; 555 }; 556 }; 557 558 pmi8994-regulators { 559 compatible = "qcom,rpm-pmi8994-regulators"; 560 561 vdd_s1-supply = <&vph_pwr>; 562 vdd_s2-supply = <&vph_pwr>; 563 vdd_s3-supply = <&vph_pwr>; 564 vdd_bst_byp-supply = <&vph_pwr>; 565 566 vreg_s1b_1p025: s1 { 567 regulator-name = "vreg_s1b_1p025"; 568 regulator-min-microvolt = <1025000>; 569 regulator-max-microvolt = <1025000>; 570 }; 571 572 vph_pwr_bbyp: boost-bypass { 573 regulator-name = "vph_pwr_bbyp"; 574 regulator-min-microvolt = <3150000>; 575 regulator-max-microvolt = <3600000>; 576 }; 577 }; 578}; 579 580&pm8994_spmi_regulators { 581 qcom,saw-reg = <&saw3>; 582 s8 { 583 qcom,saw-slave; 584 }; 585 s9 { 586 qcom,saw-slave; 587 }; 588 s10 { 589 qcom,saw-slave; 590 }; 591 vreg_apc_0p8: s11 { 592 qcom,saw-leader; 593 regulator-name = "vreg_apc_0p8"; 594 regulator-min-microvolt = <470000>; 595 regulator-max-microvolt = <1140000>; 596 regulator-max-step-microvolt = <150000>; 597 regulator-always-on; 598 }; 599}; 600 601&pmi8994_spmi_regulators { 602 vdd_gfx: s2 { 603 regulator-name = "vdd_gfx"; 604 regulator-min-microvolt = <400000>; 605 regulator-max-microvolt = <1015000>; 606 regulator-enable-ramp-delay = <500>; 607 }; 608}; 609 610&pm8994_gpios { 611 wlan_en_default: wlan-en-default { 612 pins = "gpio8"; 613 function = PMIC_GPIO_FUNC_NORMAL; 614 output-low; 615 qcom,drive-strength = <PMIC_GPIO_STRENGTH_LOW>; 616 power-source = <PM8994_GPIO_S4>; 617 bias-disable; 618 }; 619 620 rome_enable_default: rome-enable-default { 621 pins = "gpio9"; 622 function = PMIC_GPIO_FUNC_NORMAL; 623 output-high; 624 qcom,drive-strength = <PMIC_GPIO_STRENGTH_LOW>; 625 power-source = <PM8994_GPIO_VPH>; 626 }; 627 628 divclk1_default: divclk1_default { 629 pins = "gpio15"; 630 function = PMIC_GPIO_FUNC_FUNC1; 631 bias-disable; 632 power-source = <PM8994_GPIO_S4>; 633 qcom,drive-strength = <PMIC_GPIO_STRENGTH_LOW>; 634 }; 635 636 divclk4_pin_a: divclk4 { 637 pins = "gpio18"; 638 function = PMIC_GPIO_FUNC_FUNC2; 639 bias-disable; 640 power-source = <PM8994_GPIO_S4>; 641 }; 642}; 643 644&tlmm { 645 mdss_dsi_default: mdss_dsi_default { 646 pins = "gpio8"; 647 function = "gpio"; 648 drive-strength = <8>; 649 bias-disable; 650 }; 651 652 mdss_dsi_sleep: mdss_dsi_sleep { 653 pins = "gpio8"; 654 function = "gpio"; 655 drive-strength = <2>; 656 bias-pull-down; 657 }; 658 659 mdss_te_default: mdss_te_default { 660 pins = "gpio10"; 661 function = "mdp_vsync"; 662 drive-strength = <2>; 663 bias-pull-down; 664 }; 665 666 mdss_te_sleep: mdss_te_sleep { 667 pins = "gpio10"; 668 function = "mdp_vsync"; 669 drive-strength = <2>; 670 bias-pull-down; 671 }; 672 673 nfc_default: nfc_default { 674 pins = "gpio12", "gpio21"; 675 function = "gpio"; 676 drive-strength = <16>; 677 bias-pull-up; 678 }; 679}; 680