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