1*54fd6939SJiyong Park/* 2*54fd6939SJiyong Park * Copyright (c) 2013-2021, ARM Limited and Contributors. All rights reserved. 3*54fd6939SJiyong Park * 4*54fd6939SJiyong Park * SPDX-License-Identifier: BSD-3-Clause 5*54fd6939SJiyong Park */ 6*54fd6939SJiyong Park 7*54fd6939SJiyong Park/* Configuration: max 4 clusters with up to 4 CPUs */ 8*54fd6939SJiyong Park 9*54fd6939SJiyong Park/dts-v1/; 10*54fd6939SJiyong Park 11*54fd6939SJiyong Park#define AFF 12*54fd6939SJiyong Park#define REG_32 13*54fd6939SJiyong Park 14*54fd6939SJiyong Park#include <dt-bindings/interrupt-controller/arm-gic.h> 15*54fd6939SJiyong Park#include "fvp-defs.dtsi" 16*54fd6939SJiyong Park 17*54fd6939SJiyong Park/memreserve/ 0x80000000 0x00010000; 18*54fd6939SJiyong Park 19*54fd6939SJiyong Park/ { 20*54fd6939SJiyong Park}; 21*54fd6939SJiyong Park 22*54fd6939SJiyong Park/ { 23*54fd6939SJiyong Park model = "FVP Base"; 24*54fd6939SJiyong Park compatible = "arm,vfp-base", "arm,vexpress"; 25*54fd6939SJiyong Park interrupt-parent = <&gic>; 26*54fd6939SJiyong Park #address-cells = <2>; 27*54fd6939SJiyong Park #size-cells = <2>; 28*54fd6939SJiyong Park 29*54fd6939SJiyong Park chosen { }; 30*54fd6939SJiyong Park 31*54fd6939SJiyong Park aliases { 32*54fd6939SJiyong Park serial0 = &v2m_serial0; 33*54fd6939SJiyong Park serial1 = &v2m_serial1; 34*54fd6939SJiyong Park serial2 = &v2m_serial2; 35*54fd6939SJiyong Park serial3 = &v2m_serial3; 36*54fd6939SJiyong Park }; 37*54fd6939SJiyong Park 38*54fd6939SJiyong Park psci { 39*54fd6939SJiyong Park compatible = "arm,psci-1.0", "arm,psci-0.2", "arm,psci"; 40*54fd6939SJiyong Park method = "smc"; 41*54fd6939SJiyong Park cpu_suspend = <0x84000001>; 42*54fd6939SJiyong Park cpu_off = <0x84000002>; 43*54fd6939SJiyong Park cpu_on = <0x84000003>; 44*54fd6939SJiyong Park sys_poweroff = <0x84000008>; 45*54fd6939SJiyong Park sys_reset = <0x84000009>; 46*54fd6939SJiyong Park max-pwr-lvl = <2>; 47*54fd6939SJiyong Park }; 48*54fd6939SJiyong Park 49*54fd6939SJiyong Park cpus { 50*54fd6939SJiyong Park #address-cells = <1>; 51*54fd6939SJiyong Park #size-cells = <0>; 52*54fd6939SJiyong Park 53*54fd6939SJiyong Park CPU_MAP 54*54fd6939SJiyong Park 55*54fd6939SJiyong Park idle-states { 56*54fd6939SJiyong Park entry-method = "arm,psci"; 57*54fd6939SJiyong Park 58*54fd6939SJiyong Park CPU_SLEEP_0: cpu-sleep-0 { 59*54fd6939SJiyong Park compatible = "arm,idle-state"; 60*54fd6939SJiyong Park local-timer-stop; 61*54fd6939SJiyong Park arm,psci-suspend-param = <0x0010000>; 62*54fd6939SJiyong Park entry-latency-us = <40>; 63*54fd6939SJiyong Park exit-latency-us = <100>; 64*54fd6939SJiyong Park min-residency-us = <150>; 65*54fd6939SJiyong Park }; 66*54fd6939SJiyong Park 67*54fd6939SJiyong Park CLUSTER_SLEEP_0: cluster-sleep-0 { 68*54fd6939SJiyong Park compatible = "arm,idle-state"; 69*54fd6939SJiyong Park local-timer-stop; 70*54fd6939SJiyong Park arm,psci-suspend-param = <0x1010000>; 71*54fd6939SJiyong Park entry-latency-us = <500>; 72*54fd6939SJiyong Park exit-latency-us = <1000>; 73*54fd6939SJiyong Park min-residency-us = <2500>; 74*54fd6939SJiyong Park }; 75*54fd6939SJiyong Park }; 76*54fd6939SJiyong Park 77*54fd6939SJiyong Park CPUS 78*54fd6939SJiyong Park 79*54fd6939SJiyong Park L2_0: l2-cache0 { 80*54fd6939SJiyong Park compatible = "cache"; 81*54fd6939SJiyong Park }; 82*54fd6939SJiyong Park }; 83*54fd6939SJiyong Park 84*54fd6939SJiyong Park memory@80000000 { 85*54fd6939SJiyong Park device_type = "memory"; 86*54fd6939SJiyong Park reg = <0x00000000 0x80000000 0 0x7F000000>, 87*54fd6939SJiyong Park <0x00000008 0x80000000 0 0x80000000>; 88*54fd6939SJiyong Park }; 89*54fd6939SJiyong Park 90*54fd6939SJiyong Park gic: interrupt-controller@2f000000 { 91*54fd6939SJiyong Park compatible = "arm,cortex-a15-gic", "arm,cortex-a9-gic"; 92*54fd6939SJiyong Park #interrupt-cells = <3>; 93*54fd6939SJiyong Park #address-cells = <0>; 94*54fd6939SJiyong Park interrupt-controller; 95*54fd6939SJiyong Park reg = <0x0 0x2f000000 0 0x10000>, 96*54fd6939SJiyong Park <0x0 0x2c000000 0 0x2000>, 97*54fd6939SJiyong Park <0x0 0x2c010000 0 0x2000>, 98*54fd6939SJiyong Park <0x0 0x2c02F000 0 0x2000>; 99*54fd6939SJiyong Park interrupts = <1 9 0xf04>; 100*54fd6939SJiyong Park }; 101*54fd6939SJiyong Park 102*54fd6939SJiyong Park timer { 103*54fd6939SJiyong Park compatible = "arm,armv8-timer"; 104*54fd6939SJiyong Park interrupts = <GIC_PPI 13 105*54fd6939SJiyong Park (GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>, 106*54fd6939SJiyong Park <GIC_PPI 14 107*54fd6939SJiyong Park (GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>, 108*54fd6939SJiyong Park <GIC_PPI 11 109*54fd6939SJiyong Park (GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>, 110*54fd6939SJiyong Park <GIC_PPI 10 111*54fd6939SJiyong Park (GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>; 112*54fd6939SJiyong Park clock-frequency = <100000000>; 113*54fd6939SJiyong Park }; 114*54fd6939SJiyong Park 115*54fd6939SJiyong Park timer@2a810000 { 116*54fd6939SJiyong Park compatible = "arm,armv7-timer-mem"; 117*54fd6939SJiyong Park reg = <0x0 0x2a810000 0x0 0x10000>; 118*54fd6939SJiyong Park clock-frequency = <100000000>; 119*54fd6939SJiyong Park #address-cells = <2>; 120*54fd6939SJiyong Park #size-cells = <2>; 121*54fd6939SJiyong Park ranges; 122*54fd6939SJiyong Park frame@2a830000 { 123*54fd6939SJiyong Park frame-number = <1>; 124*54fd6939SJiyong Park interrupts = <0 26 4>; 125*54fd6939SJiyong Park reg = <0x0 0x2a830000 0x0 0x10000>; 126*54fd6939SJiyong Park }; 127*54fd6939SJiyong Park }; 128*54fd6939SJiyong Park 129*54fd6939SJiyong Park pmu { 130*54fd6939SJiyong Park compatible = "arm,armv8-pmuv3"; 131*54fd6939SJiyong Park interrupts = <0 60 4>, 132*54fd6939SJiyong Park <0 61 4>, 133*54fd6939SJiyong Park <0 62 4>, 134*54fd6939SJiyong Park <0 63 4>; 135*54fd6939SJiyong Park }; 136*54fd6939SJiyong Park 137*54fd6939SJiyong Park smb { 138*54fd6939SJiyong Park compatible = "simple-bus"; 139*54fd6939SJiyong Park 140*54fd6939SJiyong Park #address-cells = <2>; 141*54fd6939SJiyong Park #size-cells = <1>; 142*54fd6939SJiyong Park ranges = <0 0 0 0x08000000 0x04000000>, 143*54fd6939SJiyong Park <1 0 0 0x14000000 0x04000000>, 144*54fd6939SJiyong Park <2 0 0 0x18000000 0x04000000>, 145*54fd6939SJiyong Park <3 0 0 0x1c000000 0x04000000>, 146*54fd6939SJiyong Park <4 0 0 0x0c000000 0x04000000>, 147*54fd6939SJiyong Park <5 0 0 0x10000000 0x04000000>; 148*54fd6939SJiyong Park 149*54fd6939SJiyong Park #interrupt-cells = <1>; 150*54fd6939SJiyong Park interrupt-map-mask = <0 0 63>; 151*54fd6939SJiyong Park interrupt-map = <0 0 0 &gic 0 0 4>, 152*54fd6939SJiyong Park <0 0 1 &gic 0 1 4>, 153*54fd6939SJiyong Park <0 0 2 &gic 0 2 4>, 154*54fd6939SJiyong Park <0 0 3 &gic 0 3 4>, 155*54fd6939SJiyong Park <0 0 4 &gic 0 4 4>, 156*54fd6939SJiyong Park <0 0 5 &gic 0 5 4>, 157*54fd6939SJiyong Park <0 0 6 &gic 0 6 4>, 158*54fd6939SJiyong Park <0 0 7 &gic 0 7 4>, 159*54fd6939SJiyong Park <0 0 8 &gic 0 8 4>, 160*54fd6939SJiyong Park <0 0 9 &gic 0 9 4>, 161*54fd6939SJiyong Park <0 0 10 &gic 0 10 4>, 162*54fd6939SJiyong Park <0 0 11 &gic 0 11 4>, 163*54fd6939SJiyong Park <0 0 12 &gic 0 12 4>, 164*54fd6939SJiyong Park <0 0 13 &gic 0 13 4>, 165*54fd6939SJiyong Park <0 0 14 &gic 0 14 4>, 166*54fd6939SJiyong Park <0 0 15 &gic 0 15 4>, 167*54fd6939SJiyong Park <0 0 16 &gic 0 16 4>, 168*54fd6939SJiyong Park <0 0 17 &gic 0 17 4>, 169*54fd6939SJiyong Park <0 0 18 &gic 0 18 4>, 170*54fd6939SJiyong Park <0 0 19 &gic 0 19 4>, 171*54fd6939SJiyong Park <0 0 20 &gic 0 20 4>, 172*54fd6939SJiyong Park <0 0 21 &gic 0 21 4>, 173*54fd6939SJiyong Park <0 0 22 &gic 0 22 4>, 174*54fd6939SJiyong Park <0 0 23 &gic 0 23 4>, 175*54fd6939SJiyong Park <0 0 24 &gic 0 24 4>, 176*54fd6939SJiyong Park <0 0 25 &gic 0 25 4>, 177*54fd6939SJiyong Park <0 0 26 &gic 0 26 4>, 178*54fd6939SJiyong Park <0 0 27 &gic 0 27 4>, 179*54fd6939SJiyong Park <0 0 28 &gic 0 28 4>, 180*54fd6939SJiyong Park <0 0 29 &gic 0 29 4>, 181*54fd6939SJiyong Park <0 0 30 &gic 0 30 4>, 182*54fd6939SJiyong Park <0 0 31 &gic 0 31 4>, 183*54fd6939SJiyong Park <0 0 32 &gic 0 32 4>, 184*54fd6939SJiyong Park <0 0 33 &gic 0 33 4>, 185*54fd6939SJiyong Park <0 0 34 &gic 0 34 4>, 186*54fd6939SJiyong Park <0 0 35 &gic 0 35 4>, 187*54fd6939SJiyong Park <0 0 36 &gic 0 36 4>, 188*54fd6939SJiyong Park <0 0 37 &gic 0 37 4>, 189*54fd6939SJiyong Park <0 0 38 &gic 0 38 4>, 190*54fd6939SJiyong Park <0 0 39 &gic 0 39 4>, 191*54fd6939SJiyong Park <0 0 40 &gic 0 40 4>, 192*54fd6939SJiyong Park <0 0 41 &gic 0 41 4>, 193*54fd6939SJiyong Park <0 0 42 &gic 0 42 4>; 194*54fd6939SJiyong Park 195*54fd6939SJiyong Park #include "rtsm_ve-motherboard-aarch32.dtsi" 196*54fd6939SJiyong Park }; 197*54fd6939SJiyong Park 198*54fd6939SJiyong Park panels { 199*54fd6939SJiyong Park panel@0 { 200*54fd6939SJiyong Park compatible = "panel"; 201*54fd6939SJiyong Park mode = "XVGA"; 202*54fd6939SJiyong Park refresh = <60>; 203*54fd6939SJiyong Park xres = <1024>; 204*54fd6939SJiyong Park yres = <768>; 205*54fd6939SJiyong Park pixclock = <15748>; 206*54fd6939SJiyong Park left_margin = <152>; 207*54fd6939SJiyong Park right_margin = <48>; 208*54fd6939SJiyong Park upper_margin = <23>; 209*54fd6939SJiyong Park lower_margin = <3>; 210*54fd6939SJiyong Park hsync_len = <104>; 211*54fd6939SJiyong Park vsync_len = <4>; 212*54fd6939SJiyong Park sync = <0>; 213*54fd6939SJiyong Park vmode = "FB_VMODE_NONINTERLACED"; 214*54fd6939SJiyong Park tim2 = "TIM2_BCD", "TIM2_IPC"; 215*54fd6939SJiyong Park cntl = "CNTL_LCDTFT", "CNTL_BGR", "CNTL_LCDVCOMP(1)"; 216*54fd6939SJiyong Park caps = "CLCD_CAP_5551", "CLCD_CAP_565", "CLCD_CAP_888"; 217*54fd6939SJiyong Park bpp = <16>; 218*54fd6939SJiyong Park }; 219*54fd6939SJiyong Park }; 220*54fd6939SJiyong Park}; 221