1// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) 2/* 3 * Copyright (c) 2023, Linaro Ltd 4 * 5 * Based on sm6115.dtsi and previous efforts by Shawn Guo & Loic Poulain. 6 */ 7 8#include <dt-bindings/clock/qcom,dispcc-qcm2290.h> 9#include <dt-bindings/clock/qcom,dsi-phy-28nm.h> 10#include <dt-bindings/clock/qcom,gcc-qcm2290.h> 11#include <dt-bindings/clock/qcom,qcm2290-gpucc.h> 12#include <dt-bindings/clock/qcom,rpmcc.h> 13#include <dt-bindings/dma/qcom-gpi.h> 14#include <dt-bindings/firmware/qcom,scm.h> 15#include <dt-bindings/gpio/gpio.h> 16#include <dt-bindings/interrupt-controller/arm-gic.h> 17#include <dt-bindings/interconnect/qcom,qcm2290.h> 18#include <dt-bindings/interconnect/qcom,rpm-icc.h> 19#include <dt-bindings/power/qcom-rpmpd.h> 20#include <dt-bindings/soc/qcom,apr.h> 21#include <dt-bindings/sound/qcom,q6asm.h> 22#include <dt-bindings/sound/qcom,q6dsp-lpass-ports.h> 23 24/ { 25 interrupt-parent = <&intc>; 26 27 #address-cells = <2>; 28 #size-cells = <2>; 29 30 chosen { }; 31 32 clocks { 33 xo_board: xo-board { 34 compatible = "fixed-clock"; 35 #clock-cells = <0>; 36 }; 37 38 sleep_clk: sleep-clk { 39 compatible = "fixed-clock"; 40 clock-frequency = <32764>; 41 #clock-cells = <0>; 42 }; 43 }; 44 45 cpus { 46 #address-cells = <2>; 47 #size-cells = <0>; 48 49 cpu0: cpu@0 { 50 device_type = "cpu"; 51 compatible = "arm,cortex-a53"; 52 reg = <0x0 0x0>; 53 clocks = <&cpufreq_hw 0>; 54 capacity-dmips-mhz = <1024>; 55 dynamic-power-coefficient = <100>; 56 enable-method = "psci"; 57 next-level-cache = <&l2_0>; 58 qcom,freq-domain = <&cpufreq_hw 0>; 59 power-domains = <&cpu_pd0>; 60 power-domain-names = "psci"; 61 l2_0: l2-cache { 62 compatible = "cache"; 63 cache-level = <2>; 64 cache-unified; 65 }; 66 }; 67 68 cpu1: cpu@1 { 69 device_type = "cpu"; 70 compatible = "arm,cortex-a53"; 71 reg = <0x0 0x1>; 72 clocks = <&cpufreq_hw 0>; 73 capacity-dmips-mhz = <1024>; 74 dynamic-power-coefficient = <100>; 75 enable-method = "psci"; 76 next-level-cache = <&l2_0>; 77 qcom,freq-domain = <&cpufreq_hw 0>; 78 power-domains = <&cpu_pd1>; 79 power-domain-names = "psci"; 80 }; 81 82 cpu2: cpu@2 { 83 device_type = "cpu"; 84 compatible = "arm,cortex-a53"; 85 reg = <0x0 0x2>; 86 clocks = <&cpufreq_hw 0>; 87 capacity-dmips-mhz = <1024>; 88 dynamic-power-coefficient = <100>; 89 enable-method = "psci"; 90 next-level-cache = <&l2_0>; 91 qcom,freq-domain = <&cpufreq_hw 0>; 92 power-domains = <&cpu_pd2>; 93 power-domain-names = "psci"; 94 }; 95 96 cpu3: cpu@3 { 97 device_type = "cpu"; 98 compatible = "arm,cortex-a53"; 99 reg = <0x0 0x3>; 100 clocks = <&cpufreq_hw 0>; 101 capacity-dmips-mhz = <1024>; 102 dynamic-power-coefficient = <100>; 103 enable-method = "psci"; 104 next-level-cache = <&l2_0>; 105 qcom,freq-domain = <&cpufreq_hw 0>; 106 power-domains = <&cpu_pd3>; 107 power-domain-names = "psci"; 108 }; 109 110 cpu-map { 111 cluster0 { 112 core0 { 113 cpu = <&cpu0>; 114 }; 115 116 core1 { 117 cpu = <&cpu1>; 118 }; 119 120 core2 { 121 cpu = <&cpu2>; 122 }; 123 124 core3 { 125 cpu = <&cpu3>; 126 }; 127 }; 128 }; 129 130 domain-idle-states { 131 cluster_sleep: cluster-sleep-0 { 132 compatible = "domain-idle-state"; 133 arm,psci-suspend-param = <0x41000043>; 134 entry-latency-us = <800>; 135 exit-latency-us = <2118>; 136 min-residency-us = <7376>; 137 }; 138 }; 139 140 idle-states { 141 entry-method = "psci"; 142 143 cpu_sleep: cpu-sleep-0 { 144 compatible = "arm,idle-state"; 145 idle-state-name = "power-collapse"; 146 arm,psci-suspend-param = <0x40000003>; 147 entry-latency-us = <290>; 148 exit-latency-us = <376>; 149 min-residency-us = <1182>; 150 local-timer-stop; 151 }; 152 }; 153 }; 154 155 firmware { 156 scm: scm { 157 compatible = "qcom,scm-qcm2290", "qcom,scm"; 158 clocks = <&rpmcc RPM_SMD_CE1_CLK>; 159 clock-names = "core"; 160 qcom,dload-mode = <&tcsr_regs 0x13000>; 161 #reset-cells = <1>; 162 interconnects = <&system_noc MASTER_CRYPTO_CORE0 RPM_ALWAYS_TAG 163 &bimc SLAVE_EBI1 RPM_ALWAYS_TAG>; 164 }; 165 }; 166 167 memory@40000000 { 168 device_type = "memory"; 169 /* We expect the bootloader to fill in the size */ 170 reg = <0 0x40000000 0 0>; 171 }; 172 173 pmu { 174 compatible = "arm,cortex-a53-pmu"; 175 interrupts = <GIC_PPI 6 IRQ_TYPE_LEVEL_HIGH>; 176 }; 177 178 psci { 179 compatible = "arm,psci-1.0"; 180 method = "smc"; 181 182 cpu_pd0: power-domain-cpu0 { 183 #power-domain-cells = <0>; 184 power-domains = <&cluster_pd>; 185 domain-idle-states = <&cpu_sleep>; 186 }; 187 188 cpu_pd1: power-domain-cpu1 { 189 #power-domain-cells = <0>; 190 power-domains = <&cluster_pd>; 191 domain-idle-states = <&cpu_sleep>; 192 }; 193 194 cpu_pd2: power-domain-cpu2 { 195 #power-domain-cells = <0>; 196 power-domains = <&cluster_pd>; 197 domain-idle-states = <&cpu_sleep>; 198 }; 199 200 cpu_pd3: power-domain-cpu3 { 201 #power-domain-cells = <0>; 202 power-domains = <&cluster_pd>; 203 domain-idle-states = <&cpu_sleep>; 204 }; 205 206 cluster_pd: power-domain-cpu-cluster { 207 #power-domain-cells = <0>; 208 power-domains = <&mpm>; 209 domain-idle-states = <&cluster_sleep>; 210 }; 211 }; 212 213 rpm: remoteproc { 214 compatible = "qcom,qcm2290-rpm-proc", "qcom,rpm-proc"; 215 216 glink-edge { 217 compatible = "qcom,glink-rpm"; 218 interrupts = <GIC_SPI 194 IRQ_TYPE_EDGE_RISING>; 219 qcom,rpm-msg-ram = <&rpm_msg_ram>; 220 mboxes = <&apcs_glb 0>; 221 222 rpm_requests: rpm-requests { 223 compatible = "qcom,rpm-qcm2290", "qcom,glink-smd-rpm"; 224 qcom,glink-channels = "rpm_requests"; 225 226 rpmcc: clock-controller { 227 compatible = "qcom,rpmcc-qcm2290", "qcom,rpmcc"; 228 clocks = <&xo_board>; 229 clock-names = "xo"; 230 #clock-cells = <1>; 231 }; 232 233 rpmpd: power-controller { 234 compatible = "qcom,qcm2290-rpmpd"; 235 #power-domain-cells = <1>; 236 operating-points-v2 = <&rpmpd_opp_table>; 237 238 rpmpd_opp_table: opp-table { 239 compatible = "operating-points-v2"; 240 241 rpmpd_opp_min_svs: opp1 { 242 opp-level = <RPM_SMD_LEVEL_MIN_SVS>; 243 }; 244 245 rpmpd_opp_low_svs: opp2 { 246 opp-level = <RPM_SMD_LEVEL_LOW_SVS>; 247 }; 248 249 rpmpd_opp_svs: opp3 { 250 opp-level = <RPM_SMD_LEVEL_SVS>; 251 }; 252 253 rpmpd_opp_svs_plus: opp4 { 254 opp-level = <RPM_SMD_LEVEL_SVS_PLUS>; 255 }; 256 257 rpmpd_opp_nom: opp5 { 258 opp-level = <RPM_SMD_LEVEL_NOM>; 259 }; 260 261 rpmpd_opp_nom_plus: opp6 { 262 opp-level = <RPM_SMD_LEVEL_NOM_PLUS>; 263 }; 264 265 rpmpd_opp_turbo: opp7 { 266 opp-level = <RPM_SMD_LEVEL_TURBO>; 267 }; 268 269 rpmpd_opp_turbo_plus: opp8 { 270 opp-level = <RPM_SMD_LEVEL_TURBO_NO_CPR>; 271 }; 272 }; 273 }; 274 }; 275 }; 276 277 mpm: interrupt-controller { 278 compatible = "qcom,mpm"; 279 qcom,rpm-msg-ram = <&apss_mpm>; 280 interrupts = <GIC_SPI 197 IRQ_TYPE_EDGE_RISING>; 281 mboxes = <&apcs_glb 1>; 282 interrupt-controller; 283 #interrupt-cells = <2>; 284 #power-domain-cells = <0>; 285 interrupt-parent = <&intc>; 286 qcom,mpm-pin-count = <96>; 287 qcom,mpm-pin-map = <2 275>, /* TSENS0 uplow */ 288 <5 296>, /* Soundwire master_irq */ 289 <12 422>, /* DWC3 ss_phy_irq */ 290 <24 79>, /* Soundwire wake_irq */ 291 <86 183>, /* MPM wake, SPMI */ 292 <90 260>; /* QUSB2_PHY DP+DM */ 293 }; 294 }; 295 296 reserved_memory: reserved-memory { 297 #address-cells = <2>; 298 #size-cells = <2>; 299 ranges; 300 301 hyp_mem: hyp@45700000 { 302 reg = <0x0 0x45700000 0x0 0x600000>; 303 no-map; 304 }; 305 306 xbl_aop_mem: xbl-aop@45e00000 { 307 reg = <0x0 0x45e00000 0x0 0x140000>; 308 no-map; 309 }; 310 311 sec_apps_mem: sec-apps@45fff000 { 312 reg = <0x0 0x45fff000 0x0 0x1000>; 313 no-map; 314 }; 315 316 smem_mem: smem@46000000 { 317 compatible = "qcom,smem"; 318 reg = <0x0 0x46000000 0x0 0x200000>; 319 no-map; 320 321 hwlocks = <&tcsr_mutex 3>; 322 qcom,rpm-msg-ram = <&rpm_msg_ram>; 323 }; 324 325 pil_modem_mem: modem@4ab00000 { 326 reg = <0x0 0x4ab00000 0x0 0x6900000>; 327 no-map; 328 }; 329 330 pil_video_mem: video@51400000 { 331 reg = <0x0 0x51400000 0x0 0x500000>; 332 no-map; 333 }; 334 335 wlan_msa_mem: wlan-msa@51900000 { 336 reg = <0x0 0x51900000 0x0 0x100000>; 337 no-map; 338 }; 339 340 pil_adsp_mem: adsp@51a00000 { 341 reg = <0x0 0x51a00000 0x0 0x1c00000>; 342 no-map; 343 }; 344 345 pil_ipa_fw_mem: ipa-fw@53600000 { 346 reg = <0x0 0x53600000 0x0 0x10000>; 347 no-map; 348 }; 349 350 pil_ipa_gsi_mem: ipa-gsi@53610000 { 351 reg = <0x0 0x53610000 0x0 0x5000>; 352 no-map; 353 }; 354 355 pil_gpu_mem: zap@53615000 { 356 compatible = "shared-dma-pool"; 357 reg = <0x0 0x53615000 0x0 0x2000>; 358 no-map; 359 }; 360 361 cont_splash_memory: framebuffer@5c000000 { 362 reg = <0x0 0x5c000000 0x0 0x00f00000>; 363 no-map; 364 }; 365 366 dfps_data_memory: dpfs-data@5cf00000 { 367 reg = <0x0 0x5cf00000 0x0 0x0100000>; 368 no-map; 369 }; 370 371 removed_mem: reserved@60000000 { 372 reg = <0x0 0x60000000 0x0 0x3900000>; 373 no-map; 374 }; 375 376 rmtfs_mem: memory@89b01000 { 377 compatible = "qcom,rmtfs-mem"; 378 reg = <0x0 0x89b01000 0x0 0x200000>; 379 no-map; 380 381 qcom,client-id = <1>; 382 qcom,vmid = <QCOM_SCM_VMID_MSS_MSA QCOM_SCM_VMID_NAV>; 383 }; 384 }; 385 386 smp2p-adsp { 387 compatible = "qcom,smp2p"; 388 qcom,smem = <443>, <429>; 389 390 interrupts = <GIC_SPI 279 IRQ_TYPE_EDGE_RISING>; 391 392 mboxes = <&apcs_glb 10>; 393 394 qcom,local-pid = <0>; 395 qcom,remote-pid = <2>; 396 397 adsp_smp2p_out: master-kernel { 398 qcom,entry-name = "master-kernel"; 399 #qcom,smem-state-cells = <1>; 400 }; 401 402 adsp_smp2p_in: slave-kernel { 403 qcom,entry-name = "slave-kernel"; 404 interrupt-controller; 405 #interrupt-cells = <2>; 406 }; 407 }; 408 409 smp2p-mpss { 410 compatible = "qcom,smp2p"; 411 qcom,smem = <435>, <428>; 412 413 interrupts = <GIC_SPI 70 IRQ_TYPE_EDGE_RISING>; 414 415 mboxes = <&apcs_glb 14>; 416 417 qcom,local-pid = <0>; 418 qcom,remote-pid = <1>; 419 420 modem_smp2p_out: master-kernel { 421 qcom,entry-name = "master-kernel"; 422 #qcom,smem-state-cells = <1>; 423 }; 424 425 modem_smp2p_in: slave-kernel { 426 qcom,entry-name = "slave-kernel"; 427 interrupt-controller; 428 #interrupt-cells = <2>; 429 }; 430 431 wlan_smp2p_in: wlan-wpss-to-ap { 432 qcom,entry-name = "wlan"; 433 interrupt-controller; 434 #interrupt-cells = <2>; 435 }; 436 }; 437 438 soc: soc@0 { 439 compatible = "simple-bus"; 440 #address-cells = <2>; 441 #size-cells = <2>; 442 ranges = <0 0 0 0 0x10 0>; 443 dma-ranges = <0 0 0 0 0x10 0>; 444 445 tcsr_mutex: hwlock@340000 { 446 compatible = "qcom,tcsr-mutex"; 447 reg = <0x0 0x00340000 0x0 0x20000>; 448 #hwlock-cells = <1>; 449 }; 450 451 tcsr_regs: syscon@3c0000 { 452 compatible = "qcom,qcm2290-tcsr", "syscon"; 453 reg = <0x0 0x003c0000 0x0 0x40000>; 454 }; 455 456 tlmm: pinctrl@500000 { 457 compatible = "qcom,qcm2290-tlmm"; 458 reg = <0x0 0x00500000 0x0 0x300000>; 459 interrupts = <GIC_SPI 227 IRQ_TYPE_LEVEL_HIGH>; 460 gpio-controller; 461 gpio-ranges = <&tlmm 0 0 127>; 462 wakeup-parent = <&mpm>; 463 #gpio-cells = <2>; 464 interrupt-controller; 465 #interrupt-cells = <2>; 466 467 qup_i2c0_default: qup-i2c0-default-state { 468 pins = "gpio0", "gpio1"; 469 function = "qup0"; 470 drive-strength = <2>; 471 bias-pull-up; 472 }; 473 474 qup_i2c1_default: qup-i2c1-default-state { 475 pins = "gpio4", "gpio5"; 476 function = "qup1"; 477 drive-strength = <2>; 478 bias-pull-up; 479 }; 480 481 qup_i2c2_default: qup-i2c2-default-state { 482 pins = "gpio6", "gpio7"; 483 function = "qup2"; 484 drive-strength = <2>; 485 bias-pull-up; 486 }; 487 488 qup_i2c3_default: qup-i2c3-default-state { 489 pins = "gpio8", "gpio9"; 490 function = "qup3"; 491 drive-strength = <2>; 492 bias-pull-up; 493 }; 494 495 qup_i2c4_default: qup-i2c4-default-state { 496 pins = "gpio12", "gpio13"; 497 function = "qup4"; 498 drive-strength = <2>; 499 bias-pull-up; 500 }; 501 502 qup_i2c5_default: qup-i2c5-default-state { 503 pins = "gpio14", "gpio15"; 504 function = "qup5"; 505 drive-strength = <2>; 506 bias-pull-up; 507 }; 508 509 qup_spi0_default: qup-spi0-default-state { 510 pins = "gpio0", "gpio1","gpio2", "gpio3"; 511 function = "qup0"; 512 drive-strength = <2>; 513 bias-pull-up; 514 }; 515 516 qup_spi1_default: qup-spi1-default-state { 517 pins = "gpio4", "gpio5", "gpio69", "gpio70"; 518 function = "qup1"; 519 drive-strength = <2>; 520 bias-pull-up; 521 }; 522 523 qup_spi2_default: qup-spi2-default-state { 524 pins = "gpio6", "gpio7", "gpio71", "gpio80"; 525 function = "qup2"; 526 drive-strength = <2>; 527 bias-pull-up; 528 }; 529 530 qup_spi3_default: qup-spi3-default-state { 531 pins = "gpio8", "gpio9", "gpio10", "gpio11"; 532 function = "qup3"; 533 drive-strength = <2>; 534 bias-pull-up; 535 }; 536 537 qup_spi4_default: qup-spi4-default-state { 538 pins = "gpio12", "gpio13", "gpio96", "gpio97"; 539 function = "qup4"; 540 drive-strength = <2>; 541 bias-pull-up; 542 }; 543 544 qup_spi5_default: qup-spi5-default-state { 545 pins = "gpio14", "gpio15", "gpio16", "gpio17"; 546 function = "qup5"; 547 drive-strength = <2>; 548 bias-pull-up; 549 }; 550 551 qup_uart0_default: qup-uart0-default-state { 552 pins = "gpio0", "gpio1", "gpio2", "gpio3"; 553 function = "qup0"; 554 drive-strength = <2>; 555 bias-disable; 556 }; 557 558 qup_uart1_default: qup-uart1-default-state { 559 pins = "gpio4", "gpio5", "gpio69", "gpio70"; 560 function = "qup1"; 561 drive-strength = <2>; 562 bias-disable; 563 }; 564 565 qup_uart3_default: qup-uart3-default-state { 566 pins = "gpio8", "gpio9", "gpio10", "gpio11"; 567 function = "qup3"; 568 drive-strength = <2>; 569 bias-disable; 570 }; 571 572 qup_uart4_default: qup-uart4-default-state { 573 pins = "gpio12", "gpio13"; 574 function = "qup4"; 575 drive-strength = <2>; 576 bias-disable; 577 }; 578 579 qup_uart5_default: qup-uart5-default-state { 580 pins = "gpio14", "gpio15", "gpio16", "gpio17"; 581 function = "qup5"; 582 drive-strength = <2>; 583 bias-disable; 584 }; 585 586 cci0_default: cci0-default-state { 587 pins = "gpio22", "gpio23"; 588 function = "cci_i2c"; 589 drive-strength = <2>; 590 bias-disable; 591 }; 592 593 cci1_default: cci1-default-state { 594 pins = "gpio29", "gpio30"; 595 function = "cci_i2c"; 596 drive-strength = <2>; 597 bias-disable; 598 }; 599 600 sdc1_state_on: sdc1-on-state { 601 clk-pins { 602 pins = "sdc1_clk"; 603 drive-strength = <16>; 604 bias-disable; 605 }; 606 607 cmd-pins { 608 pins = "sdc1_cmd"; 609 drive-strength = <10>; 610 bias-pull-up; 611 }; 612 613 data-pins { 614 pins = "sdc1_data"; 615 drive-strength = <10>; 616 bias-pull-up; 617 }; 618 619 rclk-pins { 620 pins = "sdc1_rclk"; 621 bias-pull-down; 622 }; 623 }; 624 625 sdc1_state_off: sdc1-off-state { 626 clk-pins { 627 pins = "sdc1_clk"; 628 drive-strength = <2>; 629 bias-disable; 630 }; 631 632 cmd-pins { 633 pins = "sdc1_cmd"; 634 drive-strength = <2>; 635 bias-pull-up; 636 }; 637 638 data-pins { 639 pins = "sdc1_data"; 640 drive-strength = <2>; 641 bias-pull-up; 642 }; 643 644 rclk-pins { 645 pins = "sdc1_rclk"; 646 bias-pull-down; 647 }; 648 }; 649 650 sdc2_state_on: sdc2-on-state { 651 clk-pins { 652 pins = "sdc2_clk"; 653 drive-strength = <16>; 654 bias-disable; 655 }; 656 657 cmd-pins { 658 pins = "sdc2_cmd"; 659 drive-strength = <10>; 660 bias-pull-up; 661 }; 662 663 data-pins { 664 pins = "sdc2_data"; 665 drive-strength = <10>; 666 bias-pull-up; 667 }; 668 }; 669 670 sdc2_state_off: sdc2-off-state { 671 clk-pins { 672 pins = "sdc2_clk"; 673 drive-strength = <2>; 674 bias-disable; 675 }; 676 677 cmd-pins { 678 pins = "sdc2_cmd"; 679 drive-strength = <2>; 680 bias-pull-up; 681 }; 682 683 data-pins { 684 pins = "sdc2_data"; 685 drive-strength = <2>; 686 bias-pull-up; 687 }; 688 }; 689 }; 690 691 lpass_tlmm: pinctrl@a7c0000 { 692 compatible = "qcom,qcm2290-lpass-lpi-pinctrl", 693 "qcom,sm6115-lpass-lpi-pinctrl"; 694 reg = <0x0 0x0a7c0000 0x0 0x20000>, 695 <0x0 0x0a950000 0x0 0x10000>; 696 697 clocks = <&q6afecc LPASS_HW_DCODEC_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>; 698 clock-names = "audio"; 699 700 gpio-controller; 701 #gpio-cells = <2>; 702 gpio-ranges = <&lpass_tlmm 0 0 19>; 703 704 lpi_i2s2_active: lpi-i2s2-active-state { 705 sck-pins { 706 pins = "gpio10"; 707 function = "i2s2_clk"; 708 bias-disable; 709 drive-strength = <8>; 710 }; 711 712 ws-pins { 713 pins = "gpio11"; 714 function = "i2s2_ws"; 715 bias-disable; 716 drive-strength = <8>; 717 }; 718 719 data-pins { 720 pins = "gpio12"; 721 function = "i2s2_data"; 722 bias-disable; 723 drive-strength = <8>; 724 }; 725 }; 726 }; 727 728 gcc: clock-controller@1400000 { 729 compatible = "qcom,gcc-qcm2290"; 730 reg = <0x0 0x01400000 0x0 0x1f0000>; 731 clocks = <&rpmcc RPM_SMD_XO_CLK_SRC>, <&sleep_clk>; 732 clock-names = "bi_tcxo", "sleep_clk"; 733 #clock-cells = <1>; 734 #reset-cells = <1>; 735 #power-domain-cells = <1>; 736 }; 737 738 usb_hsphy: phy@1613000 { 739 compatible = "qcom,qcm2290-qusb2-phy"; 740 reg = <0x0 0x01613000 0x0 0x180>; 741 742 clocks = <&gcc GCC_AHB2PHY_USB_CLK>, 743 <&rpmcc RPM_SMD_XO_CLK_SRC>; 744 clock-names = "cfg_ahb", "ref"; 745 746 resets = <&gcc GCC_QUSB2PHY_PRIM_BCR>; 747 nvmem-cells = <&qusb2_hstx_trim>; 748 #phy-cells = <0>; 749 750 status = "disabled"; 751 }; 752 753 usb_qmpphy: phy@1615000 { 754 compatible = "qcom,qcm2290-qmp-usb3-phy"; 755 reg = <0x0 0x01615000 0x0 0x1000>; 756 757 clocks = <&gcc GCC_AHB2PHY_USB_CLK>, 758 <&gcc GCC_USB3_PRIM_CLKREF_CLK>, 759 <&gcc GCC_USB3_PRIM_PHY_COM_AUX_CLK>, 760 <&gcc GCC_USB3_PRIM_PHY_PIPE_CLK>; 761 clock-names = "cfg_ahb", 762 "ref", 763 "com_aux", 764 "pipe"; 765 766 resets = <&gcc GCC_USB3_PHY_PRIM_SP0_BCR>, 767 <&gcc GCC_USB3PHY_PHY_PRIM_SP0_BCR>; 768 reset-names = "phy", 769 "phy_phy"; 770 771 #clock-cells = <0>; 772 clock-output-names = "usb3_phy_pipe_clk_src"; 773 774 #phy-cells = <0>; 775 orientation-switch; 776 777 qcom,tcsr-reg = <&tcsr_regs 0xb244>; 778 779 status = "disabled"; 780 781 ports { 782 #address-cells = <1>; 783 #size-cells = <0>; 784 785 port@0 { 786 reg = <0>; 787 788 usb_qmpphy_out: endpoint { 789 }; 790 }; 791 792 port@1 { 793 reg = <1>; 794 795 usb_qmpphy_usb_ss_in: endpoint { 796 remote-endpoint = <&usb_dwc3_ss>; 797 }; 798 }; 799 }; 800 }; 801 802 system_noc: interconnect@1880000 { 803 compatible = "qcom,qcm2290-snoc"; 804 reg = <0x0 0x01880000 0x0 0x60200>; 805 #interconnect-cells = <2>; 806 807 qup_virt: interconnect-qup { 808 compatible = "qcom,qcm2290-qup-virt"; 809 #interconnect-cells = <2>; 810 }; 811 812 mmnrt_virt: interconnect-mmnrt { 813 compatible = "qcom,qcm2290-mmnrt-virt"; 814 #interconnect-cells = <2>; 815 }; 816 817 mmrt_virt: interconnect-mmrt { 818 compatible = "qcom,qcm2290-mmrt-virt"; 819 #interconnect-cells = <2>; 820 }; 821 }; 822 823 config_noc: interconnect@1900000 { 824 compatible = "qcom,qcm2290-cnoc"; 825 reg = <0x0 0x01900000 0x0 0x8200>; 826 #interconnect-cells = <2>; 827 }; 828 829 cryptobam: dma-controller@1b04000 { 830 compatible = "qcom,bam-v1.7.0"; 831 reg = <0x0 0x01b04000 0x0 0x24000>; 832 interrupts = <GIC_SPI 247 IRQ_TYPE_LEVEL_HIGH>; 833 clocks = <&rpmcc RPM_SMD_CE1_CLK>; 834 clock-names = "bam_clk"; 835 #dma-cells = <1>; 836 qcom,ee = <0>; 837 qcom,controlled-remotely; 838 iommus = <&apps_smmu 0x0084 0x11>, 839 <&apps_smmu 0x0086 0x11>; 840 }; 841 842 crypto: crypto@1b3a000 { 843 compatible = "qcom,qcm2290-qce", "qcom,ipq4019-qce", "qcom,qce"; 844 reg = <0x0 0x01b3a000 0x0 0x6000>; 845 clocks = <&rpmcc RPM_SMD_CE1_CLK>; 846 clock-names = "core"; 847 dmas = <&cryptobam 6>, <&cryptobam 7>; 848 dma-names = "rx", "tx"; 849 iommus = <&apps_smmu 0x0084 0x11>, 850 <&apps_smmu 0x0086 0x11>; 851 }; 852 853 qfprom@1b44000 { 854 compatible = "qcom,qcm2290-qfprom", "qcom,qfprom"; 855 reg = <0x0 0x01b44000 0x0 0x3000>; 856 #address-cells = <1>; 857 #size-cells = <1>; 858 859 qusb2_hstx_trim: hstx-trim@25b { 860 reg = <0x25b 0x1>; 861 bits = <1 4>; 862 }; 863 864 gpu_speed_bin: gpu-speed-bin@2006 { 865 reg = <0x2006 0x2>; 866 bits = <5 8>; 867 }; 868 }; 869 870 pmu@1b8e300 { 871 compatible = "qcom,qcm2290-cpu-bwmon", "qcom,sdm845-bwmon"; 872 reg = <0x0 0x01b8e300 0x0 0x600>; 873 interrupts = <GIC_SPI 421 IRQ_TYPE_LEVEL_HIGH>; 874 875 operating-points-v2 = <&cpu_bwmon_opp_table>; 876 interconnects = <&bimc MASTER_APPSS_PROC RPM_ACTIVE_TAG 877 &bimc SLAVE_EBI1 RPM_ACTIVE_TAG>; 878 879 cpu_bwmon_opp_table: opp-table { 880 compatible = "operating-points-v2"; 881 882 opp-0 { 883 opp-peak-kBps = <(200 * 4 * 1000)>; 884 }; 885 886 opp-1 { 887 opp-peak-kBps = <(300 * 4 * 1000)>; 888 }; 889 890 opp-2 { 891 opp-peak-kBps = <(451 * 4 * 1000)>; 892 }; 893 894 opp-3 { 895 opp-peak-kBps = <(547 * 4 * 1000)>; 896 }; 897 898 opp-4 { 899 opp-peak-kBps = <(681 * 4 * 1000)>; 900 }; 901 902 opp-5 { 903 opp-peak-kBps = <(768 * 4 * 1000)>; 904 }; 905 906 opp-6 { 907 opp-peak-kBps = <(1017 * 4 * 1000)>; 908 }; 909 910 opp-7 { 911 opp-peak-kBps = <(1353 * 4 * 1000)>; 912 }; 913 914 opp-8 { 915 opp-peak-kBps = <(1555 * 4 * 1000)>; 916 }; 917 918 opp-9 { 919 opp-peak-kBps = <(1804 * 4 * 1000)>; 920 }; 921 }; 922 }; 923 924 spmi_bus: spmi@1c40000 { 925 compatible = "qcom,spmi-pmic-arb"; 926 reg = <0x0 0x01c40000 0x0 0x1100>, 927 <0x0 0x01e00000 0x0 0x2000000>, 928 <0x0 0x03e00000 0x0 0x100000>, 929 <0x0 0x03f00000 0x0 0xa0000>, 930 <0x0 0x01c0a000 0x0 0x26000>; 931 reg-names = "core", 932 "chnls", 933 "obsrvr", 934 "intr", 935 "cnfg"; 936 interrupts-extended = <&mpm 86 IRQ_TYPE_LEVEL_HIGH>; 937 interrupt-names = "periph_irq"; 938 qcom,ee = <0>; 939 qcom,channel = <0>; 940 #address-cells = <2>; 941 #size-cells = <0>; 942 interrupt-controller; 943 #interrupt-cells = <4>; 944 }; 945 946 tsens0: thermal-sensor@4411000 { 947 compatible = "qcom,qcm2290-tsens", "qcom,tsens-v2"; 948 reg = <0x0 0x04411000 0x0 0x1ff>, 949 <0x0 0x04410000 0x0 0x8>; 950 #qcom,sensors = <10>; 951 interrupts-extended = <&mpm 2 IRQ_TYPE_LEVEL_HIGH>, 952 <&intc GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>; 953 interrupt-names = "uplow", "critical"; 954 #thermal-sensor-cells = <1>; 955 }; 956 957 rng: rng@4453000 { 958 compatible = "qcom,prng-ee"; 959 reg = <0x0 0x04453000 0x0 0x1000>; 960 clocks = <&rpmcc RPM_SMD_HWKM_CLK>; 961 clock-names = "core"; 962 }; 963 964 bimc: interconnect@4480000 { 965 compatible = "qcom,qcm2290-bimc"; 966 reg = <0x0 0x04480000 0x0 0x80000>; 967 #interconnect-cells = <2>; 968 }; 969 970 rpm_msg_ram: sram@45f0000 { 971 compatible = "qcom,rpm-msg-ram", "mmio-sram"; 972 reg = <0x0 0x045f0000 0x0 0x7000>; 973 #address-cells = <1>; 974 #size-cells = <1>; 975 ranges = <0 0x0 0x045f0000 0x7000>; 976 977 apss_mpm: sram@1b8 { 978 reg = <0x1b8 0x48>; 979 }; 980 }; 981 982 sram@4690000 { 983 compatible = "qcom,rpm-stats"; 984 reg = <0x0 0x04690000 0x0 0x10000>; 985 }; 986 987 sdhc_1: mmc@4744000 { 988 compatible = "qcom,qcm2290-sdhci", "qcom,sdhci-msm-v5"; 989 reg = <0x0 0x04744000 0x0 0x1000>, 990 <0x0 0x04745000 0x0 0x1000>, 991 <0x0 0x04748000 0x0 0x8000>; 992 reg-names = "hc", 993 "cqhci", 994 "ice"; 995 996 interrupts = <GIC_SPI 348 IRQ_TYPE_LEVEL_HIGH>, 997 <GIC_SPI 352 IRQ_TYPE_LEVEL_HIGH>; 998 interrupt-names = "hc_irq", "pwr_irq"; 999 1000 clocks = <&gcc GCC_SDCC1_AHB_CLK>, 1001 <&gcc GCC_SDCC1_APPS_CLK>, 1002 <&rpmcc RPM_SMD_XO_CLK_SRC>, 1003 <&gcc GCC_SDCC1_ICE_CORE_CLK>; 1004 clock-names = "iface", 1005 "core", 1006 "xo", 1007 "ice"; 1008 1009 resets = <&gcc GCC_SDCC1_BCR>; 1010 1011 power-domains = <&rpmpd QCM2290_VDDCX>; 1012 operating-points-v2 = <&sdhc1_opp_table>; 1013 iommus = <&apps_smmu 0xc0 0x0>; 1014 interconnects = <&system_noc MASTER_SDCC_1 RPM_ALWAYS_TAG 1015 &bimc SLAVE_EBI1 RPM_ALWAYS_TAG>, 1016 <&bimc MASTER_APPSS_PROC RPM_ALWAYS_TAG 1017 &config_noc SLAVE_SDCC_1 RPM_ALWAYS_TAG>; 1018 interconnect-names = "sdhc-ddr", 1019 "cpu-sdhc"; 1020 1021 qcom,dll-config = <0x000f642c>; 1022 qcom,ddr-config = <0x80040868>; 1023 bus-width = <8>; 1024 1025 mmc-ddr-1_8v; 1026 mmc-hs200-1_8v; 1027 mmc-hs400-1_8v; 1028 mmc-hs400-enhanced-strobe; 1029 1030 status = "disabled"; 1031 1032 sdhc1_opp_table: opp-table { 1033 compatible = "operating-points-v2"; 1034 1035 opp-100000000 { 1036 opp-hz = /bits/ 64 <100000000>; 1037 required-opps = <&rpmpd_opp_low_svs>; 1038 opp-peak-kBps = <250000 133320>; 1039 opp-avg-kBps = <102400 65000>; 1040 }; 1041 1042 opp-192000000 { 1043 opp-hz = /bits/ 64 <192000000>; 1044 required-opps = <&rpmpd_opp_low_svs>; 1045 opp-peak-kBps = <800000 300000>; 1046 opp-avg-kBps = <204800 200000>; 1047 }; 1048 1049 opp-384000000 { 1050 opp-hz = /bits/ 64 <384000000>; 1051 required-opps = <&rpmpd_opp_svs_plus>; 1052 opp-peak-kBps = <800000 300000>; 1053 opp-avg-kBps = <204800 200000>; 1054 }; 1055 }; 1056 }; 1057 1058 sdhc_2: mmc@4784000 { 1059 compatible = "qcom,qcm2290-sdhci", "qcom,sdhci-msm-v5"; 1060 reg = <0x0 0x04784000 0x0 0x1000>; 1061 reg-names = "hc"; 1062 1063 interrupts = <GIC_SPI 350 IRQ_TYPE_LEVEL_HIGH>, 1064 <GIC_SPI 353 IRQ_TYPE_LEVEL_HIGH>; 1065 interrupt-names = "hc_irq", "pwr_irq"; 1066 1067 clocks = <&gcc GCC_SDCC2_AHB_CLK>, 1068 <&gcc GCC_SDCC2_APPS_CLK>, 1069 <&rpmcc RPM_SMD_XO_CLK_SRC>; 1070 clock-names = "iface", 1071 "core", 1072 "xo"; 1073 1074 resets = <&gcc GCC_SDCC2_BCR>; 1075 1076 power-domains = <&rpmpd QCM2290_VDDCX>; 1077 operating-points-v2 = <&sdhc2_opp_table>; 1078 iommus = <&apps_smmu 0xa0 0x0>; 1079 interconnects = <&system_noc MASTER_SDCC_2 RPM_ALWAYS_TAG 1080 &bimc SLAVE_EBI1 RPM_ALWAYS_TAG>, 1081 <&bimc MASTER_APPSS_PROC RPM_ALWAYS_TAG 1082 &config_noc SLAVE_SDCC_2 RPM_ALWAYS_TAG>; 1083 interconnect-names = "sdhc-ddr", 1084 "cpu-sdhc"; 1085 1086 qcom,dll-config = <0x0007642c>; 1087 qcom,ddr-config = <0x80040868>; 1088 bus-width = <4>; 1089 1090 status = "disabled"; 1091 1092 sdhc2_opp_table: opp-table { 1093 compatible = "operating-points-v2"; 1094 1095 opp-100000000 { 1096 opp-hz = /bits/ 64 <100000000>; 1097 required-opps = <&rpmpd_opp_low_svs>; 1098 opp-peak-kBps = <250000 133320>; 1099 opp-avg-kBps = <261438 150000>; 1100 }; 1101 1102 opp-202000000 { 1103 opp-hz = /bits/ 64 <202000000>; 1104 required-opps = <&rpmpd_opp_svs_plus>; 1105 opp-peak-kBps = <800000 300000>; 1106 opp-avg-kBps = <261438 300000>; 1107 }; 1108 }; 1109 }; 1110 1111 gpi_dma0: dma-controller@4a00000 { 1112 compatible = "qcom,qcm2290-gpi-dma", "qcom,sm6350-gpi-dma"; 1113 reg = <0x0 0x04a00000 0x0 0x60000>; 1114 interrupts = <GIC_SPI 335 IRQ_TYPE_LEVEL_HIGH>, 1115 <GIC_SPI 336 IRQ_TYPE_LEVEL_HIGH>, 1116 <GIC_SPI 337 IRQ_TYPE_LEVEL_HIGH>, 1117 <GIC_SPI 338 IRQ_TYPE_LEVEL_HIGH>, 1118 <GIC_SPI 339 IRQ_TYPE_LEVEL_HIGH>, 1119 <GIC_SPI 340 IRQ_TYPE_LEVEL_HIGH>, 1120 <GIC_SPI 341 IRQ_TYPE_LEVEL_HIGH>, 1121 <GIC_SPI 342 IRQ_TYPE_LEVEL_HIGH>, 1122 <GIC_SPI 343 IRQ_TYPE_LEVEL_HIGH>, 1123 <GIC_SPI 344 IRQ_TYPE_LEVEL_HIGH>; 1124 dma-channels = <10>; 1125 dma-channel-mask = <0x1f>; 1126 iommus = <&apps_smmu 0xf6 0x0>; 1127 #dma-cells = <3>; 1128 status = "disabled"; 1129 }; 1130 1131 qupv3_id_0: geniqup@4ac0000 { 1132 compatible = "qcom,geni-se-qup"; 1133 reg = <0x0 0x04ac0000 0x0 0x2000>; 1134 clocks = <&gcc GCC_QUPV3_WRAP_0_M_AHB_CLK>, 1135 <&gcc GCC_QUPV3_WRAP_0_S_AHB_CLK>; 1136 clock-names = "m-ahb", "s-ahb"; 1137 iommus = <&apps_smmu 0xe3 0x0>; 1138 #address-cells = <2>; 1139 #size-cells = <2>; 1140 ranges; 1141 status = "disabled"; 1142 1143 i2c0: i2c@4a80000 { 1144 compatible = "qcom,geni-i2c"; 1145 reg = <0x0 0x04a80000 0x0 0x4000>; 1146 interrupts = <GIC_SPI 327 IRQ_TYPE_LEVEL_HIGH>; 1147 clocks = <&gcc GCC_QUPV3_WRAP0_S0_CLK>; 1148 clock-names = "se"; 1149 pinctrl-0 = <&qup_i2c0_default>; 1150 pinctrl-names = "default"; 1151 dmas = <&gpi_dma0 0 0 QCOM_GPI_I2C>, 1152 <&gpi_dma0 1 0 QCOM_GPI_I2C>; 1153 dma-names = "tx", "rx"; 1154 interconnects = <&qup_virt MASTER_QUP_CORE_0 RPM_ALWAYS_TAG 1155 &qup_virt SLAVE_QUP_CORE_0 RPM_ALWAYS_TAG>, 1156 <&bimc MASTER_APPSS_PROC RPM_ALWAYS_TAG 1157 &config_noc SLAVE_QUP_0 RPM_ALWAYS_TAG>, 1158 <&system_noc MASTER_QUP_0 RPM_ALWAYS_TAG 1159 &bimc SLAVE_EBI1 RPM_ALWAYS_TAG>; 1160 interconnect-names = "qup-core", 1161 "qup-config", 1162 "qup-memory"; 1163 #address-cells = <1>; 1164 #size-cells = <0>; 1165 status = "disabled"; 1166 }; 1167 1168 spi0: spi@4a80000 { 1169 compatible = "qcom,geni-spi"; 1170 reg = <0x0 0x04a80000 0x0 0x4000>; 1171 interrupts = <GIC_SPI 327 IRQ_TYPE_LEVEL_HIGH>; 1172 clocks = <&gcc GCC_QUPV3_WRAP0_S0_CLK>; 1173 clock-names = "se"; 1174 pinctrl-0 = <&qup_spi0_default>; 1175 pinctrl-names = "default"; 1176 dmas = <&gpi_dma0 0 0 QCOM_GPI_SPI>, 1177 <&gpi_dma0 1 0 QCOM_GPI_SPI>; 1178 dma-names = "tx", "rx"; 1179 interconnects = <&qup_virt MASTER_QUP_CORE_0 RPM_ALWAYS_TAG 1180 &qup_virt SLAVE_QUP_CORE_0 RPM_ALWAYS_TAG>, 1181 <&bimc MASTER_APPSS_PROC RPM_ALWAYS_TAG 1182 &config_noc SLAVE_QUP_0 RPM_ALWAYS_TAG>; 1183 interconnect-names = "qup-core", 1184 "qup-config"; 1185 #address-cells = <1>; 1186 #size-cells = <0>; 1187 status = "disabled"; 1188 }; 1189 1190 uart0: serial@4a80000 { 1191 compatible = "qcom,geni-uart"; 1192 reg = <0x0 0x04a80000 0x0 0x4000>; 1193 interrupts = <GIC_SPI 327 IRQ_TYPE_LEVEL_HIGH>; 1194 clocks = <&gcc GCC_QUPV3_WRAP0_S0_CLK>; 1195 clock-names = "se"; 1196 pinctrl-0 = <&qup_uart0_default>; 1197 pinctrl-names = "default"; 1198 interconnects = <&qup_virt MASTER_QUP_CORE_0 RPM_ALWAYS_TAG 1199 &qup_virt SLAVE_QUP_CORE_0 RPM_ALWAYS_TAG>, 1200 <&bimc MASTER_APPSS_PROC RPM_ALWAYS_TAG 1201 &config_noc SLAVE_QUP_0 RPM_ALWAYS_TAG>; 1202 interconnect-names = "qup-core", 1203 "qup-config"; 1204 status = "disabled"; 1205 }; 1206 1207 i2c1: i2c@4a84000 { 1208 compatible = "qcom,geni-i2c"; 1209 reg = <0x0 0x04a84000 0x0 0x4000>; 1210 interrupts = <GIC_SPI 328 IRQ_TYPE_LEVEL_HIGH>; 1211 clocks = <&gcc GCC_QUPV3_WRAP0_S1_CLK>; 1212 clock-names = "se"; 1213 pinctrl-0 = <&qup_i2c1_default>; 1214 pinctrl-names = "default"; 1215 dmas = <&gpi_dma0 0 1 QCOM_GPI_I2C>, 1216 <&gpi_dma0 1 1 QCOM_GPI_I2C>; 1217 dma-names = "tx", "rx"; 1218 interconnects = <&qup_virt MASTER_QUP_CORE_0 RPM_ALWAYS_TAG 1219 &qup_virt SLAVE_QUP_CORE_0 RPM_ALWAYS_TAG>, 1220 <&bimc MASTER_APPSS_PROC RPM_ALWAYS_TAG 1221 &config_noc SLAVE_QUP_0 RPM_ALWAYS_TAG>, 1222 <&system_noc MASTER_QUP_0 RPM_ALWAYS_TAG 1223 &bimc SLAVE_EBI1 RPM_ALWAYS_TAG>; 1224 interconnect-names = "qup-core", 1225 "qup-config", 1226 "qup-memory"; 1227 #address-cells = <1>; 1228 #size-cells = <0>; 1229 status = "disabled"; 1230 }; 1231 1232 spi1: spi@4a84000 { 1233 compatible = "qcom,geni-spi"; 1234 reg = <0x0 0x04a84000 0x0 0x4000>; 1235 interrupts = <GIC_SPI 328 IRQ_TYPE_LEVEL_HIGH>; 1236 clocks = <&gcc GCC_QUPV3_WRAP0_S1_CLK>; 1237 clock-names = "se"; 1238 pinctrl-0 = <&qup_spi1_default>; 1239 pinctrl-names = "default"; 1240 dmas = <&gpi_dma0 0 1 QCOM_GPI_SPI>, 1241 <&gpi_dma0 1 1 QCOM_GPI_SPI>; 1242 dma-names = "tx", "rx"; 1243 interconnects = <&qup_virt MASTER_QUP_CORE_0 RPM_ALWAYS_TAG 1244 &qup_virt SLAVE_QUP_CORE_0 RPM_ALWAYS_TAG>, 1245 <&bimc MASTER_APPSS_PROC RPM_ALWAYS_TAG 1246 &config_noc SLAVE_QUP_0 RPM_ALWAYS_TAG>; 1247 interconnect-names = "qup-core", 1248 "qup-config"; 1249 #address-cells = <1>; 1250 #size-cells = <0>; 1251 status = "disabled"; 1252 }; 1253 1254 uart1: serial@4a84000 { 1255 compatible = "qcom,geni-uart"; 1256 reg = <0x0 0x04a84000 0x0 0x4000>; 1257 interrupts = <GIC_SPI 328 IRQ_TYPE_LEVEL_HIGH>; 1258 clocks = <&gcc GCC_QUPV3_WRAP0_S1_CLK>; 1259 clock-names = "se"; 1260 pinctrl-0 = <&qup_uart1_default>; 1261 pinctrl-names = "default"; 1262 interconnects = <&qup_virt MASTER_QUP_CORE_0 RPM_ALWAYS_TAG 1263 &qup_virt SLAVE_QUP_CORE_0 RPM_ALWAYS_TAG>, 1264 <&bimc MASTER_APPSS_PROC RPM_ALWAYS_TAG 1265 &config_noc SLAVE_QUP_0 RPM_ALWAYS_TAG>; 1266 interconnect-names = "qup-core", 1267 "qup-config"; 1268 status = "disabled"; 1269 }; 1270 1271 i2c2: i2c@4a88000 { 1272 compatible = "qcom,geni-i2c"; 1273 reg = <0x0 0x04a88000 0x0 0x4000>; 1274 interrupts = <GIC_SPI 329 IRQ_TYPE_LEVEL_HIGH>; 1275 clocks = <&gcc GCC_QUPV3_WRAP0_S2_CLK>; 1276 clock-names = "se"; 1277 pinctrl-0 = <&qup_i2c2_default>; 1278 pinctrl-names = "default"; 1279 dmas = <&gpi_dma0 0 2 QCOM_GPI_I2C>, 1280 <&gpi_dma0 1 2 QCOM_GPI_I2C>; 1281 dma-names = "tx", "rx"; 1282 interconnects = <&qup_virt MASTER_QUP_CORE_0 RPM_ALWAYS_TAG 1283 &qup_virt SLAVE_QUP_CORE_0 RPM_ALWAYS_TAG>, 1284 <&bimc MASTER_APPSS_PROC RPM_ALWAYS_TAG 1285 &config_noc SLAVE_QUP_0 RPM_ALWAYS_TAG>, 1286 <&system_noc MASTER_QUP_0 RPM_ALWAYS_TAG 1287 &bimc SLAVE_EBI1 RPM_ALWAYS_TAG>; 1288 interconnect-names = "qup-core", 1289 "qup-config", 1290 "qup-memory"; 1291 #address-cells = <1>; 1292 #size-cells = <0>; 1293 status = "disabled"; 1294 }; 1295 1296 spi2: spi@4a88000 { 1297 compatible = "qcom,geni-spi"; 1298 reg = <0x0 0x04a88000 0x0 0x4000>; 1299 interrupts = <GIC_SPI 329 IRQ_TYPE_LEVEL_HIGH>; 1300 clocks = <&gcc GCC_QUPV3_WRAP0_S2_CLK>; 1301 clock-names = "se"; 1302 pinctrl-0 = <&qup_spi2_default>; 1303 pinctrl-names = "default"; 1304 dmas = <&gpi_dma0 0 2 QCOM_GPI_SPI>, 1305 <&gpi_dma0 1 2 QCOM_GPI_SPI>; 1306 dma-names = "tx", "rx"; 1307 interconnects = <&qup_virt MASTER_QUP_CORE_0 RPM_ALWAYS_TAG 1308 &qup_virt SLAVE_QUP_CORE_0 RPM_ALWAYS_TAG>, 1309 <&bimc MASTER_APPSS_PROC RPM_ALWAYS_TAG 1310 &config_noc SLAVE_QUP_0 RPM_ALWAYS_TAG>; 1311 interconnect-names = "qup-core", 1312 "qup-config"; 1313 #address-cells = <1>; 1314 #size-cells = <0>; 1315 status = "disabled"; 1316 }; 1317 1318 i2c3: i2c@4a8c000 { 1319 compatible = "qcom,geni-i2c"; 1320 reg = <0x0 0x04a8c000 0x0 0x4000>; 1321 interrupts = <GIC_SPI 330 IRQ_TYPE_LEVEL_HIGH>; 1322 clocks = <&gcc GCC_QUPV3_WRAP0_S3_CLK>; 1323 clock-names = "se"; 1324 pinctrl-0 = <&qup_i2c3_default>; 1325 pinctrl-names = "default"; 1326 dmas = <&gpi_dma0 0 3 QCOM_GPI_I2C>, 1327 <&gpi_dma0 1 3 QCOM_GPI_I2C>; 1328 dma-names = "tx", "rx"; 1329 interconnects = <&qup_virt MASTER_QUP_CORE_0 RPM_ALWAYS_TAG 1330 &qup_virt SLAVE_QUP_CORE_0 RPM_ALWAYS_TAG>, 1331 <&bimc MASTER_APPSS_PROC RPM_ALWAYS_TAG 1332 &config_noc SLAVE_QUP_0 RPM_ALWAYS_TAG>, 1333 <&system_noc MASTER_QUP_0 RPM_ALWAYS_TAG 1334 &bimc SLAVE_EBI1 RPM_ALWAYS_TAG>; 1335 interconnect-names = "qup-core", 1336 "qup-config", 1337 "qup-memory"; 1338 #address-cells = <1>; 1339 #size-cells = <0>; 1340 status = "disabled"; 1341 }; 1342 1343 spi3: spi@4a8c000 { 1344 compatible = "qcom,geni-spi"; 1345 reg = <0x0 0x04a8c000 0x0 0x4000>; 1346 interrupts = <GIC_SPI 330 IRQ_TYPE_LEVEL_HIGH>; 1347 clocks = <&gcc GCC_QUPV3_WRAP0_S3_CLK>; 1348 clock-names = "se"; 1349 pinctrl-0 = <&qup_spi3_default>; 1350 pinctrl-names = "default"; 1351 dmas = <&gpi_dma0 0 3 QCOM_GPI_SPI>, 1352 <&gpi_dma0 1 3 QCOM_GPI_SPI>; 1353 dma-names = "tx", "rx"; 1354 interconnects = <&qup_virt MASTER_QUP_CORE_0 RPM_ALWAYS_TAG 1355 &qup_virt SLAVE_QUP_CORE_0 RPM_ALWAYS_TAG>, 1356 <&bimc MASTER_APPSS_PROC RPM_ALWAYS_TAG 1357 &config_noc SLAVE_QUP_0 RPM_ALWAYS_TAG>; 1358 interconnect-names = "qup-core", 1359 "qup-config"; 1360 #address-cells = <1>; 1361 #size-cells = <0>; 1362 status = "disabled"; 1363 }; 1364 1365 uart3: serial@4a8c000 { 1366 compatible = "qcom,geni-uart"; 1367 reg = <0x0 0x04a8c000 0x0 0x4000>; 1368 interrupts = <GIC_SPI 330 IRQ_TYPE_LEVEL_HIGH>; 1369 clocks = <&gcc GCC_QUPV3_WRAP0_S3_CLK>; 1370 clock-names = "se"; 1371 pinctrl-0 = <&qup_uart3_default>; 1372 pinctrl-names = "default"; 1373 interconnects = <&qup_virt MASTER_QUP_CORE_0 RPM_ALWAYS_TAG 1374 &qup_virt SLAVE_QUP_CORE_0 RPM_ALWAYS_TAG>, 1375 <&bimc MASTER_APPSS_PROC RPM_ALWAYS_TAG 1376 &config_noc SLAVE_QUP_0 RPM_ALWAYS_TAG>; 1377 interconnect-names = "qup-core", 1378 "qup-config"; 1379 status = "disabled"; 1380 }; 1381 1382 i2c4: i2c@4a90000 { 1383 compatible = "qcom,geni-i2c"; 1384 reg = <0x0 0x04a90000 0x0 0x4000>; 1385 interrupts = <GIC_SPI 331 IRQ_TYPE_LEVEL_HIGH>; 1386 clocks = <&gcc GCC_QUPV3_WRAP0_S4_CLK>; 1387 clock-names = "se"; 1388 pinctrl-0 = <&qup_i2c4_default>; 1389 pinctrl-names = "default"; 1390 dmas = <&gpi_dma0 0 4 QCOM_GPI_I2C>, 1391 <&gpi_dma0 1 4 QCOM_GPI_I2C>; 1392 dma-names = "tx", "rx"; 1393 interconnects = <&qup_virt MASTER_QUP_CORE_0 RPM_ALWAYS_TAG 1394 &qup_virt SLAVE_QUP_CORE_0 RPM_ALWAYS_TAG>, 1395 <&bimc MASTER_APPSS_PROC RPM_ALWAYS_TAG 1396 &config_noc SLAVE_QUP_0 RPM_ALWAYS_TAG>, 1397 <&system_noc MASTER_QUP_0 RPM_ALWAYS_TAG 1398 &bimc SLAVE_EBI1 RPM_ALWAYS_TAG>; 1399 interconnect-names = "qup-core", 1400 "qup-config", 1401 "qup-memory"; 1402 #address-cells = <1>; 1403 #size-cells = <0>; 1404 status = "disabled"; 1405 }; 1406 1407 spi4: spi@4a90000 { 1408 compatible = "qcom,geni-spi"; 1409 reg = <0x0 0x04a90000 0x0 0x4000>; 1410 interrupts = <GIC_SPI 331 IRQ_TYPE_LEVEL_HIGH>; 1411 clock-names = "se"; 1412 clocks = <&gcc GCC_QUPV3_WRAP0_S4_CLK>; 1413 pinctrl-names = "default"; 1414 pinctrl-0 = <&qup_spi4_default>; 1415 dmas = <&gpi_dma0 0 4 QCOM_GPI_SPI>, 1416 <&gpi_dma0 1 4 QCOM_GPI_SPI>; 1417 dma-names = "tx", "rx"; 1418 interconnects = <&qup_virt MASTER_QUP_CORE_0 RPM_ALWAYS_TAG 1419 &qup_virt SLAVE_QUP_CORE_0 RPM_ALWAYS_TAG>, 1420 <&bimc MASTER_APPSS_PROC RPM_ALWAYS_TAG 1421 &config_noc SLAVE_QUP_0 RPM_ALWAYS_TAG>; 1422 interconnect-names = "qup-core", 1423 "qup-config"; 1424 #address-cells = <1>; 1425 #size-cells = <0>; 1426 status = "disabled"; 1427 }; 1428 1429 uart4: serial@4a90000 { 1430 compatible = "qcom,geni-uart"; 1431 reg = <0x0 0x04a90000 0x0 0x4000>; 1432 interrupts = <GIC_SPI 331 IRQ_TYPE_LEVEL_HIGH>; 1433 clocks = <&gcc GCC_QUPV3_WRAP0_S4_CLK>; 1434 clock-names = "se"; 1435 pinctrl-0 = <&qup_uart4_default>; 1436 pinctrl-names = "default"; 1437 interconnects = <&qup_virt MASTER_QUP_CORE_0 RPM_ALWAYS_TAG 1438 &qup_virt SLAVE_QUP_CORE_0 RPM_ALWAYS_TAG>, 1439 <&bimc MASTER_APPSS_PROC RPM_ALWAYS_TAG 1440 &config_noc SLAVE_QUP_0 RPM_ALWAYS_TAG>; 1441 interconnect-names = "qup-core", 1442 "qup-config"; 1443 status = "disabled"; 1444 }; 1445 1446 i2c5: i2c@4a94000 { 1447 compatible = "qcom,geni-i2c"; 1448 reg = <0x0 0x04a94000 0x0 0x4000>; 1449 interrupts = <GIC_SPI 332 IRQ_TYPE_LEVEL_HIGH>; 1450 clocks = <&gcc GCC_QUPV3_WRAP0_S5_CLK>; 1451 clock-names = "se"; 1452 pinctrl-0 = <&qup_i2c5_default>; 1453 pinctrl-names = "default"; 1454 dmas = <&gpi_dma0 0 5 QCOM_GPI_I2C>, 1455 <&gpi_dma0 1 5 QCOM_GPI_I2C>; 1456 dma-names = "tx", "rx"; 1457 interconnects = <&qup_virt MASTER_QUP_CORE_0 RPM_ALWAYS_TAG 1458 &qup_virt SLAVE_QUP_CORE_0 RPM_ALWAYS_TAG>, 1459 <&bimc MASTER_APPSS_PROC RPM_ALWAYS_TAG 1460 &config_noc SLAVE_QUP_0 RPM_ALWAYS_TAG>, 1461 <&system_noc MASTER_QUP_0 RPM_ALWAYS_TAG 1462 &bimc SLAVE_EBI1 RPM_ALWAYS_TAG>; 1463 interconnect-names = "qup-core", 1464 "qup-config", 1465 "qup-memory"; 1466 #address-cells = <1>; 1467 #size-cells = <0>; 1468 status = "disabled"; 1469 }; 1470 1471 spi5: spi@4a94000 { 1472 compatible = "qcom,geni-spi"; 1473 reg = <0x0 0x04a94000 0x0 0x4000>; 1474 interrupts = <GIC_SPI 332 IRQ_TYPE_LEVEL_HIGH>; 1475 clocks = <&gcc GCC_QUPV3_WRAP0_S5_CLK>; 1476 clock-names = "se"; 1477 pinctrl-0 = <&qup_spi5_default>; 1478 pinctrl-names = "default"; 1479 dmas = <&gpi_dma0 0 5 QCOM_GPI_SPI>, 1480 <&gpi_dma0 1 5 QCOM_GPI_SPI>; 1481 dma-names = "tx", "rx"; 1482 interconnects = <&qup_virt MASTER_QUP_CORE_0 RPM_ALWAYS_TAG 1483 &qup_virt SLAVE_QUP_CORE_0 RPM_ALWAYS_TAG>, 1484 <&bimc MASTER_APPSS_PROC RPM_ALWAYS_TAG 1485 &config_noc SLAVE_QUP_0 RPM_ALWAYS_TAG>; 1486 interconnect-names = "qup-core", 1487 "qup-config"; 1488 #address-cells = <1>; 1489 #size-cells = <0>; 1490 status = "disabled"; 1491 }; 1492 1493 uart5: serial@4a94000 { 1494 compatible = "qcom,geni-uart"; 1495 reg = <0x0 0x04a94000 0x0 0x4000>; 1496 interrupts = <GIC_SPI 332 IRQ_TYPE_LEVEL_HIGH>; 1497 clocks = <&gcc GCC_QUPV3_WRAP0_S5_CLK>; 1498 clock-names = "se"; 1499 pinctrl-0 = <&qup_uart5_default>; 1500 pinctrl-names = "default"; 1501 interconnects = <&qup_virt MASTER_QUP_CORE_0 RPM_ALWAYS_TAG 1502 &qup_virt SLAVE_QUP_CORE_0 RPM_ALWAYS_TAG>, 1503 <&bimc MASTER_APPSS_PROC RPM_ALWAYS_TAG 1504 &config_noc SLAVE_QUP_0 RPM_ALWAYS_TAG>; 1505 interconnect-names = "qup-core", 1506 "qup-config"; 1507 status = "disabled"; 1508 }; 1509 }; 1510 1511 usb: usb@4ef8800 { 1512 compatible = "qcom,qcm2290-dwc3", "qcom,dwc3"; 1513 reg = <0x0 0x04ef8800 0x0 0x400>; 1514 interrupts-extended = <&intc GIC_SPI 260 IRQ_TYPE_LEVEL_HIGH>, 1515 <&mpm 12 IRQ_TYPE_LEVEL_HIGH>; 1516 interrupt-names = "hs_phy_irq", 1517 "ss_phy_irq"; 1518 1519 clocks = <&gcc GCC_CFG_NOC_USB3_PRIM_AXI_CLK>, 1520 <&gcc GCC_USB30_PRIM_MASTER_CLK>, 1521 <&gcc GCC_SYS_NOC_USB3_PRIM_AXI_CLK>, 1522 <&gcc GCC_USB30_PRIM_SLEEP_CLK>, 1523 <&gcc GCC_USB30_PRIM_MOCK_UTMI_CLK>, 1524 <&gcc GCC_USB3_PRIM_CLKREF_CLK>; 1525 clock-names = "cfg_noc", 1526 "core", 1527 "iface", 1528 "sleep", 1529 "mock_utmi", 1530 "xo"; 1531 1532 assigned-clocks = <&gcc GCC_USB30_PRIM_MOCK_UTMI_CLK>, 1533 <&gcc GCC_USB30_PRIM_MASTER_CLK>; 1534 assigned-clock-rates = <19200000>, <133333333>; 1535 1536 resets = <&gcc GCC_USB30_PRIM_BCR>; 1537 power-domains = <&gcc GCC_USB30_PRIM_GDSC>; 1538 /* TODO: USB<->IPA path */ 1539 interconnects = <&system_noc MASTER_USB3_0 RPM_ALWAYS_TAG 1540 &bimc SLAVE_EBI1 RPM_ALWAYS_TAG>, 1541 <&bimc MASTER_APPSS_PROC RPM_ALWAYS_TAG 1542 &config_noc SLAVE_USB3 RPM_ALWAYS_TAG>; 1543 interconnect-names = "usb-ddr", 1544 "apps-usb"; 1545 wakeup-source; 1546 1547 #address-cells = <2>; 1548 #size-cells = <2>; 1549 ranges; 1550 1551 status = "disabled"; 1552 1553 usb_dwc3: usb@4e00000 { 1554 compatible = "snps,dwc3"; 1555 reg = <0x0 0x04e00000 0x0 0xcd00>; 1556 interrupts = <GIC_SPI 255 IRQ_TYPE_LEVEL_HIGH>; 1557 phys = <&usb_hsphy>, <&usb_qmpphy>; 1558 phy-names = "usb2-phy", "usb3-phy"; 1559 iommus = <&apps_smmu 0x120 0x0>; 1560 snps,dis_u2_susphy_quirk; 1561 snps,dis_enblslpm_quirk; 1562 snps,has-lpm-erratum; 1563 snps,hird-threshold = /bits/ 8 <0x10>; 1564 snps,usb3_lpm_capable; 1565 snps,parkmode-disable-ss-quirk; 1566 maximum-speed = "super-speed"; 1567 dr_mode = "otg"; 1568 usb-role-switch; 1569 1570 ports { 1571 #address-cells = <1>; 1572 #size-cells = <0>; 1573 1574 port@0 { 1575 reg = <0>; 1576 1577 usb_dwc3_hs: endpoint { 1578 }; 1579 }; 1580 1581 port@1 { 1582 reg = <1>; 1583 1584 usb_dwc3_ss: endpoint { 1585 remote-endpoint = <&usb_qmpphy_usb_ss_in>; 1586 }; 1587 }; 1588 }; 1589 }; 1590 }; 1591 1592 gpu: gpu@5900000 { 1593 compatible = "qcom,adreno-07000200", "qcom,adreno"; 1594 reg = <0x0 0x05900000 0x0 0x40000>; 1595 reg-names = "kgsl_3d0_reg_memory"; 1596 1597 interrupts = <GIC_SPI 177 IRQ_TYPE_LEVEL_HIGH>; 1598 1599 clocks = <&gpucc GPU_CC_GX_GFX3D_CLK>, 1600 <&gpucc GPU_CC_AHB_CLK>, 1601 <&gcc GCC_BIMC_GPU_AXI_CLK>, 1602 <&gcc GCC_GPU_MEMNOC_GFX_CLK>, 1603 <&gpucc GPU_CC_CX_GMU_CLK>, 1604 <&gpucc GPU_CC_CXO_CLK>; 1605 clock-names = "core", 1606 "iface", 1607 "mem_iface", 1608 "alt_mem_iface", 1609 "gmu", 1610 "xo"; 1611 1612 interconnects = <&bimc MASTER_GFX3D RPM_ALWAYS_TAG 1613 &bimc SLAVE_EBI1 RPM_ALWAYS_TAG>; 1614 interconnect-names = "gfx-mem"; 1615 1616 iommus = <&adreno_smmu 0 1>, 1617 <&adreno_smmu 2 0>; 1618 operating-points-v2 = <&gpu_opp_table>; 1619 power-domains = <&rpmpd QCM2290_VDDCX>; 1620 qcom,gmu = <&gmu_wrapper>; 1621 1622 nvmem-cells = <&gpu_speed_bin>; 1623 nvmem-cell-names = "speed_bin"; 1624 #cooling-cells = <2>; 1625 1626 status = "disabled"; 1627 1628 gpu_zap_shader: zap-shader { 1629 memory-region = <&pil_gpu_mem>; 1630 }; 1631 1632 gpu_opp_table: opp-table { 1633 compatible = "operating-points-v2"; 1634 1635 /* TODO: Scale RPM_SMD_BIMC_GPU_CLK w/ turbo freqs */ 1636 opp-1123200000 { 1637 opp-hz = /bits/ 64 <1123200000>; 1638 required-opps = <&rpmpd_opp_turbo_plus>; 1639 opp-peak-kBps = <6881000>; 1640 opp-supported-hw = <0x3>; 1641 turbo-mode; 1642 }; 1643 1644 opp-1017600000 { 1645 opp-hz = /bits/ 64 <1017600000>; 1646 required-opps = <&rpmpd_opp_turbo>; 1647 opp-peak-kBps = <6881000>; 1648 opp-supported-hw = <0x3>; 1649 turbo-mode; 1650 }; 1651 1652 opp-921600000 { 1653 opp-hz = /bits/ 64 <921600000>; 1654 required-opps = <&rpmpd_opp_nom_plus>; 1655 opp-peak-kBps = <6881000>; 1656 opp-supported-hw = <0x3>; 1657 }; 1658 1659 opp-844800000 { 1660 opp-hz = /bits/ 64 <844800000>; 1661 required-opps = <&rpmpd_opp_nom>; 1662 opp-peak-kBps = <6881000>; 1663 opp-supported-hw = <0x7>; 1664 }; 1665 1666 opp-672000000 { 1667 opp-hz = /bits/ 64 <672000000>; 1668 required-opps = <&rpmpd_opp_svs_plus>; 1669 opp-peak-kBps = <3879000>; 1670 opp-supported-hw = <0xf>; 1671 }; 1672 1673 opp-537600000 { 1674 opp-hz = /bits/ 64 <537600000>; 1675 required-opps = <&rpmpd_opp_svs>; 1676 opp-peak-kBps = <2929000>; 1677 opp-supported-hw = <0xf>; 1678 }; 1679 1680 opp-355200000 { 1681 opp-hz = /bits/ 64 <355200000>; 1682 required-opps = <&rpmpd_opp_low_svs>; 1683 opp-peak-kBps = <1720000>; 1684 opp-supported-hw = <0xf>; 1685 }; 1686 }; 1687 }; 1688 1689 gmu_wrapper: gmu@596a000 { 1690 compatible = "qcom,adreno-gmu-wrapper"; 1691 reg = <0x0 0x0596a000 0x0 0x30000>; 1692 reg-names = "gmu"; 1693 power-domains = <&gpucc GPU_CX_GDSC>, 1694 <&gpucc GPU_GX_GDSC>; 1695 power-domain-names = "cx", 1696 "gx"; 1697 }; 1698 1699 gpucc: clock-controller@5990000 { 1700 compatible = "qcom,qcm2290-gpucc"; 1701 reg = <0x0 0x05990000 0x0 0x9000>; 1702 clocks = <&gcc GCC_GPU_CFG_AHB_CLK>, 1703 <&rpmcc RPM_SMD_XO_CLK_SRC>, 1704 <&gcc GCC_GPU_GPLL0_CLK_SRC>, 1705 <&gcc GCC_GPU_GPLL0_DIV_CLK_SRC>; 1706 power-domains = <&rpmpd QCM2290_VDDCX>; 1707 required-opps = <&rpmpd_opp_low_svs>; 1708 #clock-cells = <1>; 1709 #reset-cells = <1>; 1710 #power-domain-cells = <1>; 1711 }; 1712 1713 adreno_smmu: iommu@59a0000 { 1714 compatible = "qcom,qcm2290-smmu-500", "qcom,adreno-smmu", 1715 "qcom,smmu-500", "arm,mmu-500"; 1716 reg = <0x0 0x059a0000 0x0 0x10000>; 1717 interrupts = <GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>, 1718 <GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH>, 1719 <GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>, 1720 <GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>, 1721 <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>, 1722 <GIC_SPI 171 IRQ_TYPE_LEVEL_HIGH>, 1723 <GIC_SPI 172 IRQ_TYPE_LEVEL_HIGH>, 1724 <GIC_SPI 173 IRQ_TYPE_LEVEL_HIGH>, 1725 <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>; 1726 1727 clocks = <&gcc GCC_GPU_MEMNOC_GFX_CLK>, 1728 <&gpucc GPU_CC_HLOS1_VOTE_GPU_SMMU_CLK>, 1729 <&gcc GCC_GPU_SNOC_DVM_GFX_CLK>; 1730 clock-names = "mem", 1731 "hlos", 1732 "iface"; 1733 1734 power-domains = <&gpucc GPU_CX_GDSC>; 1735 1736 #global-interrupts = <1>; 1737 #iommu-cells = <2>; 1738 }; 1739 1740 cci: cci@5c1b000 { 1741 compatible = "qcom,qcm2290-cci", "qcom,msm8996-cci"; 1742 reg = <0x0 0x5c1b000 0x0 0x1000>; 1743 1744 interrupts = <GIC_SPI 206 IRQ_TYPE_EDGE_RISING>; 1745 1746 clocks = <&gcc GCC_CAMSS_TOP_AHB_CLK>, <&gcc GCC_CAMSS_CCI_0_CLK>; 1747 clock-names = "ahb", "cci"; 1748 assigned-clocks = <&gcc GCC_CAMSS_CCI_0_CLK>; 1749 assigned-clock-rates = <37500000>; 1750 1751 power-domains = <&gcc GCC_CAMSS_TOP_GDSC>; 1752 1753 pinctrl-0 = <&cci0_default &cci1_default>; 1754 pinctrl-names = "default"; 1755 1756 #address-cells = <1>; 1757 #size-cells = <0>; 1758 1759 status = "disabled"; 1760 1761 cci_i2c0: i2c-bus@0 { 1762 reg = <0>; 1763 clock-frequency = <400000>; 1764 #address-cells = <1>; 1765 #size-cells = <0>; 1766 }; 1767 1768 cci_i2c1: i2c-bus@1 { 1769 reg = <1>; 1770 clock-frequency = <400000>; 1771 #address-cells = <1>; 1772 #size-cells = <0>; 1773 }; 1774 }; 1775 1776 camss: camss@5c11000 { 1777 compatible = "qcom,qcm2290-camss"; 1778 1779 reg = <0x0 0x5c11000 0x0 0x1000>, 1780 <0x0 0x5c6e000 0x0 0x1000>, 1781 <0x0 0x5c75000 0x0 0x1000>, 1782 <0x0 0x5c52000 0x0 0x1000>, 1783 <0x0 0x5c53000 0x0 0x1000>, 1784 <0x0 0x5c66000 0x0 0x400>, 1785 <0x0 0x5c68000 0x0 0x400>, 1786 <0x0 0x5c6f000 0x0 0x4000>, 1787 <0x0 0x5c76000 0x0 0x4000>; 1788 reg-names = "top", 1789 "csid0", 1790 "csid1", 1791 "csiphy0", 1792 "csiphy1", 1793 "csitpg0", 1794 "csitpg1", 1795 "vfe0", 1796 "vfe1"; 1797 1798 clocks = <&gcc GCC_CAMERA_AHB_CLK>, 1799 <&gcc GCC_CAMSS_AXI_CLK>, 1800 <&gcc GCC_CAMSS_NRT_AXI_CLK>, 1801 <&gcc GCC_CAMSS_RT_AXI_CLK>, 1802 <&gcc GCC_CAMSS_TFE_0_CSID_CLK>, 1803 <&gcc GCC_CAMSS_TFE_1_CSID_CLK>, 1804 <&gcc GCC_CAMSS_CPHY_0_CLK>, 1805 <&gcc GCC_CAMSS_CSI0PHYTIMER_CLK>, 1806 <&gcc GCC_CAMSS_CPHY_1_CLK>, 1807 <&gcc GCC_CAMSS_CSI1PHYTIMER_CLK>, 1808 <&gcc GCC_CAMSS_TOP_AHB_CLK>, 1809 <&gcc GCC_CAMSS_TFE_0_CLK>, 1810 <&gcc GCC_CAMSS_TFE_0_CPHY_RX_CLK>, 1811 <&gcc GCC_CAMSS_TFE_1_CLK>, 1812 <&gcc GCC_CAMSS_TFE_1_CPHY_RX_CLK> ; 1813 clock-names = "ahb", 1814 "axi", 1815 "camnoc_nrt_axi", 1816 "camnoc_rt_axi", 1817 "csi0", 1818 "csi1", 1819 "csiphy0", 1820 "csiphy0_timer", 1821 "csiphy1", 1822 "csiphy1_timer", 1823 "top_ahb", 1824 "vfe0", 1825 "vfe0_cphy_rx", 1826 "vfe1", 1827 "vfe1_cphy_rx"; 1828 1829 interrupts = <GIC_SPI 210 IRQ_TYPE_EDGE_RISING>, 1830 <GIC_SPI 212 IRQ_TYPE_EDGE_RISING>, 1831 <GIC_SPI 72 IRQ_TYPE_EDGE_RISING>, 1832 <GIC_SPI 73 IRQ_TYPE_EDGE_RISING>, 1833 <GIC_SPI 309 IRQ_TYPE_EDGE_RISING>, 1834 <GIC_SPI 310 IRQ_TYPE_EDGE_RISING>, 1835 <GIC_SPI 211 IRQ_TYPE_EDGE_RISING>, 1836 <GIC_SPI 213 IRQ_TYPE_EDGE_RISING>; 1837 interrupt-names = "csid0", 1838 "csid1", 1839 "csiphy0", 1840 "csiphy1", 1841 "csitpg0", 1842 "csitpg1", 1843 "vfe0", 1844 "vfe1"; 1845 1846 interconnects = <&bimc MASTER_APPSS_PROC RPM_ACTIVE_TAG 1847 &config_noc SLAVE_CAMERA_CFG RPM_ACTIVE_TAG>, 1848 <&mmrt_virt MASTER_CAMNOC_HF RPM_ALWAYS_TAG 1849 &bimc SLAVE_EBI1 RPM_ALWAYS_TAG>, 1850 <&mmnrt_virt MASTER_CAMNOC_SF RPM_ALWAYS_TAG 1851 &bimc SLAVE_EBI1 RPM_ALWAYS_TAG>; 1852 interconnect-names = "ahb", 1853 "hf_mnoc", 1854 "sf_mnoc"; 1855 1856 iommus = <&apps_smmu 0x400 0x0>, 1857 <&apps_smmu 0x800 0x0>, 1858 <&apps_smmu 0x820 0x0>, 1859 <&apps_smmu 0x840 0x0>; 1860 1861 power-domains = <&gcc GCC_CAMSS_TOP_GDSC>; 1862 1863 status = "disabled"; 1864 1865 ports { 1866 #address-cells = <1>; 1867 #size-cells = <0>; 1868 1869 port@0 { 1870 reg = <0>; 1871 }; 1872 1873 port@1 { 1874 reg = <1>; 1875 }; 1876 }; 1877 }; 1878 1879 mdss: display-subsystem@5e00000 { 1880 compatible = "qcom,qcm2290-mdss"; 1881 reg = <0x0 0x05e00000 0x0 0x1000>; 1882 reg-names = "mdss"; 1883 interrupts = <GIC_SPI 186 IRQ_TYPE_LEVEL_HIGH>; 1884 interrupt-controller; 1885 #interrupt-cells = <1>; 1886 1887 clocks = <&gcc GCC_DISP_AHB_CLK>, 1888 <&gcc GCC_DISP_HF_AXI_CLK>, 1889 <&dispcc DISP_CC_MDSS_MDP_CLK>; 1890 clock-names = "iface", 1891 "bus", 1892 "core"; 1893 1894 resets = <&dispcc DISP_CC_MDSS_CORE_BCR>; 1895 1896 power-domains = <&dispcc MDSS_GDSC>; 1897 1898 iommus = <&apps_smmu 0x420 0x2>, 1899 <&apps_smmu 0x421 0x0>; 1900 interconnects = <&mmrt_virt MASTER_MDP0 RPM_ALWAYS_TAG 1901 &bimc SLAVE_EBI1 RPM_ALWAYS_TAG>, 1902 <&bimc MASTER_APPSS_PROC RPM_ALWAYS_TAG 1903 &config_noc SLAVE_DISPLAY_CFG RPM_ALWAYS_TAG>; 1904 interconnect-names = "mdp0-mem", 1905 "cpu-cfg"; 1906 1907 #address-cells = <2>; 1908 #size-cells = <2>; 1909 ranges; 1910 1911 status = "disabled"; 1912 1913 mdp: display-controller@5e01000 { 1914 compatible = "qcom,qcm2290-dpu"; 1915 reg = <0x0 0x05e01000 0x0 0x8f000>, 1916 <0x0 0x05eb0000 0x0 0x3000>; 1917 reg-names = "mdp", 1918 "vbif"; 1919 1920 interrupt-parent = <&mdss>; 1921 interrupts = <0>; 1922 1923 clocks = <&gcc GCC_DISP_HF_AXI_CLK>, 1924 <&dispcc DISP_CC_MDSS_AHB_CLK>, 1925 <&dispcc DISP_CC_MDSS_MDP_CLK>, 1926 <&dispcc DISP_CC_MDSS_MDP_LUT_CLK>, 1927 <&dispcc DISP_CC_MDSS_VSYNC_CLK>; 1928 clock-names = "bus", 1929 "iface", 1930 "core", 1931 "lut", 1932 "vsync"; 1933 1934 operating-points-v2 = <&mdp_opp_table>; 1935 power-domains = <&rpmpd QCM2290_VDDCX>; 1936 1937 ports { 1938 #address-cells = <1>; 1939 #size-cells = <0>; 1940 1941 port@0 { 1942 reg = <0>; 1943 dpu_intf1_out: endpoint { 1944 remote-endpoint = <&mdss_dsi0_in>; 1945 }; 1946 }; 1947 }; 1948 1949 mdp_opp_table: opp-table { 1950 compatible = "operating-points-v2"; 1951 1952 opp-19200000 { 1953 opp-hz = /bits/ 64 <19200000>; 1954 required-opps = <&rpmpd_opp_min_svs>; 1955 }; 1956 1957 opp-192000000 { 1958 opp-hz = /bits/ 64 <192000000>; 1959 required-opps = <&rpmpd_opp_low_svs>; 1960 }; 1961 1962 opp-256000000 { 1963 opp-hz = /bits/ 64 <256000000>; 1964 required-opps = <&rpmpd_opp_svs>; 1965 }; 1966 1967 opp-307200000 { 1968 opp-hz = /bits/ 64 <307200000>; 1969 required-opps = <&rpmpd_opp_svs_plus>; 1970 }; 1971 1972 opp-384000000 { 1973 opp-hz = /bits/ 64 <384000000>; 1974 required-opps = <&rpmpd_opp_nom>; 1975 }; 1976 }; 1977 }; 1978 1979 mdss_dsi0: dsi@5e94000 { 1980 compatible = "qcom,qcm2290-dsi-ctrl", "qcom,mdss-dsi-ctrl"; 1981 reg = <0x0 0x05e94000 0x0 0x400>; 1982 reg-names = "dsi_ctrl"; 1983 1984 interrupt-parent = <&mdss>; 1985 interrupts = <4>; 1986 1987 clocks = <&dispcc DISP_CC_MDSS_BYTE0_CLK>, 1988 <&dispcc DISP_CC_MDSS_BYTE0_INTF_CLK>, 1989 <&dispcc DISP_CC_MDSS_PCLK0_CLK>, 1990 <&dispcc DISP_CC_MDSS_ESC0_CLK>, 1991 <&dispcc DISP_CC_MDSS_AHB_CLK>, 1992 <&gcc GCC_DISP_HF_AXI_CLK>; 1993 clock-names = "byte", 1994 "byte_intf", 1995 "pixel", 1996 "core", 1997 "iface", 1998 "bus"; 1999 2000 assigned-clocks = <&dispcc DISP_CC_MDSS_BYTE0_CLK_SRC>, 2001 <&dispcc DISP_CC_MDSS_PCLK0_CLK_SRC>; 2002 assigned-clock-parents = <&mdss_dsi0_phy DSI_BYTE_PLL_CLK>, 2003 <&mdss_dsi0_phy DSI_PIXEL_PLL_CLK>; 2004 2005 operating-points-v2 = <&dsi_opp_table>; 2006 power-domains = <&rpmpd QCM2290_VDDCX>; 2007 phys = <&mdss_dsi0_phy>; 2008 2009 #address-cells = <1>; 2010 #size-cells = <0>; 2011 2012 status = "disabled"; 2013 2014 dsi_opp_table: opp-table { 2015 compatible = "operating-points-v2"; 2016 2017 opp-19200000 { 2018 opp-hz = /bits/ 64 <19200000>; 2019 required-opps = <&rpmpd_opp_min_svs>; 2020 }; 2021 2022 opp-164000000 { 2023 opp-hz = /bits/ 64 <164000000>; 2024 required-opps = <&rpmpd_opp_low_svs>; 2025 }; 2026 2027 opp-187500000 { 2028 opp-hz = /bits/ 64 <187500000>; 2029 required-opps = <&rpmpd_opp_svs>; 2030 }; 2031 }; 2032 2033 ports { 2034 #address-cells = <1>; 2035 #size-cells = <0>; 2036 2037 port@0 { 2038 reg = <0>; 2039 2040 mdss_dsi0_in: endpoint { 2041 remote-endpoint = <&dpu_intf1_out>; 2042 }; 2043 }; 2044 2045 port@1 { 2046 reg = <1>; 2047 2048 mdss_dsi0_out: endpoint { 2049 }; 2050 }; 2051 }; 2052 }; 2053 2054 mdss_dsi0_phy: phy@5e94400 { 2055 compatible = "qcom,dsi-phy-14nm-2290"; 2056 reg = <0x0 0x05e94400 0x0 0x100>, 2057 <0x0 0x05e94500 0x0 0x300>, 2058 <0x0 0x05e94800 0x0 0x188>; 2059 reg-names = "dsi_phy", 2060 "dsi_phy_lane", 2061 "dsi_pll"; 2062 2063 clocks = <&dispcc DISP_CC_MDSS_AHB_CLK>, 2064 <&rpmcc RPM_SMD_XO_CLK_SRC>; 2065 clock-names = "iface", 2066 "ref"; 2067 2068 power-domains = <&rpmpd QCM2290_VDDMX>; 2069 required-opps = <&rpmpd_opp_nom>; 2070 2071 #clock-cells = <1>; 2072 #phy-cells = <0>; 2073 2074 status = "disabled"; 2075 }; 2076 }; 2077 2078 dispcc: clock-controller@5f00000 { 2079 compatible = "qcom,qcm2290-dispcc"; 2080 reg = <0x0 0x05f00000 0x0 0x20000>; 2081 clocks = <&rpmcc RPM_SMD_XO_CLK_SRC>, 2082 <&rpmcc RPM_SMD_XO_A_CLK_SRC>, 2083 <&gcc GCC_DISP_GPLL0_CLK_SRC>, 2084 <&gcc GCC_DISP_GPLL0_DIV_CLK_SRC>, 2085 <&mdss_dsi0_phy DSI_BYTE_PLL_CLK>, 2086 <&mdss_dsi0_phy DSI_PIXEL_PLL_CLK>; 2087 clock-names = "bi_tcxo", 2088 "bi_tcxo_ao", 2089 "gcc_disp_gpll0_clk_src", 2090 "gcc_disp_gpll0_div_clk_src", 2091 "dsi0_phy_pll_out_byteclk", 2092 "dsi0_phy_pll_out_dsiclk"; 2093 #power-domain-cells = <1>; 2094 #clock-cells = <1>; 2095 #reset-cells = <1>; 2096 }; 2097 2098 remoteproc_mpss: remoteproc@6080000 { 2099 compatible = "qcom,qcm2290-mpss-pas", "qcom,sm6115-mpss-pas"; 2100 reg = <0x0 0x06080000 0x0 0x100>; 2101 2102 interrupts-extended = <&intc GIC_SPI 307 IRQ_TYPE_EDGE_RISING>, 2103 <&modem_smp2p_in 0 IRQ_TYPE_EDGE_RISING>, 2104 <&modem_smp2p_in 1 IRQ_TYPE_EDGE_RISING>, 2105 <&modem_smp2p_in 2 IRQ_TYPE_EDGE_RISING>, 2106 <&modem_smp2p_in 3 IRQ_TYPE_EDGE_RISING>, 2107 <&modem_smp2p_in 7 IRQ_TYPE_EDGE_RISING>; 2108 interrupt-names = "wdog", 2109 "fatal", 2110 "ready", 2111 "handover", 2112 "stop-ack", 2113 "shutdown-ack"; 2114 2115 clocks = <&rpmcc RPM_SMD_XO_CLK_SRC>; 2116 clock-names = "xo"; 2117 2118 power-domains = <&rpmpd QCM2290_VDDCX>; 2119 2120 memory-region = <&pil_modem_mem>; 2121 2122 qcom,smem-states = <&modem_smp2p_out 0>; 2123 qcom,smem-state-names = "stop"; 2124 2125 status = "disabled"; 2126 2127 glink-edge { 2128 interrupts = <GIC_SPI 68 IRQ_TYPE_EDGE_RISING>; 2129 label = "mpss"; 2130 qcom,remote-pid = <1>; 2131 mboxes = <&apcs_glb 12>; 2132 }; 2133 }; 2134 2135 remoteproc_adsp: remoteproc@ab00000 { 2136 compatible = "qcom,qcm2290-adsp-pas", "qcom,sm6115-adsp-pas"; 2137 reg = <0x0 0x0ab00000 0x0 0x100>; 2138 2139 interrupts-extended = <&intc GIC_SPI 282 IRQ_TYPE_EDGE_RISING>, 2140 <&adsp_smp2p_in 0 IRQ_TYPE_EDGE_RISING>, 2141 <&adsp_smp2p_in 1 IRQ_TYPE_EDGE_RISING>, 2142 <&adsp_smp2p_in 2 IRQ_TYPE_EDGE_RISING>, 2143 <&adsp_smp2p_in 3 IRQ_TYPE_EDGE_RISING>; 2144 interrupt-names = "wdog", 2145 "fatal", 2146 "ready", 2147 "handover", 2148 "stop-ack"; 2149 2150 clocks = <&rpmcc RPM_SMD_XO_CLK_SRC>; 2151 clock-names = "xo"; 2152 2153 power-domains = <&rpmpd QCM2290_VDD_LPI_CX>, 2154 <&rpmpd QCM2290_VDD_LPI_MX>; 2155 2156 memory-region = <&pil_adsp_mem>; 2157 2158 qcom,smem-states = <&adsp_smp2p_out 0>; 2159 qcom,smem-state-names = "stop"; 2160 2161 status = "disabled"; 2162 2163 glink-edge { 2164 interrupts = <GIC_SPI 277 IRQ_TYPE_EDGE_RISING>; 2165 label = "lpass"; 2166 qcom,remote-pid = <2>; 2167 mboxes = <&apcs_glb 8>; 2168 2169 apr { 2170 compatible = "qcom,apr-v2"; 2171 qcom,glink-channels = "apr_audio_svc"; 2172 qcom,domain = <APR_DOMAIN_ADSP>; 2173 #address-cells = <1>; 2174 #size-cells = <0>; 2175 2176 service@3 { 2177 reg = <APR_SVC_ADSP_CORE>; 2178 compatible = "qcom,q6core"; 2179 qcom,protection-domain = "avs/audio", 2180 "msm/adsp/audio_pd"; 2181 }; 2182 2183 q6afe: service@4 { 2184 compatible = "qcom,q6afe"; 2185 reg = <APR_SVC_AFE>; 2186 qcom,protection-domain = "avs/audio", 2187 "msm/adsp/audio_pd"; 2188 q6afedai: dais { 2189 compatible = "qcom,q6afe-dais"; 2190 #address-cells = <1>; 2191 #size-cells = <0>; 2192 #sound-dai-cells = <1>; 2193 }; 2194 2195 q6afecc: clock-controller { 2196 compatible = "qcom,q6afe-clocks"; 2197 #clock-cells = <2>; 2198 }; 2199 }; 2200 2201 q6asm: service@7 { 2202 compatible = "qcom,q6asm"; 2203 reg = <APR_SVC_ASM>; 2204 qcom,protection-domain = "avs/audio", 2205 "msm/adsp/audio_pd"; 2206 q6asmdai: dais { 2207 compatible = "qcom,q6asm-dais"; 2208 #address-cells = <1>; 2209 #size-cells = <0>; 2210 #sound-dai-cells = <1>; 2211 iommus = <&apps_smmu 0x1c1 0x0>; 2212 2213 dai@0 { 2214 reg = <MSM_FRONTEND_DAI_MULTIMEDIA1>; 2215 }; 2216 2217 dai@1 { 2218 reg = <MSM_FRONTEND_DAI_MULTIMEDIA2>; 2219 }; 2220 2221 dai@2 { 2222 reg = <MSM_FRONTEND_DAI_MULTIMEDIA3>; 2223 }; 2224 }; 2225 }; 2226 2227 q6adm: service@8 { 2228 compatible = "qcom,q6adm"; 2229 reg = <APR_SVC_ADM>; 2230 qcom,protection-domain = "avs/audio", 2231 "msm/adsp/audio_pd"; 2232 q6routing: routing { 2233 compatible = "qcom,q6adm-routing"; 2234 #sound-dai-cells = <0>; 2235 }; 2236 }; 2237 }; 2238 }; 2239 }; 2240 2241 apps_smmu: iommu@c600000 { 2242 compatible = "qcom,qcm2290-smmu-500", "qcom,smmu-500", "arm,mmu-500"; 2243 reg = <0x0 0x0c600000 0x0 0x80000>; 2244 #iommu-cells = <2>; 2245 #global-interrupts = <1>; 2246 2247 interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>, 2248 <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>, 2249 <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>, 2250 <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>, 2251 <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>, 2252 <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>, 2253 <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>, 2254 <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>, 2255 <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>, 2256 <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>, 2257 <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>, 2258 <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>, 2259 <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>, 2260 <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>, 2261 <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>, 2262 <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>, 2263 <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>, 2264 <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>, 2265 <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>, 2266 <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>, 2267 <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>, 2268 <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>, 2269 <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>, 2270 <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>, 2271 <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>, 2272 <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>, 2273 <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>, 2274 <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>, 2275 <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>, 2276 <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>, 2277 <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>, 2278 <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>, 2279 <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>, 2280 <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>, 2281 <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>, 2282 <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>, 2283 <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>, 2284 <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>, 2285 <GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>, 2286 <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>, 2287 <GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>, 2288 <GIC_SPI 127 IRQ_TYPE_LEVEL_HIGH>, 2289 <GIC_SPI 128 IRQ_TYPE_LEVEL_HIGH>, 2290 <GIC_SPI 129 IRQ_TYPE_LEVEL_HIGH>, 2291 <GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>, 2292 <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>, 2293 <GIC_SPI 132 IRQ_TYPE_LEVEL_HIGH>, 2294 <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>, 2295 <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>, 2296 <GIC_SPI 135 IRQ_TYPE_LEVEL_HIGH>, 2297 <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>, 2298 <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>, 2299 <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>, 2300 <GIC_SPI 139 IRQ_TYPE_LEVEL_HIGH>, 2301 <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>, 2302 <GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>, 2303 <GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH>, 2304 <GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>, 2305 <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>, 2306 <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>, 2307 <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>, 2308 <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>, 2309 <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>, 2310 <GIC_SPI 149 IRQ_TYPE_LEVEL_HIGH>, 2311 <GIC_SPI 150 IRQ_TYPE_LEVEL_HIGH>; 2312 }; 2313 2314 venus: video-codec@5a00000 { 2315 compatible = "qcom,qcm2290-venus"; 2316 reg = <0 0x5a00000 0 0xf0000>; 2317 interrupts = <GIC_SPI 225 IRQ_TYPE_LEVEL_HIGH>; 2318 2319 power-domains = <&gcc GCC_VENUS_GDSC>, 2320 <&gcc GCC_VCODEC0_GDSC>, 2321 <&rpmpd QCM2290_VDDCX>; 2322 power-domain-names = "venus", 2323 "vcodec0", 2324 "cx"; 2325 operating-points-v2 = <&venus_opp_table>; 2326 2327 clocks = <&gcc GCC_VIDEO_VENUS_CTL_CLK>, 2328 <&gcc GCC_VIDEO_AHB_CLK>, 2329 <&gcc GCC_VENUS_CTL_AXI_CLK>, 2330 <&gcc GCC_VIDEO_THROTTLE_CORE_CLK>, 2331 <&gcc GCC_VIDEO_VCODEC0_SYS_CLK>, 2332 <&gcc GCC_VCODEC0_AXI_CLK>; 2333 clock-names = "core", 2334 "iface", 2335 "bus", 2336 "throttle", 2337 "vcodec0_core", 2338 "vcodec0_bus"; 2339 2340 memory-region = <&pil_video_mem>; 2341 iommus = <&apps_smmu 0x860 0x0>, 2342 <&apps_smmu 0x880 0x0>, 2343 <&apps_smmu 0x861 0x04>, 2344 <&apps_smmu 0x863 0x0>, 2345 <&apps_smmu 0x804 0xe0>; 2346 2347 interconnects = <&mmnrt_virt MASTER_VIDEO_P0 RPM_ALWAYS_TAG 2348 &bimc SLAVE_EBI1 RPM_ALWAYS_TAG>, 2349 <&bimc MASTER_APPSS_PROC RPM_ACTIVE_TAG 2350 &config_noc SLAVE_VENUS_CFG RPM_ACTIVE_TAG>; 2351 interconnect-names = "video-mem", 2352 "cpu-cfg"; 2353 2354 venus_opp_table: opp-table { 2355 compatible = "operating-points-v2"; 2356 2357 opp-133333333 { 2358 opp-hz = /bits/ 64 <133333333>; 2359 required-opps = <&rpmpd_opp_low_svs>; 2360 }; 2361 2362 opp-240000000 { 2363 opp-hz = /bits/ 64 <240000000>; 2364 required-opps = <&rpmpd_opp_svs>; 2365 }; 2366 }; 2367 }; 2368 2369 wifi: wifi@c800000 { 2370 compatible = "qcom,wcn3990-wifi"; 2371 reg = <0x0 0x0c800000 0x0 0x800000>; 2372 reg-names = "membase"; 2373 memory-region = <&wlan_msa_mem>; 2374 interrupts = <GIC_SPI 358 IRQ_TYPE_LEVEL_HIGH>, 2375 <GIC_SPI 359 IRQ_TYPE_LEVEL_HIGH>, 2376 <GIC_SPI 360 IRQ_TYPE_LEVEL_HIGH>, 2377 <GIC_SPI 361 IRQ_TYPE_LEVEL_HIGH>, 2378 <GIC_SPI 362 IRQ_TYPE_LEVEL_HIGH>, 2379 <GIC_SPI 363 IRQ_TYPE_LEVEL_HIGH>, 2380 <GIC_SPI 364 IRQ_TYPE_LEVEL_HIGH>, 2381 <GIC_SPI 365 IRQ_TYPE_LEVEL_HIGH>, 2382 <GIC_SPI 366 IRQ_TYPE_LEVEL_HIGH>, 2383 <GIC_SPI 367 IRQ_TYPE_LEVEL_HIGH>, 2384 <GIC_SPI 368 IRQ_TYPE_LEVEL_HIGH>, 2385 <GIC_SPI 369 IRQ_TYPE_LEVEL_HIGH>; 2386 iommus = <&apps_smmu 0x1a0 0x1>; 2387 qcom,msa-fixed-perm; 2388 status = "disabled"; 2389 }; 2390 2391 watchdog@f017000 { 2392 compatible = "qcom,apss-wdt-qcm2290", "qcom,kpss-wdt"; 2393 reg = <0x0 0x0f017000 0x0 0x1000>; 2394 interrupts = <GIC_SPI 3 IRQ_TYPE_EDGE_RISING>, 2395 <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>; 2396 clocks = <&sleep_clk>; 2397 }; 2398 2399 apcs_glb: mailbox@f111000 { 2400 compatible = "qcom,qcm2290-apcs-hmss-global"; 2401 reg = <0x0 0x0f111000 0x0 0x1000>; 2402 #mbox-cells = <1>; 2403 }; 2404 2405 timer@f120000 { 2406 compatible = "arm,armv7-timer-mem"; 2407 reg = <0x0 0x0f120000 0x0 0x1000>; 2408 #address-cells = <1>; 2409 #size-cells = <1>; 2410 ranges = <0 0x0 0x0f121000 0x8000>; 2411 2412 frame@0 { 2413 reg = <0x0 0x1000>, 2414 <0x1000 0x1000>; 2415 interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>, 2416 <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>; 2417 frame-number = <0>; 2418 }; 2419 2420 frame@2000 { 2421 reg = <0x2000 0x1000>; 2422 interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>; 2423 frame-number = <1>; 2424 status = "disabled"; 2425 }; 2426 2427 frame@3000 { 2428 reg = <0x3000 0x1000>; 2429 interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>; 2430 frame-number = <2>; 2431 status = "disabled"; 2432 }; 2433 2434 frame@4000 { 2435 reg = <0x4000 0x1000>; 2436 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>; 2437 frame-number = <3>; 2438 status = "disabled"; 2439 }; 2440 2441 frame@5000 { 2442 reg = <0x5000 0x1000>; 2443 interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>; 2444 frame-number = <4>; 2445 status = "disabled"; 2446 }; 2447 2448 frame@6000 { 2449 reg = <0x6000 0x1000>; 2450 interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>; 2451 frame-number = <5>; 2452 status = "disabled"; 2453 }; 2454 2455 frame@7000 { 2456 reg = <0x7000 0x1000>; 2457 interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>; 2458 frame-number = <6>; 2459 status = "disabled"; 2460 }; 2461 }; 2462 2463 intc: interrupt-controller@f200000 { 2464 compatible = "arm,gic-v3"; 2465 reg = <0x0 0x0f200000 0x0 0x10000>, 2466 <0x0 0x0f300000 0x0 0x100000>; 2467 interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>; 2468 #interrupt-cells = <3>; 2469 interrupt-controller; 2470 interrupt-parent = <&intc>; 2471 #redistributor-regions = <1>; 2472 redistributor-stride = <0x0 0x20000>; 2473 }; 2474 2475 cpufreq_hw: cpufreq@f521000 { 2476 compatible = "qcom,qcm2290-cpufreq-hw", "qcom,cpufreq-hw"; 2477 reg = <0x0 0x0f521000 0x0 0x1000>; 2478 reg-names = "freq-domain0"; 2479 interrupts-extended = <&lmh_cluster 0>; 2480 interrupt-names = "dcvsh-irq-0"; 2481 clocks = <&rpmcc RPM_SMD_XO_CLK_SRC>, <&gcc GPLL0>; 2482 clock-names = "xo", "alternate"; 2483 2484 #freq-domain-cells = <1>; 2485 #clock-cells = <1>; 2486 }; 2487 2488 lmh_cluster: lmh@f550800 { 2489 compatible = "qcom,qcm2290-lmh", "qcom,sm8150-lmh"; 2490 reg = <0x0 0x0f550800 0x0 0x400>; 2491 interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>; 2492 cpus = <&cpu0>; 2493 qcom,lmh-temp-arm-millicelsius = <65000>; 2494 qcom,lmh-temp-low-millicelsius = <94500>; 2495 qcom,lmh-temp-high-millicelsius = <95000>; 2496 interrupt-controller; 2497 #interrupt-cells = <1>; 2498 }; 2499 }; 2500 2501 thermal-zones { 2502 mapss-thermal { 2503 thermal-sensors = <&tsens0 0>; 2504 2505 trips { 2506 mapss_alert0: trip-point0 { 2507 temperature = <90000>; 2508 hysteresis = <2000>; 2509 type = "passive"; 2510 }; 2511 2512 mapss_alert1: trip-point1 { 2513 temperature = <95000>; 2514 hysteresis = <2000>; 2515 type = "passive"; 2516 }; 2517 2518 mapss_crit: mapss-crit { 2519 temperature = <110000>; 2520 hysteresis = <1000>; 2521 type = "critical"; 2522 }; 2523 }; 2524 }; 2525 2526 video-thermal { 2527 thermal-sensors = <&tsens0 1>; 2528 2529 trips { 2530 video_alert0: trip-point0 { 2531 temperature = <90000>; 2532 hysteresis = <2000>; 2533 type = "passive"; 2534 }; 2535 2536 video_alert1: trip-point1 { 2537 temperature = <95000>; 2538 hysteresis = <2000>; 2539 type = "passive"; 2540 }; 2541 2542 video_crit: video-crit { 2543 temperature = <110000>; 2544 hysteresis = <1000>; 2545 type = "critical"; 2546 }; 2547 }; 2548 }; 2549 2550 wlan-thermal { 2551 thermal-sensors = <&tsens0 2>; 2552 2553 trips { 2554 wlan_alert0: trip-point0 { 2555 temperature = <90000>; 2556 hysteresis = <2000>; 2557 type = "passive"; 2558 }; 2559 2560 wlan_alert1: trip-point1 { 2561 temperature = <95000>; 2562 hysteresis = <2000>; 2563 type = "passive"; 2564 }; 2565 2566 wlan_crit: wlan-crit { 2567 temperature = <110000>; 2568 hysteresis = <1000>; 2569 type = "critical"; 2570 }; 2571 }; 2572 }; 2573 2574 cpuss0-thermal { 2575 thermal-sensors = <&tsens0 3>; 2576 2577 trips { 2578 cpuss0_alert0: trip-point0 { 2579 temperature = <90000>; 2580 hysteresis = <2000>; 2581 type = "passive"; 2582 }; 2583 2584 cpuss0_alert1: trip-point1 { 2585 temperature = <95000>; 2586 hysteresis = <2000>; 2587 type = "passive"; 2588 }; 2589 2590 cpuss0_crit: cpuss0-crit { 2591 temperature = <110000>; 2592 hysteresis = <1000>; 2593 type = "critical"; 2594 }; 2595 }; 2596 }; 2597 2598 cpuss1-thermal { 2599 thermal-sensors = <&tsens0 4>; 2600 2601 trips { 2602 cpuss1_alert0: trip-point0 { 2603 temperature = <90000>; 2604 hysteresis = <2000>; 2605 type = "passive"; 2606 }; 2607 2608 cpuss1_alert1: trip-point1 { 2609 temperature = <95000>; 2610 hysteresis = <2000>; 2611 type = "passive"; 2612 }; 2613 2614 cpuss1_crit: cpuss1-crit { 2615 temperature = <110000>; 2616 hysteresis = <1000>; 2617 type = "critical"; 2618 }; 2619 }; 2620 }; 2621 2622 mdm0-thermal { 2623 thermal-sensors = <&tsens0 5>; 2624 2625 trips { 2626 mdm0_alert0: trip-point0 { 2627 temperature = <90000>; 2628 hysteresis = <2000>; 2629 type = "passive"; 2630 }; 2631 2632 mdm0_alert1: trip-point1 { 2633 temperature = <95000>; 2634 hysteresis = <2000>; 2635 type = "passive"; 2636 }; 2637 2638 mdm0_crit: mdm0-crit { 2639 temperature = <110000>; 2640 hysteresis = <1000>; 2641 type = "critical"; 2642 }; 2643 }; 2644 }; 2645 2646 mdm1-thermal { 2647 thermal-sensors = <&tsens0 6>; 2648 2649 trips { 2650 mdm1_alert0: trip-point0 { 2651 temperature = <90000>; 2652 hysteresis = <2000>; 2653 type = "passive"; 2654 }; 2655 2656 mdm1_alert1: trip-point1 { 2657 temperature = <95000>; 2658 hysteresis = <2000>; 2659 type = "passive"; 2660 }; 2661 2662 mdm1_crit: mdm1-crit { 2663 temperature = <110000>; 2664 hysteresis = <1000>; 2665 type = "critical"; 2666 }; 2667 }; 2668 }; 2669 2670 gpu-thermal { 2671 thermal-sensors = <&tsens0 7>; 2672 2673 trips { 2674 gpu_alert0: trip-point0 { 2675 temperature = <90000>; 2676 hysteresis = <2000>; 2677 type = "passive"; 2678 }; 2679 2680 gpu_alert1: trip-point1 { 2681 temperature = <95000>; 2682 hysteresis = <2000>; 2683 type = "passive"; 2684 }; 2685 2686 gpu_crit: gpu-crit { 2687 temperature = <110000>; 2688 hysteresis = <1000>; 2689 type = "critical"; 2690 }; 2691 }; 2692 }; 2693 2694 hm-center-thermal { 2695 thermal-sensors = <&tsens0 8>; 2696 2697 trips { 2698 hm_center_alert0: trip-point0 { 2699 temperature = <90000>; 2700 hysteresis = <2000>; 2701 type = "passive"; 2702 }; 2703 2704 hm_center_alert1: trip-point1 { 2705 temperature = <95000>; 2706 hysteresis = <2000>; 2707 type = "passive"; 2708 }; 2709 2710 hm_center_crit: hm-center-crit { 2711 temperature = <110000>; 2712 hysteresis = <1000>; 2713 type = "critical"; 2714 }; 2715 }; 2716 }; 2717 2718 camera-thermal { 2719 thermal-sensors = <&tsens0 9>; 2720 2721 trips { 2722 camera_alert0: trip-point0 { 2723 temperature = <90000>; 2724 hysteresis = <2000>; 2725 type = "passive"; 2726 }; 2727 2728 camera_alert1: trip-point1 { 2729 temperature = <95000>; 2730 hysteresis = <2000>; 2731 type = "passive"; 2732 }; 2733 2734 camera_crit: camera-crit { 2735 temperature = <110000>; 2736 hysteresis = <1000>; 2737 type = "critical"; 2738 }; 2739 }; 2740 }; 2741 }; 2742 2743 timer { 2744 compatible = "arm,armv8-timer"; 2745 interrupts = <GIC_PPI 1 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, 2746 <GIC_PPI 2 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, 2747 <GIC_PPI 3 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, 2748 <GIC_PPI 0 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>; 2749 }; 2750}; 2751