1*c66ec88fSEmmanuel Vadot/* 2*c66ec88fSEmmanuel Vadot * ARM Ltd. Juno Platform 3*c66ec88fSEmmanuel Vadot * 4*c66ec88fSEmmanuel Vadot * Copyright (c) 2015 ARM Ltd. 5*c66ec88fSEmmanuel Vadot * 6*c66ec88fSEmmanuel Vadot * This file is licensed under a dual GPLv2 or BSD license. 7*c66ec88fSEmmanuel Vadot */ 8*c66ec88fSEmmanuel Vadot 9*c66ec88fSEmmanuel Vadot/dts-v1/; 10*c66ec88fSEmmanuel Vadot 11*c66ec88fSEmmanuel Vadot#include <dt-bindings/interrupt-controller/arm-gic.h> 12*c66ec88fSEmmanuel Vadot#include "juno-base.dtsi" 13*c66ec88fSEmmanuel Vadot#include "juno-cs-r1r2.dtsi" 14*c66ec88fSEmmanuel Vadot 15*c66ec88fSEmmanuel Vadot/ { 16*c66ec88fSEmmanuel Vadot model = "ARM Juno development board (r2)"; 17*c66ec88fSEmmanuel Vadot compatible = "arm,juno-r2", "arm,juno", "arm,vexpress"; 18*c66ec88fSEmmanuel Vadot interrupt-parent = <&gic>; 19*c66ec88fSEmmanuel Vadot #address-cells = <2>; 20*c66ec88fSEmmanuel Vadot #size-cells = <2>; 21*c66ec88fSEmmanuel Vadot 22*c66ec88fSEmmanuel Vadot aliases { 23*c66ec88fSEmmanuel Vadot serial0 = &soc_uart0; 24*c66ec88fSEmmanuel Vadot }; 25*c66ec88fSEmmanuel Vadot 26*c66ec88fSEmmanuel Vadot chosen { 27*c66ec88fSEmmanuel Vadot stdout-path = "serial0:115200n8"; 28*c66ec88fSEmmanuel Vadot }; 29*c66ec88fSEmmanuel Vadot 30*c66ec88fSEmmanuel Vadot psci { 31*c66ec88fSEmmanuel Vadot compatible = "arm,psci-0.2"; 32*c66ec88fSEmmanuel Vadot method = "smc"; 33*c66ec88fSEmmanuel Vadot }; 34*c66ec88fSEmmanuel Vadot 35*c66ec88fSEmmanuel Vadot cpus { 36*c66ec88fSEmmanuel Vadot #address-cells = <2>; 37*c66ec88fSEmmanuel Vadot #size-cells = <0>; 38*c66ec88fSEmmanuel Vadot 39*c66ec88fSEmmanuel Vadot cpu-map { 40*c66ec88fSEmmanuel Vadot cluster0 { 41*c66ec88fSEmmanuel Vadot core0 { 42*c66ec88fSEmmanuel Vadot cpu = <&A72_0>; 43*c66ec88fSEmmanuel Vadot }; 44*c66ec88fSEmmanuel Vadot core1 { 45*c66ec88fSEmmanuel Vadot cpu = <&A72_1>; 46*c66ec88fSEmmanuel Vadot }; 47*c66ec88fSEmmanuel Vadot }; 48*c66ec88fSEmmanuel Vadot 49*c66ec88fSEmmanuel Vadot cluster1 { 50*c66ec88fSEmmanuel Vadot core0 { 51*c66ec88fSEmmanuel Vadot cpu = <&A53_0>; 52*c66ec88fSEmmanuel Vadot }; 53*c66ec88fSEmmanuel Vadot core1 { 54*c66ec88fSEmmanuel Vadot cpu = <&A53_1>; 55*c66ec88fSEmmanuel Vadot }; 56*c66ec88fSEmmanuel Vadot core2 { 57*c66ec88fSEmmanuel Vadot cpu = <&A53_2>; 58*c66ec88fSEmmanuel Vadot }; 59*c66ec88fSEmmanuel Vadot core3 { 60*c66ec88fSEmmanuel Vadot cpu = <&A53_3>; 61*c66ec88fSEmmanuel Vadot }; 62*c66ec88fSEmmanuel Vadot }; 63*c66ec88fSEmmanuel Vadot }; 64*c66ec88fSEmmanuel Vadot 65*c66ec88fSEmmanuel Vadot idle-states { 66*c66ec88fSEmmanuel Vadot entry-method = "psci"; 67*c66ec88fSEmmanuel Vadot 68*c66ec88fSEmmanuel Vadot CPU_SLEEP_0: cpu-sleep-0 { 69*c66ec88fSEmmanuel Vadot compatible = "arm,idle-state"; 70*c66ec88fSEmmanuel Vadot arm,psci-suspend-param = <0x0010000>; 71*c66ec88fSEmmanuel Vadot local-timer-stop; 72*c66ec88fSEmmanuel Vadot entry-latency-us = <300>; 73*c66ec88fSEmmanuel Vadot exit-latency-us = <1200>; 74*c66ec88fSEmmanuel Vadot min-residency-us = <2000>; 75*c66ec88fSEmmanuel Vadot }; 76*c66ec88fSEmmanuel Vadot 77*c66ec88fSEmmanuel Vadot CLUSTER_SLEEP_0: cluster-sleep-0 { 78*c66ec88fSEmmanuel Vadot compatible = "arm,idle-state"; 79*c66ec88fSEmmanuel Vadot arm,psci-suspend-param = <0x1010000>; 80*c66ec88fSEmmanuel Vadot local-timer-stop; 81*c66ec88fSEmmanuel Vadot entry-latency-us = <400>; 82*c66ec88fSEmmanuel Vadot exit-latency-us = <1200>; 83*c66ec88fSEmmanuel Vadot min-residency-us = <2500>; 84*c66ec88fSEmmanuel Vadot }; 85*c66ec88fSEmmanuel Vadot }; 86*c66ec88fSEmmanuel Vadot 87*c66ec88fSEmmanuel Vadot A72_0: cpu@0 { 88*c66ec88fSEmmanuel Vadot compatible = "arm,cortex-a72"; 89*c66ec88fSEmmanuel Vadot reg = <0x0 0x0>; 90*c66ec88fSEmmanuel Vadot device_type = "cpu"; 91*c66ec88fSEmmanuel Vadot enable-method = "psci"; 92*c66ec88fSEmmanuel Vadot i-cache-size = <0xc000>; 93*c66ec88fSEmmanuel Vadot i-cache-line-size = <64>; 94*c66ec88fSEmmanuel Vadot i-cache-sets = <256>; 95*c66ec88fSEmmanuel Vadot d-cache-size = <0x8000>; 96*c66ec88fSEmmanuel Vadot d-cache-line-size = <64>; 97*c66ec88fSEmmanuel Vadot d-cache-sets = <256>; 98*c66ec88fSEmmanuel Vadot next-level-cache = <&A72_L2>; 99*c66ec88fSEmmanuel Vadot clocks = <&scpi_dvfs 0>; 100*c66ec88fSEmmanuel Vadot cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>; 101*c66ec88fSEmmanuel Vadot capacity-dmips-mhz = <1024>; 102*c66ec88fSEmmanuel Vadot dynamic-power-coefficient = <450>; 103*c66ec88fSEmmanuel Vadot }; 104*c66ec88fSEmmanuel Vadot 105*c66ec88fSEmmanuel Vadot A72_1: cpu@1 { 106*c66ec88fSEmmanuel Vadot compatible = "arm,cortex-a72"; 107*c66ec88fSEmmanuel Vadot reg = <0x0 0x1>; 108*c66ec88fSEmmanuel Vadot device_type = "cpu"; 109*c66ec88fSEmmanuel Vadot enable-method = "psci"; 110*c66ec88fSEmmanuel Vadot i-cache-size = <0xc000>; 111*c66ec88fSEmmanuel Vadot i-cache-line-size = <64>; 112*c66ec88fSEmmanuel Vadot i-cache-sets = <256>; 113*c66ec88fSEmmanuel Vadot d-cache-size = <0x8000>; 114*c66ec88fSEmmanuel Vadot d-cache-line-size = <64>; 115*c66ec88fSEmmanuel Vadot d-cache-sets = <256>; 116*c66ec88fSEmmanuel Vadot next-level-cache = <&A72_L2>; 117*c66ec88fSEmmanuel Vadot clocks = <&scpi_dvfs 0>; 118*c66ec88fSEmmanuel Vadot cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>; 119*c66ec88fSEmmanuel Vadot capacity-dmips-mhz = <1024>; 120*c66ec88fSEmmanuel Vadot dynamic-power-coefficient = <450>; 121*c66ec88fSEmmanuel Vadot }; 122*c66ec88fSEmmanuel Vadot 123*c66ec88fSEmmanuel Vadot A53_0: cpu@100 { 124*c66ec88fSEmmanuel Vadot compatible = "arm,cortex-a53"; 125*c66ec88fSEmmanuel Vadot reg = <0x0 0x100>; 126*c66ec88fSEmmanuel Vadot device_type = "cpu"; 127*c66ec88fSEmmanuel Vadot enable-method = "psci"; 128*c66ec88fSEmmanuel Vadot i-cache-size = <0x8000>; 129*c66ec88fSEmmanuel Vadot i-cache-line-size = <64>; 130*c66ec88fSEmmanuel Vadot i-cache-sets = <256>; 131*c66ec88fSEmmanuel Vadot d-cache-size = <0x8000>; 132*c66ec88fSEmmanuel Vadot d-cache-line-size = <64>; 133*c66ec88fSEmmanuel Vadot d-cache-sets = <128>; 134*c66ec88fSEmmanuel Vadot next-level-cache = <&A53_L2>; 135*c66ec88fSEmmanuel Vadot clocks = <&scpi_dvfs 1>; 136*c66ec88fSEmmanuel Vadot cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>; 137*c66ec88fSEmmanuel Vadot capacity-dmips-mhz = <485>; 138*c66ec88fSEmmanuel Vadot dynamic-power-coefficient = <140>; 139*c66ec88fSEmmanuel Vadot }; 140*c66ec88fSEmmanuel Vadot 141*c66ec88fSEmmanuel Vadot A53_1: cpu@101 { 142*c66ec88fSEmmanuel Vadot compatible = "arm,cortex-a53"; 143*c66ec88fSEmmanuel Vadot reg = <0x0 0x101>; 144*c66ec88fSEmmanuel Vadot device_type = "cpu"; 145*c66ec88fSEmmanuel Vadot enable-method = "psci"; 146*c66ec88fSEmmanuel Vadot i-cache-size = <0x8000>; 147*c66ec88fSEmmanuel Vadot i-cache-line-size = <64>; 148*c66ec88fSEmmanuel Vadot i-cache-sets = <256>; 149*c66ec88fSEmmanuel Vadot d-cache-size = <0x8000>; 150*c66ec88fSEmmanuel Vadot d-cache-line-size = <64>; 151*c66ec88fSEmmanuel Vadot d-cache-sets = <128>; 152*c66ec88fSEmmanuel Vadot next-level-cache = <&A53_L2>; 153*c66ec88fSEmmanuel Vadot clocks = <&scpi_dvfs 1>; 154*c66ec88fSEmmanuel Vadot cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>; 155*c66ec88fSEmmanuel Vadot capacity-dmips-mhz = <485>; 156*c66ec88fSEmmanuel Vadot dynamic-power-coefficient = <140>; 157*c66ec88fSEmmanuel Vadot }; 158*c66ec88fSEmmanuel Vadot 159*c66ec88fSEmmanuel Vadot A53_2: cpu@102 { 160*c66ec88fSEmmanuel Vadot compatible = "arm,cortex-a53"; 161*c66ec88fSEmmanuel Vadot reg = <0x0 0x102>; 162*c66ec88fSEmmanuel Vadot device_type = "cpu"; 163*c66ec88fSEmmanuel Vadot enable-method = "psci"; 164*c66ec88fSEmmanuel Vadot i-cache-size = <0x8000>; 165*c66ec88fSEmmanuel Vadot i-cache-line-size = <64>; 166*c66ec88fSEmmanuel Vadot i-cache-sets = <256>; 167*c66ec88fSEmmanuel Vadot d-cache-size = <0x8000>; 168*c66ec88fSEmmanuel Vadot d-cache-line-size = <64>; 169*c66ec88fSEmmanuel Vadot d-cache-sets = <128>; 170*c66ec88fSEmmanuel Vadot next-level-cache = <&A53_L2>; 171*c66ec88fSEmmanuel Vadot clocks = <&scpi_dvfs 1>; 172*c66ec88fSEmmanuel Vadot cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>; 173*c66ec88fSEmmanuel Vadot capacity-dmips-mhz = <485>; 174*c66ec88fSEmmanuel Vadot dynamic-power-coefficient = <140>; 175*c66ec88fSEmmanuel Vadot }; 176*c66ec88fSEmmanuel Vadot 177*c66ec88fSEmmanuel Vadot A53_3: cpu@103 { 178*c66ec88fSEmmanuel Vadot compatible = "arm,cortex-a53"; 179*c66ec88fSEmmanuel Vadot reg = <0x0 0x103>; 180*c66ec88fSEmmanuel Vadot device_type = "cpu"; 181*c66ec88fSEmmanuel Vadot enable-method = "psci"; 182*c66ec88fSEmmanuel Vadot i-cache-size = <0x8000>; 183*c66ec88fSEmmanuel Vadot i-cache-line-size = <64>; 184*c66ec88fSEmmanuel Vadot i-cache-sets = <256>; 185*c66ec88fSEmmanuel Vadot d-cache-size = <0x8000>; 186*c66ec88fSEmmanuel Vadot d-cache-line-size = <64>; 187*c66ec88fSEmmanuel Vadot d-cache-sets = <128>; 188*c66ec88fSEmmanuel Vadot next-level-cache = <&A53_L2>; 189*c66ec88fSEmmanuel Vadot clocks = <&scpi_dvfs 1>; 190*c66ec88fSEmmanuel Vadot cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>; 191*c66ec88fSEmmanuel Vadot capacity-dmips-mhz = <485>; 192*c66ec88fSEmmanuel Vadot dynamic-power-coefficient = <140>; 193*c66ec88fSEmmanuel Vadot }; 194*c66ec88fSEmmanuel Vadot 195*c66ec88fSEmmanuel Vadot A72_L2: l2-cache0 { 196*c66ec88fSEmmanuel Vadot compatible = "cache"; 197*c66ec88fSEmmanuel Vadot cache-size = <0x200000>; 198*c66ec88fSEmmanuel Vadot cache-line-size = <64>; 199*c66ec88fSEmmanuel Vadot cache-sets = <2048>; 200*c66ec88fSEmmanuel Vadot }; 201*c66ec88fSEmmanuel Vadot 202*c66ec88fSEmmanuel Vadot A53_L2: l2-cache1 { 203*c66ec88fSEmmanuel Vadot compatible = "cache"; 204*c66ec88fSEmmanuel Vadot cache-size = <0x100000>; 205*c66ec88fSEmmanuel Vadot cache-line-size = <64>; 206*c66ec88fSEmmanuel Vadot cache-sets = <1024>; 207*c66ec88fSEmmanuel Vadot }; 208*c66ec88fSEmmanuel Vadot }; 209*c66ec88fSEmmanuel Vadot 210*c66ec88fSEmmanuel Vadot pmu-a72 { 211*c66ec88fSEmmanuel Vadot compatible = "arm,cortex-a72-pmu"; 212*c66ec88fSEmmanuel Vadot interrupts = <GIC_SPI 02 IRQ_TYPE_LEVEL_HIGH>, 213*c66ec88fSEmmanuel Vadot <GIC_SPI 06 IRQ_TYPE_LEVEL_HIGH>; 214*c66ec88fSEmmanuel Vadot interrupt-affinity = <&A72_0>, 215*c66ec88fSEmmanuel Vadot <&A72_1>; 216*c66ec88fSEmmanuel Vadot }; 217*c66ec88fSEmmanuel Vadot 218*c66ec88fSEmmanuel Vadot pmu-a53 { 219*c66ec88fSEmmanuel Vadot compatible = "arm,cortex-a53-pmu"; 220*c66ec88fSEmmanuel Vadot interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>, 221*c66ec88fSEmmanuel Vadot <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>, 222*c66ec88fSEmmanuel Vadot <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>, 223*c66ec88fSEmmanuel Vadot <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>; 224*c66ec88fSEmmanuel Vadot interrupt-affinity = <&A53_0>, 225*c66ec88fSEmmanuel Vadot <&A53_1>, 226*c66ec88fSEmmanuel Vadot <&A53_2>, 227*c66ec88fSEmmanuel Vadot <&A53_3>; 228*c66ec88fSEmmanuel Vadot }; 229*c66ec88fSEmmanuel Vadot}; 230*c66ec88fSEmmanuel Vadot 231*c66ec88fSEmmanuel Vadot&memtimer { 232*c66ec88fSEmmanuel Vadot status = "okay"; 233*c66ec88fSEmmanuel Vadot}; 234*c66ec88fSEmmanuel Vadot 235*c66ec88fSEmmanuel Vadot&pcie_ctlr { 236*c66ec88fSEmmanuel Vadot status = "okay"; 237*c66ec88fSEmmanuel Vadot}; 238*c66ec88fSEmmanuel Vadot 239*c66ec88fSEmmanuel Vadot&etm0 { 240*c66ec88fSEmmanuel Vadot cpu = <&A72_0>; 241*c66ec88fSEmmanuel Vadot}; 242*c66ec88fSEmmanuel Vadot 243*c66ec88fSEmmanuel Vadot&etm1 { 244*c66ec88fSEmmanuel Vadot cpu = <&A72_1>; 245*c66ec88fSEmmanuel Vadot}; 246*c66ec88fSEmmanuel Vadot 247*c66ec88fSEmmanuel Vadot&etm2 { 248*c66ec88fSEmmanuel Vadot cpu = <&A53_0>; 249*c66ec88fSEmmanuel Vadot}; 250*c66ec88fSEmmanuel Vadot 251*c66ec88fSEmmanuel Vadot&etm3 { 252*c66ec88fSEmmanuel Vadot cpu = <&A53_1>; 253*c66ec88fSEmmanuel Vadot}; 254*c66ec88fSEmmanuel Vadot 255*c66ec88fSEmmanuel Vadot&etm4 { 256*c66ec88fSEmmanuel Vadot cpu = <&A53_2>; 257*c66ec88fSEmmanuel Vadot}; 258*c66ec88fSEmmanuel Vadot 259*c66ec88fSEmmanuel Vadot&etm5 { 260*c66ec88fSEmmanuel Vadot cpu = <&A53_3>; 261*c66ec88fSEmmanuel Vadot}; 262*c66ec88fSEmmanuel Vadot 263*c66ec88fSEmmanuel Vadot&big_cluster_thermal_zone { 264*c66ec88fSEmmanuel Vadot status = "okay"; 265*c66ec88fSEmmanuel Vadot}; 266*c66ec88fSEmmanuel Vadot 267*c66ec88fSEmmanuel Vadot&little_cluster_thermal_zone { 268*c66ec88fSEmmanuel Vadot status = "okay"; 269*c66ec88fSEmmanuel Vadot}; 270*c66ec88fSEmmanuel Vadot 271*c66ec88fSEmmanuel Vadot&gpu0_thermal_zone { 272*c66ec88fSEmmanuel Vadot status = "okay"; 273*c66ec88fSEmmanuel Vadot}; 274*c66ec88fSEmmanuel Vadot 275*c66ec88fSEmmanuel Vadot&gpu1_thermal_zone { 276*c66ec88fSEmmanuel Vadot status = "okay"; 277*c66ec88fSEmmanuel Vadot}; 278*c66ec88fSEmmanuel Vadot 279*c66ec88fSEmmanuel Vadot&etf0_out_port { 280*c66ec88fSEmmanuel Vadot remote-endpoint = <&csys2_funnel_in_port0>; 281*c66ec88fSEmmanuel Vadot}; 282*c66ec88fSEmmanuel Vadot 283*c66ec88fSEmmanuel Vadot&replicator_in_port0 { 284*c66ec88fSEmmanuel Vadot remote-endpoint = <&csys2_funnel_out_port>; 285*c66ec88fSEmmanuel Vadot}; 286*c66ec88fSEmmanuel Vadot 287*c66ec88fSEmmanuel Vadot&csys1_funnel_in_port0 { 288*c66ec88fSEmmanuel Vadot remote-endpoint = <&stm_out_port>; 289*c66ec88fSEmmanuel Vadot}; 290*c66ec88fSEmmanuel Vadot 291*c66ec88fSEmmanuel Vadot&stm_out_port { 292*c66ec88fSEmmanuel Vadot remote-endpoint = <&csys1_funnel_in_port0>; 293*c66ec88fSEmmanuel Vadot}; 294*c66ec88fSEmmanuel Vadot 295*c66ec88fSEmmanuel Vadot&cpu_debug0 { 296*c66ec88fSEmmanuel Vadot cpu = <&A72_0>; 297*c66ec88fSEmmanuel Vadot}; 298*c66ec88fSEmmanuel Vadot 299*c66ec88fSEmmanuel Vadot&cpu_debug1 { 300*c66ec88fSEmmanuel Vadot cpu = <&A72_1>; 301*c66ec88fSEmmanuel Vadot}; 302*c66ec88fSEmmanuel Vadot 303*c66ec88fSEmmanuel Vadot&cpu_debug2 { 304*c66ec88fSEmmanuel Vadot cpu = <&A53_0>; 305*c66ec88fSEmmanuel Vadot}; 306*c66ec88fSEmmanuel Vadot 307*c66ec88fSEmmanuel Vadot&cpu_debug3 { 308*c66ec88fSEmmanuel Vadot cpu = <&A53_1>; 309*c66ec88fSEmmanuel Vadot}; 310*c66ec88fSEmmanuel Vadot 311*c66ec88fSEmmanuel Vadot&cpu_debug4 { 312*c66ec88fSEmmanuel Vadot cpu = <&A53_2>; 313*c66ec88fSEmmanuel Vadot}; 314*c66ec88fSEmmanuel Vadot 315*c66ec88fSEmmanuel Vadot&cpu_debug5 { 316*c66ec88fSEmmanuel Vadot cpu = <&A53_3>; 317*c66ec88fSEmmanuel Vadot}; 318