1/* 2 * Copyright (c) 2020-2025, Arm Limited. All rights reserved. 3 * 4 * SPDX-License-Identifier: BSD-3-Clause 5 */ 6 7#define LIT_CAPACITY 239 8#define MID_CAPACITY 686 9#define BIG_CAPACITY 1024 10 11#define MHU_TX_COMPAT "arm,mhuv3" 12#define MHU_TX_INT_NAME "" 13 14#define MHU_RX_COMPAT "arm,mhuv3" 15#define MHU_OFFSET 0x10000 16#define MHU_MBOX_CELLS 3 17#define MHU_RX_INT_NUM 300 18#define MHU_RX_INT_NAME "combined" 19 20#define DSU_MPAM_ADDR 0x0 0x5f010000 /* 0x5f01_0000 */ 21 22#if TARGET_FLAVOUR_FVP 23#define DPU_ADDR 4000000000 24#define DPU_IRQ 579 25#endif 26 27/* If SCMI power domain control is enabled */ 28#if TC_SCMI_PD_CTRL_EN 29#define GPU_SCMI_PD_IDX (PLAT_MAX_CPUS_PER_CLUSTER + 1) 30#define DPU_SCMI_PD_IDX (PLAT_MAX_CPUS_PER_CLUSTER + 2) 31#endif /* TC_SCMI_PD_CTRL_EN */ 32 33/* Use SCMI controlled clocks */ 34#if TC_DPU_USE_SCMI_CLK 35#define DPU_CLK_ATTR1 \ 36 clocks = <&scmi_clk 0>; \ 37 clock-names = "aclk" 38 39#define DPU_CLK_ATTR2 \ 40 clocks = <&scmi_clk 1>; \ 41 clock-names = "pxclk" 42 43#define DPU_CLK_ATTR3 \ 44 clocks = <&scmi_clk 2>; \ 45 clock-names = "pxclk" \ 46/* Use fixed clocks */ 47#else /* !TC_DPU_USE_SCMI_CLK */ 48#define DPU_CLK_ATTR1 \ 49 clocks = <&dpu_aclk>; \ 50 clock-names = "aclk" 51 52#define DPU_CLK_ATTR2 \ 53 clocks = <&dpu_pixel_clk>, <&dpu_aclk>; \ 54 clock-names = "pxclk", "aclk" 55 56#define DPU_CLK_ATTR3 DPU_CLK_ATTR2 57#endif /* !TC_DPU_USE_SCMI_CLK */ 58 59/ { 60 compatible = "arm,tc"; 61 interrupt-parent = <&gic>; 62 #address-cells = <2>; 63 #size-cells = <2>; 64 65 aliases { 66 serial0 = &os_uart; 67 }; 68 69 cpus { 70 #address-cells = <1>; 71 #size-cells = <0>; 72 73 cpu-map { 74 cluster0 { 75 core0 { 76 cpu = <&CPU0>; 77 }; 78 core1 { 79 cpu = <&CPU1>; 80 }; 81 core2 { 82 cpu = <&CPU2>; 83 }; 84 core3 { 85 cpu = <&CPU3>; 86 }; 87 core4 { 88 cpu = <&CPU4>; 89 }; 90 core5 { 91 cpu = <&CPU5>; 92 }; 93 core6 { 94 cpu = <&CPU6>; 95 }; 96 core7 { 97 cpu = <&CPU7>; 98 }; 99 }; 100 }; 101 102 /* 103 * The timings below are just to demonstrate working cpuidle. 104 * These values may be inaccurate. 105 */ 106 idle-states { 107 entry-method = "psci"; 108 109 CPU_SLEEP_0: cpu-sleep-0 { 110 compatible = "arm,idle-state"; 111 arm,psci-suspend-param = <0x0010000>; 112 local-timer-stop; 113 entry-latency-us = <300>; 114 exit-latency-us = <1200>; 115 min-residency-us = <2000>; 116 }; 117 CLUSTER_SLEEP_0: cluster-sleep-0 { 118 compatible = "arm,idle-state"; 119 arm,psci-suspend-param = <0x1010000>; 120 local-timer-stop; 121 entry-latency-us = <400>; 122 exit-latency-us = <1200>; 123 min-residency-us = <2500>; 124 }; 125 }; 126 127 CPU0:cpu@0 { 128 device_type = "cpu"; 129 compatible = "arm,armv8"; 130 reg = <0x0>; 131 enable-method = "psci"; 132 clocks = <&scmi_dvfs 0>; 133 cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>; 134 capacity-dmips-mhz = <LIT_CAPACITY>; 135 }; 136 137 CPU1:cpu@100 { 138 device_type = "cpu"; 139 compatible = "arm,armv8"; 140 reg = <0x100>; 141 enable-method = "psci"; 142 clocks = <&scmi_dvfs 0>; 143 cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>; 144 capacity-dmips-mhz = <LIT_CAPACITY>; 145 }; 146 147 CPU2:cpu@200 { 148 device_type = "cpu"; 149 compatible = "arm,armv8"; 150 reg = <0x200>; 151 enable-method = "psci"; 152 cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>; 153 }; 154 155 CPU3:cpu@300 { 156 device_type = "cpu"; 157 compatible = "arm,armv8"; 158 reg = <0x300>; 159 enable-method = "psci"; 160 cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>; 161 }; 162 163 CPU4:cpu@400 { 164 device_type = "cpu"; 165 compatible = "arm,armv8"; 166 reg = <0x400>; 167 enable-method = "psci"; 168 clocks = <&scmi_dvfs 1>; 169 cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>; 170 capacity-dmips-mhz = <MID_CAPACITY>; 171 }; 172 173 CPU5:cpu@500 { 174 device_type = "cpu"; 175 compatible = "arm,armv8"; 176 reg = <0x500>; 177 enable-method = "psci"; 178 clocks = <&scmi_dvfs 1>; 179 cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>; 180 capacity-dmips-mhz = <MID_CAPACITY>; 181 }; 182 183 CPU6:cpu@600 { 184 device_type = "cpu"; 185 compatible = "arm,armv8"; 186 reg = <0x600>; 187 enable-method = "psci"; 188 cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>; 189 }; 190 191 CPU7:cpu@700 { 192 device_type = "cpu"; 193 compatible = "arm,armv8"; 194 reg = <0x700>; 195 enable-method = "psci"; 196 cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>; 197 }; 198 }; 199 200 reserved-memory { 201 #address-cells = <2>; 202 #size-cells = <2>; 203 ranges; 204 205 linux,cma { 206 compatible = "shared-dma-pool"; 207 reusable; 208 size = <0x0 0x8000000>; 209 linux,cma-default; 210 }; 211 212 optee { 213 compatible = "restricted-dma-pool"; 214 reg = <0x0 TC_NS_OPTEE_BASE 0x0 TC_NS_OPTEE_SIZE>; 215 }; 216 217 }; 218 219 memory { 220 device_type = "memory"; 221 reg = <0x0 TC_NS_DRAM1_BASE 0x0 TC_NS_DRAM1_SIZE>, 222 <HI(PLAT_ARM_DRAM2_BASE) LO(PLAT_ARM_DRAM2_BASE) 223 HI(TC_NS_DRAM2_SIZE) LO(TC_NS_DRAM2_SIZE)>; 224 }; 225 226 psci { 227 compatible = "arm,psci-1.0", "arm,psci-0.2"; 228 method = "smc"; 229 }; 230 231 cpu-pmu-little { 232 compatible = LIT_CPU_PMU_COMPATIBLE; 233 interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH &ppi_partition_little>; 234 status = "okay"; 235 }; 236 237 cpu-pmu-mid { 238 compatible = MID_CPU_PMU_COMPATIBLE; 239 interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH &ppi_partition_mid>; 240 status = "okay"; 241 }; 242 243 cpu-pmu-big { 244 compatible = BIG_CPU_PMU_COMPATIBLE; 245 interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH &ppi_partition_big>; 246 status = "okay"; 247 }; 248 249 sram: sram@6000000 { 250 compatible = "mmio-sram"; 251 reg = <0x0 PLAT_ARM_NSRAM_BASE 0x0 PLAT_ARM_NSRAM_SIZE>; 252 253 #address-cells = <1>; 254 #size-cells = <1>; 255 ranges = <0 0x0 PLAT_ARM_NSRAM_BASE PLAT_ARM_NSRAM_SIZE>; 256 257 cpu_scp_scmi_a2p: scp-shmem@0 { 258 compatible = "arm,scmi-shmem"; 259 reg = <0x0 0x80>; 260 }; 261 }; 262 263 mbox_db_rx: mhu@MHU_RX_ADDR { 264 compatible = MHU_RX_COMPAT; 265 reg = <0x0 ADDRESSIFY(MHU_RX_ADDR) 0x0 MHU_OFFSET>; 266 clocks = <&soc_refclk>; 267 clock-names = "apb_pclk"; 268 #mbox-cells = <MHU_MBOX_CELLS>; 269 interrupts = <GIC_SPI MHU_RX_INT_NUM IRQ_TYPE_LEVEL_HIGH 0>; 270 interrupt-names = MHU_RX_INT_NAME; 271 }; 272 273 mbox_db_tx: mhu@MHU_TX_ADDR { 274 compatible = MHU_TX_COMPAT; 275 reg = <0x0 ADDRESSIFY(MHU_TX_ADDR) 0x0 MHU_OFFSET>; 276 clocks = <&soc_refclk>; 277 clock-names = "apb_pclk"; 278 #mbox-cells = <MHU_MBOX_CELLS>; 279 interrupt-names = MHU_TX_INT_NAME; 280 }; 281 282 firmware { 283 scmi { 284 compatible = "arm,scmi"; 285 mbox-names = "tx", "rx"; 286 #address-cells = <1>; 287 #size-cells = <0>; 288 289#if TC_SCMI_PD_CTRL_EN 290 scmi_devpd: protocol@11 { 291 reg = <0x11>; 292 #power-domain-cells = <1>; 293 }; 294#endif /* TC_SCMI_PD_CTRL_EN */ 295 296 scmi_dvfs: protocol@13 { 297 reg = <0x13>; 298 #clock-cells = <1>; 299 }; 300 301 scmi_clk: protocol@14 { 302 reg = <0x14>; 303 #clock-cells = <1>; 304 }; 305 }; 306 }; 307 308 gic: interrupt-controller@GIC_CTRL_ADDR { 309 compatible = "arm,gic-v3"; 310 #address-cells = <2>; 311 #interrupt-cells = <4>; 312 #size-cells = <2>; 313 ranges; 314 interrupt-controller; 315 reg = <0x0 0x30000000 0 0x10000>, /* GICD */ 316 <0x0 0x30080000 0 GIC_GICR_OFFSET>; /* GICR */ 317 interrupts = <GIC_PPI 0x9 IRQ_TYPE_LEVEL_LOW 0>; 318 }; 319 320 timer { 321 compatible = "arm,armv8-timer"; 322 interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW 0>, 323 <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW 0>, 324 <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW 0>, 325 <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW 0>; 326 }; 327 328 spe-pmu-mid { 329 compatible = "arm,statistical-profiling-extension-v1"; 330 interrupts = <GIC_PPI 1 IRQ_TYPE_LEVEL_HIGH &ppi_partition_mid>; 331 status = "disabled"; 332 }; 333 334 spe-pmu-big { 335 compatible = "arm,statistical-profiling-extension-v1"; 336 interrupts = <GIC_PPI 1 IRQ_TYPE_LEVEL_HIGH &ppi_partition_big>; 337 status = "disabled"; 338 }; 339 340 soc_refclk: refclk { 341 compatible = "fixed-clock"; 342 #clock-cells = <0>; 343 clock-frequency = <1000000000>; 344 clock-output-names = "apb_pclk"; 345 }; 346 347 soc_refclk60mhz: refclk60mhz { 348 compatible = "fixed-clock"; 349 #clock-cells = <0>; 350 clock-frequency = <60000000>; 351 clock-output-names = "iofpga_clk"; 352 }; 353 354 soc_uartclk: uartclk { 355 compatible = "fixed-clock"; 356 #clock-cells = <0>; 357 clock-frequency = <TC_UARTCLK>; 358 clock-output-names = "uartclk"; 359 }; 360 361 /* soc_uart0 on FPGA, ap_ns_uart on FVP */ 362 os_uart: serial@2a400000 { 363 compatible = "arm,pl011", "arm,primecell"; 364 reg = <0x0 0x2A400000 0x0 UART_OFFSET>; 365 interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH 0>; 366 clocks = <&soc_uartclk>, <&soc_refclk>; 367 clock-names = "uartclk", "apb_pclk"; 368 status = "okay"; 369 }; 370 371#if !TC_DPU_USE_SCMI_CLK 372 dpu_aclk: dpu_aclk { 373 compatible = "fixed-clock"; 374 #clock-cells = <0>; 375 clock-frequency = <LCD_TIMING_CLK>; 376 clock-output-names = "fpga:dpu_aclk"; 377 }; 378 379 dpu_pixel_clk: dpu-pixel-clk { 380 compatible = "fixed-clock"; 381 #clock-cells = <0>; 382 clock-frequency = <LCD_TIMING_CLK>; 383 clock-output-names = "pxclk"; 384 }; 385#endif /* !TC_DPU_USE_SCMI_CLK */ 386 387#if TC_DPU_USE_SIMPLE_PANEL 388 vpanel { 389 compatible = "panel-dpi"; 390 post-init-providers = <&pl0>; 391 port { 392 lcd_in: endpoint { 393 remote-endpoint = <&dp_pl0_out0>; 394 }; 395 }; 396 397 panel-timing { 398 LCD_TIMING; 399 }; 400 }; 401 402#else 403 vencoder { 404 compatible = "drm,virtual-encoder"; 405 port { 406 lcd_in: endpoint { 407 remote-endpoint = <&dp_pl0_out0>; 408 }; 409 }; 410 411 display-timings { 412 timing-panel { 413 LCD_TIMING; 414 }; 415 }; 416 417 }; 418#endif 419 ethernet: ethernet@ETHERNET_ADDR { 420 reg = <0x0 ADDRESSIFY(ETHERNET_ADDR) 0x0 0x10000>; 421 interrupts = <GIC_SPI ETHERNET_INT IRQ_TYPE_LEVEL_HIGH 0>; 422 423 reg-io-width = <2>; 424 smsc,irq-push-pull; 425 }; 426 427 bp_clock24mhz: clock24mhz { 428 compatible = "fixed-clock"; 429 #clock-cells = <0>; 430 clock-frequency = <24000000>; 431 clock-output-names = "bp:clock24mhz"; 432 }; 433 434 sysreg: sysreg@SYS_REGS_ADDR { 435 compatible = "arm,vexpress-sysreg"; 436 reg = <0x0 ADDRESSIFY(SYS_REGS_ADDR) 0x0 0x1000>; 437 gpio-controller; 438 #gpio-cells = <2>; 439 }; 440 441 fixed_3v3: v2m-3v3 { 442 compatible = "regulator-fixed"; 443 regulator-name = "3V3"; 444 regulator-min-microvolt = <3300000>; 445 regulator-max-microvolt = <3300000>; 446 regulator-always-on; 447 }; 448 449 mmci: mmci@MMC_ADDR { 450 compatible = "arm,pl180", "arm,primecell"; 451 reg = <0x0 ADDRESSIFY(MMC_ADDR) 0x0 0x1000>; 452 interrupts = <GIC_SPI MMC_INT_0 IRQ_TYPE_LEVEL_HIGH 0>, 453 <GIC_SPI MMC_INT_1 IRQ_TYPE_LEVEL_HIGH 0>; 454 wp-gpios = <&sysreg 1 0>; 455 bus-width = <4>; 456 max-frequency = <25000000>; 457 vmmc-supply = <&fixed_3v3>; 458 clocks = <&bp_clock24mhz>, <&bp_clock24mhz>; 459 clock-names = "mclk", "apb_pclk"; 460 }; 461 462 gpu_clk: gpu_clk { 463 compatible = "fixed-clock"; 464 #clock-cells = <0>; 465 clock-frequency = <1000000000>; 466 }; 467 468 gpu_core_clk: gpu_core_clk { 469 compatible = "fixed-clock"; 470 #clock-cells = <0>; 471 clock-frequency = <1000000000>; 472 }; 473 474 gpu: gpu@2d000000 { 475 compatible = "arm,mali-midgard"; 476 reg = <0x0 0x2d000000 0x0 0x200000>; 477 clocks = <&gpu_core_clk>; 478 clock-names = "shadercores"; 479#if TC_SCMI_PD_CTRL_EN 480 power-domains = <&scmi_devpd GPU_SCMI_PD_IDX>; 481 scmi-perf-domain = <3>; 482#endif /* TC_SCMI_PD_CTRL_EN */ 483 484 pbha { 485 int-id-override = <0 0x22>, <2 0x23>, <4 0x23>, <7 0x22>, 486 <8 0x22>, <9 0x22>, <10 0x22>, <11 0x22>, 487 <12 0x22>, <13 0x22>, <16 0x22>, <17 0x32>, 488 <18 0x32>, <19 0x22>, <20 0x22>, <21 0x32>, 489 <22 0x32>, <24 0x22>, <28 0x32>; 490 propagate-bits = <0x0f>; 491 }; 492 }; 493 494 power_model_simple { 495 /* 496 * Numbers used are irrelevant to Titan, 497 * it helps suppressing the kernel warnings. 498 */ 499 compatible = "arm,mali-simple-power-model"; 500 static-coefficient = <2427750>; 501 dynamic-coefficient = <4687>; 502 ts = <20000 2000 (-20) 2>; 503 thermal-zone = ""; 504 }; 505 506 smmu_600: smmu@2ce00000 { 507 compatible = "arm,smmu-v3"; 508 reg = <0 0x2ce00000 0 0x20000>; 509 interrupts = <GIC_SPI 75 IRQ_TYPE_EDGE_RISING 0>, 510 <GIC_SPI 74 IRQ_TYPE_EDGE_RISING 0>, 511 <GIC_SPI 76 IRQ_TYPE_EDGE_RISING 0>, 512 <GIC_SPI 77 IRQ_TYPE_EDGE_RISING 0>; 513 interrupt-names = "eventq", "priq", "cmdq-sync", "gerror"; 514 #iommu-cells = <1>; 515 status = "disabled"; 516 }; 517 518 smmu_700: iommu@3f000000 { 519 #iommu-cells = <1>; 520 compatible = "arm,smmu-v3"; 521 reg = <0x0 0x3f000000 0x0 0x5000000>; 522 interrupts = <GIC_SPI 228 IRQ_TYPE_EDGE_RISING 0>, 523 <GIC_SPI 229 IRQ_TYPE_EDGE_RISING 0>, 524 <GIC_SPI 230 IRQ_TYPE_EDGE_RISING 0>; 525 interrupt-names = "eventq", "cmdq-sync", "gerror"; 526 dma-coherent; 527 status = "disabled"; 528 }; 529 530 smmu_700_dpu: iommu@4002a00000 { 531 #iommu-cells = <1>; 532 compatible = "arm,smmu-v3"; 533 reg = <HI(0x4002a00000) LO(0x4002a00000) 0x0 0x5000000>; 534 interrupts = <GIC_SPI 481 IRQ_TYPE_EDGE_RISING 0>, 535 <GIC_SPI 482 IRQ_TYPE_EDGE_RISING 0>, 536 <GIC_SPI 483 IRQ_TYPE_EDGE_RISING 0>; 537 interrupt-names = "eventq", "cmdq-sync", "gerror"; 538 dma-coherent; 539 status = "disabled"; 540 }; 541 542 dp0: display@DPU_ADDR { 543 #address-cells = <1>; 544 #size-cells = <0>; 545 compatible = "arm,mali-d71"; 546 reg = <HI(ADDRESSIFY(DPU_ADDR)) LO(ADDRESSIFY(DPU_ADDR)) 0 0x20000>; 547 interrupts = <GIC_SPI DPU_IRQ IRQ_TYPE_LEVEL_HIGH 0>; 548 interrupt-names = "DPU"; 549 DPU_CLK_ATTR1; 550 551 pl0: pipeline@0 { 552 reg = <0>; 553 DPU_CLK_ATTR2; 554 pl_id = <0>; 555 ports { 556 #address-cells = <1>; 557 #size-cells = <0>; 558 port@0 { 559 reg = <0>; 560 dp_pl0_out0: endpoint { 561 remote-endpoint = <&lcd_in>; 562 }; 563 }; 564 }; 565 }; 566 567 pl1: pipeline@1 { 568 reg = <1>; 569 DPU_CLK_ATTR3; 570 pl_id = <1>; 571 ports { 572 #address-cells = <1>; 573 #size-cells = <0>; 574 port@0 { 575 reg = <0>; 576 }; 577 }; 578 }; 579 }; 580 581 /* 582 * L3 cache in the DSU is the Memory System Component (MSC) 583 * The MPAM registers are accessed through utility bus in the DSU 584 */ 585 dsu-msc0 { 586 compatible = "arm,mpam-msc"; 587 reg = <DSU_MPAM_ADDR 0x0 0x2000>; 588 }; 589 590 ete0 { 591 compatible = "arm,embedded-trace-extension"; 592 cpu = <&CPU0>; 593 }; 594 595 ete1 { 596 compatible = "arm,embedded-trace-extension"; 597 cpu = <&CPU1>; 598 }; 599 600 ete2 { 601 compatible = "arm,embedded-trace-extension"; 602 cpu = <&CPU2>; 603 }; 604 605 ete3 { 606 compatible = "arm,embedded-trace-extension"; 607 cpu = <&CPU3>; 608 }; 609 610 ete4 { 611 compatible = "arm,embedded-trace-extension"; 612 cpu = <&CPU4>; 613 }; 614 615 ete5 { 616 compatible = "arm,embedded-trace-extension"; 617 cpu = <&CPU5>; 618 }; 619 620 ete6 { 621 compatible = "arm,embedded-trace-extension"; 622 cpu = <&CPU6>; 623 }; 624 625 ete7 { 626 compatible = "arm,embedded-trace-extension"; 627 cpu = <&CPU7>; 628 }; 629 630 trbe { 631 compatible = "arm,trace-buffer-extension"; 632 interrupts = <GIC_PPI 2 IRQ_TYPE_LEVEL_LOW 0>; 633 }; 634 635 trusty { 636 #size-cells = <0x02>; 637 #address-cells = <0x02>; 638 ranges = <0x00>; 639 compatible = "android,trusty-v1"; 640 641 virtio { 642 compatible = "android,trusty-virtio-v1"; 643 }; 644 645 test { 646 compatible = "android,trusty-test-v1"; 647 }; 648 649 log { 650 compatible = "android,trusty-log-v1"; 651 }; 652 653 irq { 654 ipi-range = <0x08 0x0f 0x08>; 655 interrupt-ranges = <0x00 0x0f 0x00 0x10 0x1f 0x01 0x20 0x3f 0x02>; 656 interrupt-templates = <0x01 0x00 0x8001 0x01 0x01 0x04 0x8001 0x01 0x00 0x04>; 657 compatible = "android,trusty-irq-v1"; 658 }; 659 }; 660 661 /* used in U-boot, Linux doesn't care */ 662 arm_ffa { 663 compatible = "arm,ffa"; 664 method = "smc"; 665 }; 666}; 667 668/ { 669 cpus { 670 CPU2:cpu@200 { 671 clocks = <&scmi_dvfs 1>; 672 capacity-dmips-mhz = <MID_CAPACITY>; 673 }; 674 675 CPU3:cpu@300 { 676 clocks = <&scmi_dvfs 1>; 677 capacity-dmips-mhz = <MID_CAPACITY>; 678 }; 679 680 CPU6:cpu@600 { 681 clocks = <&scmi_dvfs 2>; 682 capacity-dmips-mhz = <BIG_CAPACITY>; 683 }; 684 685 CPU7:cpu@700 { 686 clocks = <&scmi_dvfs 2>; 687 capacity-dmips-mhz = <BIG_CAPACITY>; 688 }; 689 }; 690 691 rse_mbox_db_rx: mhu@RSE_MHU_RX_ADDR { 692 compatible = MHU_RX_COMPAT; 693 reg = <0x0 ADDRESSIFY(RSE_MHU_RX_ADDR) 0x0 MHU_OFFSET>; 694 clocks = <&soc_refclk>; 695 clock-names = "apb_pclk"; 696 #mbox-cells = <MHU_MBOX_CELLS>; 697 interrupts = <GIC_SPI 313 IRQ_TYPE_LEVEL_HIGH 0>; 698 interrupt-names = MHU_RX_INT_NAME; 699#if TARGET_FLAVOUR_FPGA 700 status = "disabled"; 701#endif 702 }; 703 704 rse_mbox_db_tx: mhu@RSE_MHU_TX_ADDR { 705 compatible = MHU_TX_COMPAT; 706 reg = <0x0 ADDRESSIFY(RSE_MHU_TX_ADDR) 0x0 MHU_OFFSET>; 707 clocks = <&soc_refclk>; 708 clock-names = "apb_pclk"; 709 #mbox-cells = <MHU_MBOX_CELLS>; 710 interrupt-names = MHU_TX_INT_NAME; 711#if TARGET_FLAVOUR_FPGA 712 status = "disabled"; 713#endif 714 }; 715 716 gic: interrupt-controller@GIC_CTRL_ADDR { 717 ppi-partitions { 718 ppi_partition_little: interrupt-partition-0 { 719 affinity = <&CPU0>, <&CPU1>; 720 }; 721 722 ppi_partition_mid: interrupt-partition-1 { 723 affinity = <&CPU2>, <&CPU3>, <&CPU4>, <&CPU5>; 724 }; 725 726 ppi_partition_big: interrupt-partition-2 { 727 affinity = <&CPU6>, <&CPU7>; 728 }; 729 }; 730 }; 731 732 sram: sram@6000000 { 733 cpu_scp_scmi_p2a: scp-shmem@80 { 734 compatible = "arm,scmi-shmem"; 735 reg = <0x80 0x80>; 736 }; 737 }; 738 739 firmware { 740 scmi { 741 mboxes = <&mbox_db_tx 0 0 0 &mbox_db_rx 0 0 0 &mbox_db_rx 0 0 1>; 742 shmem = <&cpu_scp_scmi_a2p &cpu_scp_scmi_p2a>; 743 }; 744 745 rse { 746 compatible = "arm,rse"; 747 mbox-names = "tx", "rx"; 748 mboxes = <&rse_mbox_db_tx 0 0 0>, <&rse_mbox_db_rx 0 0 0>; 749#if TARGET_FLAVOUR_FPGA 750 status = "disabled"; 751#endif 752 }; 753 }; 754 755 dsu-pmu { 756 compatible = "arm,dsu-pmu"; 757 cpus = <&CPU0>, <&CPU1>, <&CPU2>, <&CPU3>, <&CPU4>, <&CPU5>, <&CPU6>, <&CPU7>; 758 }; 759 760 cs-pmu@0 { 761 compatible = "arm,coresight-pmu"; 762 reg = <0x0 MCN_PMU_ADDR(0) 0x0 0xffc>; 763 }; 764 765 cs-pmu@1 { 766 compatible = "arm,coresight-pmu"; 767 reg = <0x0 MCN_PMU_ADDR(1) 0x0 0xffc>; 768 }; 769 770 cs-pmu@2 { 771 compatible = "arm,coresight-pmu"; 772 reg = <0x0 MCN_PMU_ADDR(2) 0x0 0xffc>; 773 }; 774 775 cs-pmu@3 { 776 compatible = "arm,coresight-pmu"; 777 reg = <0x0 MCN_PMU_ADDR(3) 0x0 0xffc>; 778 }; 779}; 780