1b3a9737cSLeo Yan/* 2*8de6021bSRyan Everett * Copyright (c) 2020-2025, Arm Limited. All rights reserved. 3b3a9737cSLeo Yan * 4b3a9737cSLeo Yan * SPDX-License-Identifier: BSD-3-Clause 5b3a9737cSLeo Yan */ 6b3a9737cSLeo Yan 7*8de6021bSRyan Everett#define LIT_CAPACITY 239 8*8de6021bSRyan Everett#define MID_CAPACITY 686 9*8de6021bSRyan Everett#define BIG_CAPACITY 1024 10*8de6021bSRyan Everett 11*8de6021bSRyan Everett#define MHU_TX_COMPAT "arm,mhuv3" 12*8de6021bSRyan Everett#define MHU_TX_INT_NAME "" 13*8de6021bSRyan Everett 14*8de6021bSRyan Everett#define MHU_RX_COMPAT "arm,mhuv3" 15*8de6021bSRyan Everett#define MHU_OFFSET 0x10000 16*8de6021bSRyan Everett#define MHU_MBOX_CELLS 3 17*8de6021bSRyan Everett#define MHU_RX_INT_NUM 300 18*8de6021bSRyan Everett#define MHU_RX_INT_NAME "combined" 19*8de6021bSRyan Everett 20*8de6021bSRyan Everett#define DSU_MPAM_ADDR 0x0 0x5f010000 /* 0x5f01_0000 */ 21*8de6021bSRyan Everett 22*8de6021bSRyan Everett#if TARGET_FLAVOUR_FVP 23*8de6021bSRyan Everett#define DPU_ADDR 4000000000 24*8de6021bSRyan Everett#define DPU_IRQ 579 25*8de6021bSRyan Everett#endif 26*8de6021bSRyan Everett 2779c6ede0SLeo Yan/* If SCMI power domain control is enabled */ 2879c6ede0SLeo Yan#if TC_SCMI_PD_CTRL_EN 2979c6ede0SLeo Yan#define GPU_SCMI_PD_IDX (PLAT_MAX_CPUS_PER_CLUSTER + 1) 3079c6ede0SLeo Yan#define DPU_SCMI_PD_IDX (PLAT_MAX_CPUS_PER_CLUSTER + 2) 3179c6ede0SLeo Yan#endif /* TC_SCMI_PD_CTRL_EN */ 3279c6ede0SLeo Yan 3379c6ede0SLeo Yan/* Use SCMI controlled clocks */ 3479c6ede0SLeo Yan#if TC_DPU_USE_SCMI_CLK 3579c6ede0SLeo Yan#define DPU_CLK_ATTR1 \ 3679c6ede0SLeo Yan clocks = <&scmi_clk 0>; \ 3779c6ede0SLeo Yan clock-names = "aclk" 3879c6ede0SLeo Yan 3979c6ede0SLeo Yan#define DPU_CLK_ATTR2 \ 4079c6ede0SLeo Yan clocks = <&scmi_clk 1>; \ 4179c6ede0SLeo Yan clock-names = "pxclk" 4279c6ede0SLeo Yan 4379c6ede0SLeo Yan#define DPU_CLK_ATTR3 \ 4479c6ede0SLeo Yan clocks = <&scmi_clk 2>; \ 4579c6ede0SLeo Yan clock-names = "pxclk" \ 4679c6ede0SLeo Yan/* Use fixed clocks */ 4779c6ede0SLeo Yan#else /* !TC_DPU_USE_SCMI_CLK */ 4879c6ede0SLeo Yan#define DPU_CLK_ATTR1 \ 4979c6ede0SLeo Yan clocks = <&dpu_aclk>; \ 5079c6ede0SLeo Yan clock-names = "aclk" 5179c6ede0SLeo Yan 5279c6ede0SLeo Yan#define DPU_CLK_ATTR2 \ 5379c6ede0SLeo Yan clocks = <&dpu_pixel_clk>, <&dpu_aclk>; \ 5479c6ede0SLeo Yan clock-names = "pxclk", "aclk" 5579c6ede0SLeo Yan 5679c6ede0SLeo Yan#define DPU_CLK_ATTR3 DPU_CLK_ATTR2 5779c6ede0SLeo Yan#endif /* !TC_DPU_USE_SCMI_CLK */ 58b3a9737cSLeo Yan 59b3a9737cSLeo Yan/ { 60b3a9737cSLeo Yan compatible = "arm,tc"; 61b3a9737cSLeo Yan interrupt-parent = <&gic>; 62b3a9737cSLeo Yan #address-cells = <2>; 63b3a9737cSLeo Yan #size-cells = <2>; 64b3a9737cSLeo Yan 65b3a9737cSLeo Yan aliases { 66b3a9737cSLeo Yan serial0 = &os_uart; 67b3a9737cSLeo Yan }; 68b3a9737cSLeo Yan 69b3a9737cSLeo Yan cpus { 70b3a9737cSLeo Yan #address-cells = <1>; 71b3a9737cSLeo Yan #size-cells = <0>; 72b3a9737cSLeo Yan 73b3a9737cSLeo Yan cpu-map { 74b3a9737cSLeo Yan cluster0 { 75b3a9737cSLeo Yan core0 { 76b3a9737cSLeo Yan cpu = <&CPU0>; 77b3a9737cSLeo Yan }; 78b3a9737cSLeo Yan core1 { 79b3a9737cSLeo Yan cpu = <&CPU1>; 80b3a9737cSLeo Yan }; 81b3a9737cSLeo Yan core2 { 82b3a9737cSLeo Yan cpu = <&CPU2>; 83b3a9737cSLeo Yan }; 84b3a9737cSLeo Yan core3 { 85b3a9737cSLeo Yan cpu = <&CPU3>; 86b3a9737cSLeo Yan }; 87b3a9737cSLeo Yan core4 { 88b3a9737cSLeo Yan cpu = <&CPU4>; 89b3a9737cSLeo Yan }; 90b3a9737cSLeo Yan core5 { 91b3a9737cSLeo Yan cpu = <&CPU5>; 92b3a9737cSLeo Yan }; 93b3a9737cSLeo Yan core6 { 94b3a9737cSLeo Yan cpu = <&CPU6>; 95b3a9737cSLeo Yan }; 96b3a9737cSLeo Yan core7 { 97b3a9737cSLeo Yan cpu = <&CPU7>; 98b3a9737cSLeo Yan }; 99b3a9737cSLeo Yan }; 100b3a9737cSLeo Yan }; 101b3a9737cSLeo Yan 102b3a9737cSLeo Yan /* 103b3a9737cSLeo Yan * The timings below are just to demonstrate working cpuidle. 104b3a9737cSLeo Yan * These values may be inaccurate. 105b3a9737cSLeo Yan */ 106b3a9737cSLeo Yan idle-states { 107b3a9737cSLeo Yan entry-method = "psci"; 108b3a9737cSLeo Yan 109b3a9737cSLeo Yan CPU_SLEEP_0: cpu-sleep-0 { 110b3a9737cSLeo Yan compatible = "arm,idle-state"; 111b3a9737cSLeo Yan arm,psci-suspend-param = <0x0010000>; 112b3a9737cSLeo Yan local-timer-stop; 113b3a9737cSLeo Yan entry-latency-us = <300>; 114b3a9737cSLeo Yan exit-latency-us = <1200>; 115b3a9737cSLeo Yan min-residency-us = <2000>; 116b3a9737cSLeo Yan }; 117b3a9737cSLeo Yan CLUSTER_SLEEP_0: cluster-sleep-0 { 118b3a9737cSLeo Yan compatible = "arm,idle-state"; 119b3a9737cSLeo Yan arm,psci-suspend-param = <0x1010000>; 120b3a9737cSLeo Yan local-timer-stop; 121b3a9737cSLeo Yan entry-latency-us = <400>; 122b3a9737cSLeo Yan exit-latency-us = <1200>; 123b3a9737cSLeo Yan min-residency-us = <2500>; 124b3a9737cSLeo Yan }; 125b3a9737cSLeo Yan }; 126b3a9737cSLeo Yan 127b3a9737cSLeo Yan CPU0:cpu@0 { 128b3a9737cSLeo Yan device_type = "cpu"; 129b3a9737cSLeo Yan compatible = "arm,armv8"; 130b3a9737cSLeo Yan reg = <0x0>; 131b3a9737cSLeo Yan enable-method = "psci"; 132b3a9737cSLeo Yan clocks = <&scmi_dvfs 0>; 133b3a9737cSLeo Yan cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>; 134b3a9737cSLeo Yan capacity-dmips-mhz = <LIT_CAPACITY>; 135b3a9737cSLeo Yan }; 136b3a9737cSLeo Yan 137b3a9737cSLeo Yan CPU1:cpu@100 { 138b3a9737cSLeo Yan device_type = "cpu"; 139b3a9737cSLeo Yan compatible = "arm,armv8"; 140b3a9737cSLeo Yan reg = <0x100>; 141b3a9737cSLeo Yan enable-method = "psci"; 142b3a9737cSLeo Yan clocks = <&scmi_dvfs 0>; 143b3a9737cSLeo Yan cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>; 144b3a9737cSLeo Yan capacity-dmips-mhz = <LIT_CAPACITY>; 145b3a9737cSLeo Yan }; 146b3a9737cSLeo Yan 147b3a9737cSLeo Yan CPU2:cpu@200 { 148b3a9737cSLeo Yan device_type = "cpu"; 149b3a9737cSLeo Yan compatible = "arm,armv8"; 150b3a9737cSLeo Yan reg = <0x200>; 151b3a9737cSLeo Yan enable-method = "psci"; 152b3a9737cSLeo Yan cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>; 153b3a9737cSLeo Yan }; 154b3a9737cSLeo Yan 155b3a9737cSLeo Yan CPU3:cpu@300 { 156b3a9737cSLeo Yan device_type = "cpu"; 157b3a9737cSLeo Yan compatible = "arm,armv8"; 158b3a9737cSLeo Yan reg = <0x300>; 159b3a9737cSLeo Yan enable-method = "psci"; 160b3a9737cSLeo Yan cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>; 161b3a9737cSLeo Yan }; 162b3a9737cSLeo Yan 163b3a9737cSLeo Yan CPU4:cpu@400 { 164b3a9737cSLeo Yan device_type = "cpu"; 165b3a9737cSLeo Yan compatible = "arm,armv8"; 166b3a9737cSLeo Yan reg = <0x400>; 167b3a9737cSLeo Yan enable-method = "psci"; 168b3a9737cSLeo Yan clocks = <&scmi_dvfs 1>; 169b3a9737cSLeo Yan cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>; 170b3a9737cSLeo Yan capacity-dmips-mhz = <MID_CAPACITY>; 171b3a9737cSLeo Yan }; 172b3a9737cSLeo Yan 173b3a9737cSLeo Yan CPU5:cpu@500 { 174b3a9737cSLeo Yan device_type = "cpu"; 175b3a9737cSLeo Yan compatible = "arm,armv8"; 176b3a9737cSLeo Yan reg = <0x500>; 177b3a9737cSLeo Yan enable-method = "psci"; 178b3a9737cSLeo Yan clocks = <&scmi_dvfs 1>; 179b3a9737cSLeo Yan cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>; 180b3a9737cSLeo Yan capacity-dmips-mhz = <MID_CAPACITY>; 181b3a9737cSLeo Yan }; 182b3a9737cSLeo Yan 183b3a9737cSLeo Yan CPU6:cpu@600 { 184b3a9737cSLeo Yan device_type = "cpu"; 185b3a9737cSLeo Yan compatible = "arm,armv8"; 186b3a9737cSLeo Yan reg = <0x600>; 187b3a9737cSLeo Yan enable-method = "psci"; 188b3a9737cSLeo Yan cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>; 189b3a9737cSLeo Yan }; 190b3a9737cSLeo Yan 191b3a9737cSLeo Yan CPU7:cpu@700 { 192b3a9737cSLeo Yan device_type = "cpu"; 193b3a9737cSLeo Yan compatible = "arm,armv8"; 194b3a9737cSLeo Yan reg = <0x700>; 195b3a9737cSLeo Yan enable-method = "psci"; 196b3a9737cSLeo Yan cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>; 197b3a9737cSLeo Yan }; 198b3a9737cSLeo Yan }; 199b3a9737cSLeo Yan 200b3a9737cSLeo Yan reserved-memory { 201b3a9737cSLeo Yan #address-cells = <2>; 202b3a9737cSLeo Yan #size-cells = <2>; 203b3a9737cSLeo Yan ranges; 204b3a9737cSLeo Yan 205b3a9737cSLeo Yan linux,cma { 206b3a9737cSLeo Yan compatible = "shared-dma-pool"; 207b3a9737cSLeo Yan reusable; 208b3a9737cSLeo Yan size = <0x0 0x8000000>; 209b3a9737cSLeo Yan linux,cma-default; 210b3a9737cSLeo Yan }; 211b3a9737cSLeo Yan 212b3a9737cSLeo Yan optee { 213b3a9737cSLeo Yan compatible = "restricted-dma-pool"; 214b3a9737cSLeo Yan reg = <0x0 TC_NS_OPTEE_BASE 0x0 TC_NS_OPTEE_SIZE>; 215b3a9737cSLeo Yan }; 216b3a9737cSLeo Yan 217b3a9737cSLeo Yan }; 218b3a9737cSLeo Yan 219b3a9737cSLeo Yan memory { 220b3a9737cSLeo Yan device_type = "memory"; 221b3a9737cSLeo Yan reg = <0x0 TC_NS_DRAM1_BASE 0x0 TC_NS_DRAM1_SIZE>, 222b3a9737cSLeo Yan <HI(PLAT_ARM_DRAM2_BASE) LO(PLAT_ARM_DRAM2_BASE) 223b3a9737cSLeo Yan HI(TC_NS_DRAM2_SIZE) LO(TC_NS_DRAM2_SIZE)>; 224b3a9737cSLeo Yan }; 225b3a9737cSLeo Yan 226b3a9737cSLeo Yan psci { 227b3a9737cSLeo Yan compatible = "arm,psci-1.0", "arm,psci-0.2"; 228b3a9737cSLeo Yan method = "smc"; 229b3a9737cSLeo Yan }; 230b3a9737cSLeo Yan 2317aca660cSJagdish Gediya cpu-pmu-little { 2327aca660cSJagdish Gediya compatible = LIT_CPU_PMU_COMPATIBLE; 2337aca660cSJagdish Gediya interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH &ppi_partition_little>; 2347aca660cSJagdish Gediya status = "okay"; 2357aca660cSJagdish Gediya }; 2367aca660cSJagdish Gediya 2377aca660cSJagdish Gediya cpu-pmu-mid { 2387aca660cSJagdish Gediya compatible = MID_CPU_PMU_COMPATIBLE; 2397aca660cSJagdish Gediya interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH &ppi_partition_mid>; 2407aca660cSJagdish Gediya status = "okay"; 2417aca660cSJagdish Gediya }; 2427aca660cSJagdish Gediya 2437aca660cSJagdish Gediya cpu-pmu-big { 2447aca660cSJagdish Gediya compatible = BIG_CPU_PMU_COMPATIBLE; 2457aca660cSJagdish Gediya interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH &ppi_partition_big>; 2467aca660cSJagdish Gediya status = "okay"; 247b3a9737cSLeo Yan }; 248b3a9737cSLeo Yan 249b3a9737cSLeo Yan sram: sram@6000000 { 250b3a9737cSLeo Yan compatible = "mmio-sram"; 251b3a9737cSLeo Yan reg = <0x0 PLAT_ARM_NSRAM_BASE 0x0 PLAT_ARM_NSRAM_SIZE>; 252b3a9737cSLeo Yan 253b3a9737cSLeo Yan #address-cells = <1>; 254b3a9737cSLeo Yan #size-cells = <1>; 255b3a9737cSLeo Yan ranges = <0 0x0 PLAT_ARM_NSRAM_BASE PLAT_ARM_NSRAM_SIZE>; 256b3a9737cSLeo Yan 257f2596ff1SBoyan Karatotev cpu_scp_scmi_a2p: scp-shmem@0 { 258b3a9737cSLeo Yan compatible = "arm,scmi-shmem"; 259b3a9737cSLeo Yan reg = <0x0 0x80>; 260b3a9737cSLeo Yan }; 261b3a9737cSLeo Yan }; 262b3a9737cSLeo Yan 263b3a9737cSLeo Yan mbox_db_rx: mhu@MHU_RX_ADDR { 2646c069e71SBoyan Karatotev compatible = MHU_RX_COMPAT; 2656c069e71SBoyan Karatotev reg = <0x0 ADDRESSIFY(MHU_RX_ADDR) 0x0 MHU_OFFSET>; 266b3a9737cSLeo Yan clocks = <&soc_refclk>; 267b3a9737cSLeo Yan clock-names = "apb_pclk"; 2686c069e71SBoyan Karatotev #mbox-cells = <MHU_MBOX_CELLS>; 2691300bbceSJagdish Gediya interrupts = <GIC_SPI MHU_RX_INT_NUM IRQ_TYPE_LEVEL_HIGH 0>; 2706c069e71SBoyan Karatotev interrupt-names = MHU_RX_INT_NAME; 271b3a9737cSLeo Yan }; 272b3a9737cSLeo Yan 273b3a9737cSLeo Yan mbox_db_tx: mhu@MHU_TX_ADDR { 2746c069e71SBoyan Karatotev compatible = MHU_TX_COMPAT; 2756c069e71SBoyan Karatotev reg = <0x0 ADDRESSIFY(MHU_TX_ADDR) 0x0 MHU_OFFSET>; 276b3a9737cSLeo Yan clocks = <&soc_refclk>; 277b3a9737cSLeo Yan clock-names = "apb_pclk"; 2786c069e71SBoyan Karatotev #mbox-cells = <MHU_MBOX_CELLS>; 2796c069e71SBoyan Karatotev interrupt-names = MHU_TX_INT_NAME; 280b3a9737cSLeo Yan }; 281b3a9737cSLeo Yan 282d42987c3SBoyan Karatotev firmware { 283b3a9737cSLeo Yan scmi { 284b3a9737cSLeo Yan compatible = "arm,scmi"; 285b3a9737cSLeo Yan mbox-names = "tx", "rx"; 286b3a9737cSLeo Yan #address-cells = <1>; 287b3a9737cSLeo Yan #size-cells = <0>; 288b3a9737cSLeo Yan 289b3a9737cSLeo Yan#if TC_SCMI_PD_CTRL_EN 290b3a9737cSLeo Yan scmi_devpd: protocol@11 { 291b3a9737cSLeo Yan reg = <0x11>; 292b3a9737cSLeo Yan #power-domain-cells = <1>; 293b3a9737cSLeo Yan }; 294b3a9737cSLeo Yan#endif /* TC_SCMI_PD_CTRL_EN */ 295b3a9737cSLeo Yan 296b3a9737cSLeo Yan scmi_dvfs: protocol@13 { 297b3a9737cSLeo Yan reg = <0x13>; 298b3a9737cSLeo Yan #clock-cells = <1>; 299b3a9737cSLeo Yan }; 300b3a9737cSLeo Yan 301b3a9737cSLeo Yan scmi_clk: protocol@14 { 302b3a9737cSLeo Yan reg = <0x14>; 303b3a9737cSLeo Yan #clock-cells = <1>; 304b3a9737cSLeo Yan }; 305b3a9737cSLeo Yan }; 306d42987c3SBoyan Karatotev }; 307b3a9737cSLeo Yan 308b3a9737cSLeo Yan gic: interrupt-controller@GIC_CTRL_ADDR { 309b3a9737cSLeo Yan compatible = "arm,gic-v3"; 310b3a9737cSLeo Yan #address-cells = <2>; 3111300bbceSJagdish Gediya #interrupt-cells = <4>; 312b3a9737cSLeo Yan #size-cells = <2>; 313b3a9737cSLeo Yan ranges; 314b3a9737cSLeo Yan interrupt-controller; 315b3a9737cSLeo Yan reg = <0x0 0x30000000 0 0x10000>, /* GICD */ 316b3a9737cSLeo Yan <0x0 0x30080000 0 GIC_GICR_OFFSET>; /* GICR */ 3171300bbceSJagdish Gediya interrupts = <GIC_PPI 0x9 IRQ_TYPE_LEVEL_LOW 0>; 318b3a9737cSLeo Yan }; 319b3a9737cSLeo Yan 320b3a9737cSLeo Yan timer { 321b3a9737cSLeo Yan compatible = "arm,armv8-timer"; 3221300bbceSJagdish Gediya interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW 0>, 3231300bbceSJagdish Gediya <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW 0>, 3241300bbceSJagdish Gediya <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW 0>, 3251300bbceSJagdish Gediya <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW 0>; 326b3a9737cSLeo Yan }; 327b3a9737cSLeo Yan 32877080f6aSJagdish Gediya spe-pmu-mid { 32977080f6aSJagdish Gediya compatible = "arm,statistical-profiling-extension-v1"; 33077080f6aSJagdish Gediya interrupts = <GIC_PPI 1 IRQ_TYPE_LEVEL_HIGH &ppi_partition_mid>; 33177080f6aSJagdish Gediya status = "disabled"; 33277080f6aSJagdish Gediya }; 33377080f6aSJagdish Gediya 33477080f6aSJagdish Gediya spe-pmu-big { 33577080f6aSJagdish Gediya compatible = "arm,statistical-profiling-extension-v1"; 33677080f6aSJagdish Gediya interrupts = <GIC_PPI 1 IRQ_TYPE_LEVEL_HIGH &ppi_partition_big>; 33777080f6aSJagdish Gediya status = "disabled"; 33877080f6aSJagdish Gediya }; 33977080f6aSJagdish Gediya 340b3a9737cSLeo Yan soc_refclk: refclk { 341b3a9737cSLeo Yan compatible = "fixed-clock"; 342b3a9737cSLeo Yan #clock-cells = <0>; 343b3a9737cSLeo Yan clock-frequency = <1000000000>; 344b3a9737cSLeo Yan clock-output-names = "apb_pclk"; 345b3a9737cSLeo Yan }; 346b3a9737cSLeo Yan 347b3a9737cSLeo Yan soc_refclk60mhz: refclk60mhz { 348b3a9737cSLeo Yan compatible = "fixed-clock"; 349b3a9737cSLeo Yan #clock-cells = <0>; 350b3a9737cSLeo Yan clock-frequency = <60000000>; 351b3a9737cSLeo Yan clock-output-names = "iofpga_clk"; 352b3a9737cSLeo Yan }; 353b3a9737cSLeo Yan 354b3a9737cSLeo Yan soc_uartclk: uartclk { 355b3a9737cSLeo Yan compatible = "fixed-clock"; 356b3a9737cSLeo Yan #clock-cells = <0>; 35725264e29SJagdish Gediya clock-frequency = <TC_UARTCLK>; 358b3a9737cSLeo Yan clock-output-names = "uartclk"; 359b3a9737cSLeo Yan }; 360b3a9737cSLeo Yan 361b3a9737cSLeo Yan /* soc_uart0 on FPGA, ap_ns_uart on FVP */ 362b3a9737cSLeo Yan os_uart: serial@2a400000 { 363b3a9737cSLeo Yan compatible = "arm,pl011", "arm,primecell"; 364b3a9737cSLeo Yan reg = <0x0 0x2A400000 0x0 UART_OFFSET>; 3651300bbceSJagdish Gediya interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH 0>; 366b3a9737cSLeo Yan clocks = <&soc_uartclk>, <&soc_refclk>; 367b3a9737cSLeo Yan clock-names = "uartclk", "apb_pclk"; 368b3a9737cSLeo Yan status = "okay"; 369b3a9737cSLeo Yan }; 370b3a9737cSLeo Yan 37179c6ede0SLeo Yan#if !TC_DPU_USE_SCMI_CLK 37279c6ede0SLeo Yan dpu_aclk: dpu_aclk { 37379c6ede0SLeo Yan compatible = "fixed-clock"; 37479c6ede0SLeo Yan #clock-cells = <0>; 3751d2d96ddSJagdish Gediya clock-frequency = <LCD_TIMING_CLK>; 37679c6ede0SLeo Yan clock-output-names = "fpga:dpu_aclk"; 37779c6ede0SLeo Yan }; 37879c6ede0SLeo Yan 37979c6ede0SLeo Yan dpu_pixel_clk: dpu-pixel-clk { 38079c6ede0SLeo Yan compatible = "fixed-clock"; 38179c6ede0SLeo Yan #clock-cells = <0>; 3821d2d96ddSJagdish Gediya clock-frequency = <LCD_TIMING_CLK>; 38379c6ede0SLeo Yan clock-output-names = "pxclk"; 38479c6ede0SLeo Yan }; 38579c6ede0SLeo Yan#endif /* !TC_DPU_USE_SCMI_CLK */ 38679c6ede0SLeo Yan 3871d2d96ddSJagdish Gediya#if TC_DPU_USE_SIMPLE_PANEL 3881d2d96ddSJagdish Gediya vpanel { 3891d2d96ddSJagdish Gediya compatible = "panel-dpi"; 3901d2d96ddSJagdish Gediya post-init-providers = <&pl0>; 3911d2d96ddSJagdish Gediya port { 3921d2d96ddSJagdish Gediya lcd_in: endpoint { 3931d2d96ddSJagdish Gediya remote-endpoint = <&dp_pl0_out0>; 3941d2d96ddSJagdish Gediya }; 3951d2d96ddSJagdish Gediya }; 3961d2d96ddSJagdish Gediya 3971d2d96ddSJagdish Gediya panel-timing { 3981d2d96ddSJagdish Gediya LCD_TIMING; 3991d2d96ddSJagdish Gediya }; 4001d2d96ddSJagdish Gediya }; 4011d2d96ddSJagdish Gediya 4021d2d96ddSJagdish Gediya#else 403b3a9737cSLeo Yan vencoder { 404b3a9737cSLeo Yan compatible = "drm,virtual-encoder"; 405b3a9737cSLeo Yan port { 4061d2d96ddSJagdish Gediya lcd_in: endpoint { 407b3a9737cSLeo Yan remote-endpoint = <&dp_pl0_out0>; 408b3a9737cSLeo Yan }; 409b3a9737cSLeo Yan }; 410b3a9737cSLeo Yan 411b3a9737cSLeo Yan display-timings { 412b3a9737cSLeo Yan timing-panel { 4131d2d96ddSJagdish Gediya LCD_TIMING; 414b3a9737cSLeo Yan }; 415b3a9737cSLeo Yan }; 416b3a9737cSLeo Yan 417b3a9737cSLeo Yan }; 4181d2d96ddSJagdish Gediya#endif 419e9e83e96SJackson Cooper-Driver ethernet: ethernet@ETHERNET_ADDR { 420e9e83e96SJackson Cooper-Driver reg = <0x0 ADDRESSIFY(ETHERNET_ADDR) 0x0 0x10000>; 421e9e83e96SJackson Cooper-Driver interrupts = <GIC_SPI ETHERNET_INT IRQ_TYPE_LEVEL_HIGH 0>; 422b3a9737cSLeo Yan 423b3a9737cSLeo Yan reg-io-width = <2>; 424b3a9737cSLeo Yan smsc,irq-push-pull; 425b3a9737cSLeo Yan }; 426b3a9737cSLeo Yan 427b3a9737cSLeo Yan bp_clock24mhz: clock24mhz { 428b3a9737cSLeo Yan compatible = "fixed-clock"; 429b3a9737cSLeo Yan #clock-cells = <0>; 430b3a9737cSLeo Yan clock-frequency = <24000000>; 431b3a9737cSLeo Yan clock-output-names = "bp:clock24mhz"; 432b3a9737cSLeo Yan }; 433b3a9737cSLeo Yan 434e9e83e96SJackson Cooper-Driver sysreg: sysreg@SYS_REGS_ADDR { 435b3a9737cSLeo Yan compatible = "arm,vexpress-sysreg"; 436e9e83e96SJackson Cooper-Driver reg = <0x0 ADDRESSIFY(SYS_REGS_ADDR) 0x0 0x1000>; 437b3a9737cSLeo Yan gpio-controller; 438b3a9737cSLeo Yan #gpio-cells = <2>; 439b3a9737cSLeo Yan }; 440b3a9737cSLeo Yan 441b3a9737cSLeo Yan fixed_3v3: v2m-3v3 { 442b3a9737cSLeo Yan compatible = "regulator-fixed"; 443b3a9737cSLeo Yan regulator-name = "3V3"; 444b3a9737cSLeo Yan regulator-min-microvolt = <3300000>; 445b3a9737cSLeo Yan regulator-max-microvolt = <3300000>; 446b3a9737cSLeo Yan regulator-always-on; 447b3a9737cSLeo Yan }; 448b3a9737cSLeo Yan 449e9e83e96SJackson Cooper-Driver mmci: mmci@MMC_ADDR { 450b3a9737cSLeo Yan compatible = "arm,pl180", "arm,primecell"; 451e9e83e96SJackson Cooper-Driver reg = <0x0 ADDRESSIFY(MMC_ADDR) 0x0 0x1000>; 452e9e83e96SJackson Cooper-Driver interrupts = <GIC_SPI MMC_INT_0 IRQ_TYPE_LEVEL_HIGH 0>, 453e9e83e96SJackson Cooper-Driver <GIC_SPI MMC_INT_1 IRQ_TYPE_LEVEL_HIGH 0>; 454b3a9737cSLeo Yan wp-gpios = <&sysreg 1 0>; 455b3a9737cSLeo Yan bus-width = <4>; 456b3a9737cSLeo Yan max-frequency = <25000000>; 457b3a9737cSLeo Yan vmmc-supply = <&fixed_3v3>; 458b3a9737cSLeo Yan clocks = <&bp_clock24mhz>, <&bp_clock24mhz>; 459b3a9737cSLeo Yan clock-names = "mclk", "apb_pclk"; 460b3a9737cSLeo Yan }; 461b3a9737cSLeo Yan 462b3a9737cSLeo Yan gpu_clk: gpu_clk { 463b3a9737cSLeo Yan compatible = "fixed-clock"; 464b3a9737cSLeo Yan #clock-cells = <0>; 465b3a9737cSLeo Yan clock-frequency = <1000000000>; 466b3a9737cSLeo Yan }; 467b3a9737cSLeo Yan 468b3a9737cSLeo Yan gpu_core_clk: gpu_core_clk { 469b3a9737cSLeo Yan compatible = "fixed-clock"; 470b3a9737cSLeo Yan #clock-cells = <0>; 471b3a9737cSLeo Yan clock-frequency = <1000000000>; 472b3a9737cSLeo Yan }; 473b3a9737cSLeo Yan 474b3a9737cSLeo Yan gpu: gpu@2d000000 { 475b3a9737cSLeo Yan compatible = "arm,mali-midgard"; 476b3a9737cSLeo Yan reg = <0x0 0x2d000000 0x0 0x200000>; 477b3a9737cSLeo Yan clocks = <&gpu_core_clk>; 478b3a9737cSLeo Yan clock-names = "shadercores"; 479b3a9737cSLeo Yan#if TC_SCMI_PD_CTRL_EN 480b3a9737cSLeo Yan power-domains = <&scmi_devpd GPU_SCMI_PD_IDX>; 481b3a9737cSLeo Yan scmi-perf-domain = <3>; 482b3a9737cSLeo Yan#endif /* TC_SCMI_PD_CTRL_EN */ 483b3a9737cSLeo Yan 484bebefe0fSAngel Rodriguez Garcia pbha { 485bebefe0fSAngel Rodriguez Garcia int-id-override = <0 0x22>, <2 0x23>, <4 0x23>, <7 0x22>, 486bebefe0fSAngel Rodriguez Garcia <8 0x22>, <9 0x22>, <10 0x22>, <11 0x22>, 487bebefe0fSAngel Rodriguez Garcia <12 0x22>, <13 0x22>, <16 0x22>, <17 0x32>, 488bebefe0fSAngel Rodriguez Garcia <18 0x32>, <19 0x22>, <20 0x22>, <21 0x32>, 489bebefe0fSAngel Rodriguez Garcia <22 0x32>, <24 0x22>, <28 0x32>; 490bebefe0fSAngel Rodriguez Garcia propagate-bits = <0x0f>; 491bebefe0fSAngel Rodriguez Garcia }; 492b3a9737cSLeo Yan }; 493b3a9737cSLeo Yan 494b3a9737cSLeo Yan power_model_simple { 495b3a9737cSLeo Yan /* 496b3a9737cSLeo Yan * Numbers used are irrelevant to Titan, 497b3a9737cSLeo Yan * it helps suppressing the kernel warnings. 498b3a9737cSLeo Yan */ 499b3a9737cSLeo Yan compatible = "arm,mali-simple-power-model"; 500b3a9737cSLeo Yan static-coefficient = <2427750>; 501b3a9737cSLeo Yan dynamic-coefficient = <4687>; 502b3a9737cSLeo Yan ts = <20000 2000 (-20) 2>; 503b3a9737cSLeo Yan thermal-zone = ""; 504b3a9737cSLeo Yan }; 505b3a9737cSLeo Yan 5064c6960caSBen Horgan smmu_600: smmu@2ce00000 { 5074c6960caSBen Horgan compatible = "arm,smmu-v3"; 5084c6960caSBen Horgan reg = <0 0x2ce00000 0 0x20000>; 5091300bbceSJagdish Gediya interrupts = <GIC_SPI 75 IRQ_TYPE_EDGE_RISING 0>, 5101300bbceSJagdish Gediya <GIC_SPI 74 IRQ_TYPE_EDGE_RISING 0>, 5111300bbceSJagdish Gediya <GIC_SPI 76 IRQ_TYPE_EDGE_RISING 0>, 5121300bbceSJagdish Gediya <GIC_SPI 77 IRQ_TYPE_EDGE_RISING 0>; 5134c6960caSBen Horgan interrupt-names = "eventq", "priq", "cmdq-sync", "gerror"; 5144c6960caSBen Horgan #iommu-cells = <1>; 5154c6960caSBen Horgan status = "disabled"; 5164c6960caSBen Horgan }; 5174c6960caSBen Horgan 518b3a9737cSLeo Yan smmu_700: iommu@3f000000 { 519b3a9737cSLeo Yan #iommu-cells = <1>; 520b3a9737cSLeo Yan compatible = "arm,smmu-v3"; 521b3a9737cSLeo Yan reg = <0x0 0x3f000000 0x0 0x5000000>; 5221300bbceSJagdish Gediya interrupts = <GIC_SPI 228 IRQ_TYPE_EDGE_RISING 0>, 5231300bbceSJagdish Gediya <GIC_SPI 229 IRQ_TYPE_EDGE_RISING 0>, 5241300bbceSJagdish Gediya <GIC_SPI 230 IRQ_TYPE_EDGE_RISING 0>; 525b3a9737cSLeo Yan interrupt-names = "eventq", "cmdq-sync", "gerror"; 526b3a9737cSLeo Yan dma-coherent; 5272458b387SLeo Yan status = "disabled"; 528b3a9737cSLeo Yan }; 529b3a9737cSLeo Yan 5300458d3acSJackson Cooper-Driver smmu_700_dpu: iommu@4002a00000 { 5310458d3acSJackson Cooper-Driver #iommu-cells = <1>; 5320458d3acSJackson Cooper-Driver compatible = "arm,smmu-v3"; 5330458d3acSJackson Cooper-Driver reg = <HI(0x4002a00000) LO(0x4002a00000) 0x0 0x5000000>; 5341300bbceSJagdish Gediya interrupts = <GIC_SPI 481 IRQ_TYPE_EDGE_RISING 0>, 5351300bbceSJagdish Gediya <GIC_SPI 482 IRQ_TYPE_EDGE_RISING 0>, 5361300bbceSJagdish Gediya <GIC_SPI 483 IRQ_TYPE_EDGE_RISING 0>; 5370458d3acSJackson Cooper-Driver interrupt-names = "eventq", "cmdq-sync", "gerror"; 5380458d3acSJackson Cooper-Driver dma-coherent; 5390458d3acSJackson Cooper-Driver status = "disabled"; 5400458d3acSJackson Cooper-Driver }; 5410458d3acSJackson Cooper-Driver 542b3a9737cSLeo Yan dp0: display@DPU_ADDR { 543b3a9737cSLeo Yan #address-cells = <1>; 544b3a9737cSLeo Yan #size-cells = <0>; 545b3a9737cSLeo Yan compatible = "arm,mali-d71"; 546b3a9737cSLeo Yan reg = <HI(ADDRESSIFY(DPU_ADDR)) LO(ADDRESSIFY(DPU_ADDR)) 0 0x20000>; 5471300bbceSJagdish Gediya interrupts = <GIC_SPI DPU_IRQ IRQ_TYPE_LEVEL_HIGH 0>; 548b3a9737cSLeo Yan interrupt-names = "DPU"; 549b3a9737cSLeo Yan DPU_CLK_ATTR1; 550b3a9737cSLeo Yan 551b3a9737cSLeo Yan pl0: pipeline@0 { 552b3a9737cSLeo Yan reg = <0>; 553b3a9737cSLeo Yan DPU_CLK_ATTR2; 554b3a9737cSLeo Yan pl_id = <0>; 555b3a9737cSLeo Yan ports { 556b3a9737cSLeo Yan #address-cells = <1>; 557b3a9737cSLeo Yan #size-cells = <0>; 558b3a9737cSLeo Yan port@0 { 559b3a9737cSLeo Yan reg = <0>; 560b3a9737cSLeo Yan dp_pl0_out0: endpoint { 5611d2d96ddSJagdish Gediya remote-endpoint = <&lcd_in>; 562b3a9737cSLeo Yan }; 563b3a9737cSLeo Yan }; 564b3a9737cSLeo Yan }; 565b3a9737cSLeo Yan }; 566b3a9737cSLeo Yan 567b3a9737cSLeo Yan pl1: pipeline@1 { 568b3a9737cSLeo Yan reg = <1>; 569b3a9737cSLeo Yan DPU_CLK_ATTR3; 570b3a9737cSLeo Yan pl_id = <1>; 571b3a9737cSLeo Yan ports { 572b3a9737cSLeo Yan #address-cells = <1>; 573b3a9737cSLeo Yan #size-cells = <0>; 574b3a9737cSLeo Yan port@0 { 575b3a9737cSLeo Yan reg = <0>; 576b3a9737cSLeo Yan }; 577b3a9737cSLeo Yan }; 578b3a9737cSLeo Yan }; 579b3a9737cSLeo Yan }; 580b3a9737cSLeo Yan 581b3a9737cSLeo Yan /* 582b3a9737cSLeo Yan * L3 cache in the DSU is the Memory System Component (MSC) 583b3a9737cSLeo Yan * The MPAM registers are accessed through utility bus in the DSU 584b3a9737cSLeo Yan */ 585967999d0SJackson Cooper-Driver dsu-msc0 { 586b3a9737cSLeo Yan compatible = "arm,mpam-msc"; 587967999d0SJackson Cooper-Driver reg = <DSU_MPAM_ADDR 0x0 0x2000>; 588b3a9737cSLeo Yan }; 589b3a9737cSLeo Yan 590b3a9737cSLeo Yan ete0 { 591b3a9737cSLeo Yan compatible = "arm,embedded-trace-extension"; 592b3a9737cSLeo Yan cpu = <&CPU0>; 593b3a9737cSLeo Yan }; 594b3a9737cSLeo Yan 595b3a9737cSLeo Yan ete1 { 596b3a9737cSLeo Yan compatible = "arm,embedded-trace-extension"; 597b3a9737cSLeo Yan cpu = <&CPU1>; 598b3a9737cSLeo Yan }; 599b3a9737cSLeo Yan 600b3a9737cSLeo Yan ete2 { 601b3a9737cSLeo Yan compatible = "arm,embedded-trace-extension"; 602b3a9737cSLeo Yan cpu = <&CPU2>; 603b3a9737cSLeo Yan }; 604b3a9737cSLeo Yan 605b3a9737cSLeo Yan ete3 { 606b3a9737cSLeo Yan compatible = "arm,embedded-trace-extension"; 607b3a9737cSLeo Yan cpu = <&CPU3>; 608b3a9737cSLeo Yan }; 609b3a9737cSLeo Yan 610b3a9737cSLeo Yan ete4 { 611b3a9737cSLeo Yan compatible = "arm,embedded-trace-extension"; 612b3a9737cSLeo Yan cpu = <&CPU4>; 613b3a9737cSLeo Yan }; 614b3a9737cSLeo Yan 615b3a9737cSLeo Yan ete5 { 616b3a9737cSLeo Yan compatible = "arm,embedded-trace-extension"; 617b3a9737cSLeo Yan cpu = <&CPU5>; 618b3a9737cSLeo Yan }; 619b3a9737cSLeo Yan 620b3a9737cSLeo Yan ete6 { 621b3a9737cSLeo Yan compatible = "arm,embedded-trace-extension"; 622b3a9737cSLeo Yan cpu = <&CPU6>; 623b3a9737cSLeo Yan }; 624b3a9737cSLeo Yan 625b3a9737cSLeo Yan ete7 { 626b3a9737cSLeo Yan compatible = "arm,embedded-trace-extension"; 627b3a9737cSLeo Yan cpu = <&CPU7>; 628b3a9737cSLeo Yan }; 629b3a9737cSLeo Yan 630b3a9737cSLeo Yan trbe { 631b3a9737cSLeo Yan compatible = "arm,trace-buffer-extension"; 6321300bbceSJagdish Gediya interrupts = <GIC_PPI 2 IRQ_TYPE_LEVEL_LOW 0>; 633b3a9737cSLeo Yan }; 634b3a9737cSLeo Yan 635b3a9737cSLeo Yan trusty { 636b3a9737cSLeo Yan #size-cells = <0x02>; 637b3a9737cSLeo Yan #address-cells = <0x02>; 638b3a9737cSLeo Yan ranges = <0x00>; 639b3a9737cSLeo Yan compatible = "android,trusty-v1"; 640b3a9737cSLeo Yan 641b3a9737cSLeo Yan virtio { 642b3a9737cSLeo Yan compatible = "android,trusty-virtio-v1"; 643b3a9737cSLeo Yan }; 644b3a9737cSLeo Yan 645b3a9737cSLeo Yan test { 646b3a9737cSLeo Yan compatible = "android,trusty-test-v1"; 647b3a9737cSLeo Yan }; 648b3a9737cSLeo Yan 649b3a9737cSLeo Yan log { 650b3a9737cSLeo Yan compatible = "android,trusty-log-v1"; 651b3a9737cSLeo Yan }; 652b3a9737cSLeo Yan 653b3a9737cSLeo Yan irq { 654b3a9737cSLeo Yan ipi-range = <0x08 0x0f 0x08>; 655b3a9737cSLeo Yan interrupt-ranges = <0x00 0x0f 0x00 0x10 0x1f 0x01 0x20 0x3f 0x02>; 656b3a9737cSLeo Yan interrupt-templates = <0x01 0x00 0x8001 0x01 0x01 0x04 0x8001 0x01 0x00 0x04>; 657b3a9737cSLeo Yan compatible = "android,trusty-irq-v1"; 658b3a9737cSLeo Yan }; 659b3a9737cSLeo Yan }; 660b3a9737cSLeo Yan 661b3a9737cSLeo Yan /* used in U-boot, Linux doesn't care */ 662b3a9737cSLeo Yan arm_ffa { 663b3a9737cSLeo Yan compatible = "arm,ffa"; 664b3a9737cSLeo Yan method = "smc"; 665b3a9737cSLeo Yan }; 666b3a9737cSLeo Yan}; 667*8de6021bSRyan Everett 668*8de6021bSRyan Everett/ { 669*8de6021bSRyan Everett cpus { 670*8de6021bSRyan Everett CPU2:cpu@200 { 671*8de6021bSRyan Everett clocks = <&scmi_dvfs 1>; 672*8de6021bSRyan Everett capacity-dmips-mhz = <MID_CAPACITY>; 673*8de6021bSRyan Everett }; 674*8de6021bSRyan Everett 675*8de6021bSRyan Everett CPU3:cpu@300 { 676*8de6021bSRyan Everett clocks = <&scmi_dvfs 1>; 677*8de6021bSRyan Everett capacity-dmips-mhz = <MID_CAPACITY>; 678*8de6021bSRyan Everett }; 679*8de6021bSRyan Everett 680*8de6021bSRyan Everett CPU6:cpu@600 { 681*8de6021bSRyan Everett clocks = <&scmi_dvfs 2>; 682*8de6021bSRyan Everett capacity-dmips-mhz = <BIG_CAPACITY>; 683*8de6021bSRyan Everett }; 684*8de6021bSRyan Everett 685*8de6021bSRyan Everett CPU7:cpu@700 { 686*8de6021bSRyan Everett clocks = <&scmi_dvfs 2>; 687*8de6021bSRyan Everett capacity-dmips-mhz = <BIG_CAPACITY>; 688*8de6021bSRyan Everett }; 689*8de6021bSRyan Everett }; 690*8de6021bSRyan Everett 691*8de6021bSRyan Everett rse_mbox_db_rx: mhu@RSE_MHU_RX_ADDR { 692*8de6021bSRyan Everett compatible = MHU_RX_COMPAT; 693*8de6021bSRyan Everett reg = <0x0 ADDRESSIFY(RSE_MHU_RX_ADDR) 0x0 MHU_OFFSET>; 694*8de6021bSRyan Everett clocks = <&soc_refclk>; 695*8de6021bSRyan Everett clock-names = "apb_pclk"; 696*8de6021bSRyan Everett #mbox-cells = <MHU_MBOX_CELLS>; 697*8de6021bSRyan Everett interrupts = <GIC_SPI 313 IRQ_TYPE_LEVEL_HIGH 0>; 698*8de6021bSRyan Everett interrupt-names = MHU_RX_INT_NAME; 699*8de6021bSRyan Everett#if TARGET_FLAVOUR_FPGA 700*8de6021bSRyan Everett status = "disabled"; 701*8de6021bSRyan Everett#endif 702*8de6021bSRyan Everett }; 703*8de6021bSRyan Everett 704*8de6021bSRyan Everett rse_mbox_db_tx: mhu@RSE_MHU_TX_ADDR { 705*8de6021bSRyan Everett compatible = MHU_TX_COMPAT; 706*8de6021bSRyan Everett reg = <0x0 ADDRESSIFY(RSE_MHU_TX_ADDR) 0x0 MHU_OFFSET>; 707*8de6021bSRyan Everett clocks = <&soc_refclk>; 708*8de6021bSRyan Everett clock-names = "apb_pclk"; 709*8de6021bSRyan Everett #mbox-cells = <MHU_MBOX_CELLS>; 710*8de6021bSRyan Everett interrupt-names = MHU_TX_INT_NAME; 711*8de6021bSRyan Everett#if TARGET_FLAVOUR_FPGA 712*8de6021bSRyan Everett status = "disabled"; 713*8de6021bSRyan Everett#endif 714*8de6021bSRyan Everett }; 715*8de6021bSRyan Everett 716*8de6021bSRyan Everett gic: interrupt-controller@GIC_CTRL_ADDR { 717*8de6021bSRyan Everett ppi-partitions { 718*8de6021bSRyan Everett ppi_partition_little: interrupt-partition-0 { 719*8de6021bSRyan Everett affinity = <&CPU0>, <&CPU1>; 720*8de6021bSRyan Everett }; 721*8de6021bSRyan Everett 722*8de6021bSRyan Everett ppi_partition_mid: interrupt-partition-1 { 723*8de6021bSRyan Everett affinity = <&CPU2>, <&CPU3>, <&CPU4>, <&CPU5>; 724*8de6021bSRyan Everett }; 725*8de6021bSRyan Everett 726*8de6021bSRyan Everett ppi_partition_big: interrupt-partition-2 { 727*8de6021bSRyan Everett affinity = <&CPU6>, <&CPU7>; 728*8de6021bSRyan Everett }; 729*8de6021bSRyan Everett }; 730*8de6021bSRyan Everett }; 731*8de6021bSRyan Everett 732*8de6021bSRyan Everett sram: sram@6000000 { 733*8de6021bSRyan Everett cpu_scp_scmi_p2a: scp-shmem@80 { 734*8de6021bSRyan Everett compatible = "arm,scmi-shmem"; 735*8de6021bSRyan Everett reg = <0x80 0x80>; 736*8de6021bSRyan Everett }; 737*8de6021bSRyan Everett }; 738*8de6021bSRyan Everett 739*8de6021bSRyan Everett firmware { 740*8de6021bSRyan Everett scmi { 741*8de6021bSRyan Everett mboxes = <&mbox_db_tx 0 0 0 &mbox_db_rx 0 0 0 &mbox_db_rx 0 0 1>; 742*8de6021bSRyan Everett shmem = <&cpu_scp_scmi_a2p &cpu_scp_scmi_p2a>; 743*8de6021bSRyan Everett }; 744*8de6021bSRyan Everett 745*8de6021bSRyan Everett rse { 746*8de6021bSRyan Everett compatible = "arm,rse"; 747*8de6021bSRyan Everett mbox-names = "tx", "rx"; 748*8de6021bSRyan Everett mboxes = <&rse_mbox_db_tx 0 0 0>, <&rse_mbox_db_rx 0 0 0>; 749*8de6021bSRyan Everett#if TARGET_FLAVOUR_FPGA 750*8de6021bSRyan Everett status = "disabled"; 751*8de6021bSRyan Everett#endif 752*8de6021bSRyan Everett }; 753*8de6021bSRyan Everett }; 754*8de6021bSRyan Everett 755*8de6021bSRyan Everett dsu-pmu { 756*8de6021bSRyan Everett compatible = "arm,dsu-pmu"; 757*8de6021bSRyan Everett cpus = <&CPU0>, <&CPU1>, <&CPU2>, <&CPU3>, <&CPU4>, <&CPU5>, <&CPU6>, <&CPU7>; 758*8de6021bSRyan Everett }; 759*8de6021bSRyan Everett 760*8de6021bSRyan Everett cs-pmu@0 { 761*8de6021bSRyan Everett compatible = "arm,coresight-pmu"; 762*8de6021bSRyan Everett reg = <0x0 MCN_PMU_ADDR(0) 0x0 0xffc>; 763*8de6021bSRyan Everett }; 764*8de6021bSRyan Everett 765*8de6021bSRyan Everett cs-pmu@1 { 766*8de6021bSRyan Everett compatible = "arm,coresight-pmu"; 767*8de6021bSRyan Everett reg = <0x0 MCN_PMU_ADDR(1) 0x0 0xffc>; 768*8de6021bSRyan Everett }; 769*8de6021bSRyan Everett 770*8de6021bSRyan Everett cs-pmu@2 { 771*8de6021bSRyan Everett compatible = "arm,coresight-pmu"; 772*8de6021bSRyan Everett reg = <0x0 MCN_PMU_ADDR(2) 0x0 0xffc>; 773*8de6021bSRyan Everett }; 774*8de6021bSRyan Everett 775*8de6021bSRyan Everett cs-pmu@3 { 776*8de6021bSRyan Everett compatible = "arm,coresight-pmu"; 777*8de6021bSRyan Everett reg = <0x0 MCN_PMU_ADDR(3) 0x0 0xffc>; 778*8de6021bSRyan Everett }; 779*8de6021bSRyan Everett}; 780