blob: e2cdc5388ee400ec4a3811cbb82703df0352804c [file] [log] [blame]
/dts-v1/;
/memreserve/ 0x0000000080000000 0x0000000000010000;
/ {
model = "FVP Base";
compatible = "arm,vfp-base\0arm,vexpress";
interrupt-parent = < 0x01 >;
#address-cells = < 0x02 >;
#size-cells = < 0x02 >;
chosen {
};
aliases {
serial0 = "/smb@0,0/motherboard/iofpga@3,00000000/uart@90000";
serial1 = "/smb@0,0/motherboard/iofpga@3,00000000/uart@a0000";
serial2 = "/smb@0,0/motherboard/iofpga@3,00000000/uart@b0000";
serial3 = "/smb@0,0/motherboard/iofpga@3,00000000/uart@c0000";
};
psci {
compatible = "arm,psci-1.0\0arm,psci-0.2\0arm,psci";
method = "smc";
cpu_suspend = < 0xc4000001 >;
cpu_off = < 0x84000002 >;
cpu_on = < 0xc4000003 >;
sys_poweroff = < 0x84000008 >;
sys_reset = < 0x84000009 >;
};
cpus {
#address-cells = < 0x02 >;
#size-cells = < 0x00 >;
cpu-map {
cluster0 {
core0 {
cpu = < 0x02 >;
};
core1 {
cpu = < 0x03 >;
};
core2 {
cpu = < 0x04 >;
};
core3 {
cpu = < 0x05 >;
};
};
cluster1 {
core0 {
cpu = < 0x06 >;
};
core1 {
cpu = < 0x07 >;
};
core2 {
cpu = < 0x08 >;
};
core3 {
cpu = < 0x09 >;
};
};
};
idle-states {
entry-method = "arm,psci";
cpu-sleep-0 {
compatible = "arm,idle-state";
local-timer-stop;
arm,psci-suspend-param = < 0x10000 >;
entry-latency-us = < 0x28 >;
exit-latency-us = < 0x64 >;
min-residency-us = < 0x96 >;
phandle = < 0x0a >;
};
cluster-sleep-0 {
compatible = "arm,idle-state";
local-timer-stop;
arm,psci-suspend-param = < 0x1010000 >;
entry-latency-us = < 0x1f4 >;
exit-latency-us = < 0x3e8 >;
min-residency-us = < 0x9c4 >;
phandle = < 0x0b >;
};
};
cpu@0 {
device_type = "cpu";
compatible = "arm,armv8";
reg = < 0x00 0x00 >;
enable-method = "psci";
cpu-idle-states = < 0x0a 0x0b >;
next-level-cache = < 0x0c >;
phandle = < 0x02 >;
};
cpu@1 {
device_type = "cpu";
compatible = "arm,armv8";
reg = < 0x00 0x100 >;
enable-method = "psci";
cpu-idle-states = < 0x0a 0x0b >;
next-level-cache = < 0x0c >;
phandle = < 0x03 >;
};
cpu@2 {
device_type = "cpu";
compatible = "arm,armv8";
reg = < 0x00 0x200 >;
enable-method = "psci";
cpu-idle-states = < 0x0a 0x0b >;
next-level-cache = < 0x0c >;
phandle = < 0x04 >;
};
cpu@3 {
device_type = "cpu";
compatible = "arm,armv8";
reg = < 0x00 0x300 >;
enable-method = "psci";
cpu-idle-states = < 0x0a 0x0b >;
next-level-cache = < 0x0c >;
phandle = < 0x05 >;
};
cpu@100 {
device_type = "cpu";
compatible = "arm,armv8";
reg = < 0x00 0x10000 >;
enable-method = "psci";
cpu-idle-states = < 0x0a 0x0b >;
next-level-cache = < 0x0c >;
phandle = < 0x06 >;
};
cpu@101 {
device_type = "cpu";
compatible = "arm,armv8";
reg = < 0x00 0x10100 >;
enable-method = "psci";
cpu-idle-states = < 0x0a 0x0b >;
next-level-cache = < 0x0c >;
phandle = < 0x07 >;
};
cpu@102 {
device_type = "cpu";
compatible = "arm,armv8";
reg = < 0x00 0x10200 >;
enable-method = "psci";
cpu-idle-states = < 0x0a 0x0b >;
next-level-cache = < 0x0c >;
phandle = < 0x08 >;
};
cpu@103 {
device_type = "cpu";
compatible = "arm,armv8";
reg = < 0x00 0x10300 >;
enable-method = "psci";
cpu-idle-states = < 0x0a 0x0b >;
next-level-cache = < 0x0c >;
phandle = < 0x09 >;
};
l2-cache0 {
compatible = "cache";
phandle = < 0x0c >;
};
};
memory@80000000 {
device_type = "memory";
reg = < 0x00 0x80000000 0x00 0x7f000000 0x08 0x80000000 0x00 0x80000000 >;
};
interrupt-controller@2f000000 {
compatible = "arm,gic-v3";
#interrupt-cells = < 0x03 >;
#address-cells = < 0x02 >;
#size-cells = < 0x02 >;
ranges;
interrupt-controller;
reg = < 0x00 0x2f000000 0x00 0x10000 0x00 0x2f100000 0x00 0x200000 0x00 0x2c000000 0x00 0x2000 0x00 0x2c010000 0x00 0x2000 0x00 0x2c02f000 0x00 0x2000 >;
interrupts = < 0x01 0x09 0x04 >;
phandle = < 0x01 >;
its@2f020000 {
compatible = "arm,gic-v3-its";
msi-controller;
reg = < 0x00 0x2f020000 0x00 0x20000 >;
};
};
timer {
compatible = "arm,armv8-timer";
interrupts = < 0x01 0x0d 0xff01 0x01 0x0e 0xff01 0x01 0x0b 0xff01 0x01 0x0a 0xff01 >;
clock-frequency = < 0x5f5e100 >;
};
timer@2a810000 {
compatible = "arm,armv7-timer-mem";
reg = < 0x00 0x2a810000 0x00 0x10000 >;
clock-frequency = < 0x5f5e100 >;
#address-cells = < 0x02 >;
#size-cells = < 0x02 >;
ranges;
frame@2a830000 {
frame-number = < 0x01 >;
interrupts = < 0x00 0x1a 0x04 >;
reg = < 0x00 0x2a830000 0x00 0x10000 >;
};
};
pmu {
compatible = "arm,armv8-pmuv3";
interrupts = < 0x00 0x3c 0x04 0x00 0x3d 0x04 0x00 0x3e 0x04 0x00 0x3f 0x04 >;
};
smb@0,0 {
compatible = "simple-bus";
#address-cells = < 0x02 >;
#size-cells = < 0x01 >;
ranges = < 0x00 0x00 0x00 0x8000000 0x4000000 0x01 0x00 0x00 0x14000000 0x4000000 0x02 0x00 0x00 0x18000000 0x4000000 0x03 0x00 0x00 0x1c000000 0x4000000 0x04 0x00 0x00 0xc000000 0x4000000 0x05 0x00 0x00 0x10000000 0x4000000 >;
motherboard {
arm,v2m-memory-map = "rs1";
compatible = "arm,vexpress,v2m-p1\0simple-bus";
#address-cells = < 0x02 >;
#size-cells = < 0x01 >;
ranges;
flash@0,00000000 {
compatible = "arm,vexpress-flash\0cfi-flash";
reg = < 0x00 0x00 0x4000000 0x04 0x00 0x4000000 >;
bank-width = < 0x04 >;
};
vram@2,00000000 {
compatible = "arm,vexpress-vram";
reg = < 0x02 0x00 0x800000 >;
};
ethernet@2,02000000 {
compatible = "smsc,lan91c111";
reg = < 0x02 0x2000000 0x10000 >;
interrupts = < 0x00 0x0f 0x04 >;
};
clk24mhz {
compatible = "fixed-clock";
#clock-cells = < 0x00 >;
clock-frequency = < 0x16e3600 >;
clock-output-names = "v2m:clk24mhz";
phandle = < 0x0f >;
};
refclk1mhz {
compatible = "fixed-clock";
#clock-cells = < 0x00 >;
clock-frequency = < 0xf4240 >;
clock-output-names = "v2m:refclk1mhz";
phandle = < 0x0e >;
};
refclk32khz {
compatible = "fixed-clock";
#clock-cells = < 0x00 >;
clock-frequency = < 0x8000 >;
clock-output-names = "v2m:refclk32khz";
phandle = < 0x0d >;
};
iofpga@3,00000000 {
compatible = "arm,amba-bus\0simple-bus";
#address-cells = < 0x01 >;
#size-cells = < 0x01 >;
ranges = < 0x00 0x03 0x00 0x200000 >;
sysreg@10000 {
compatible = "arm,vexpress-sysreg";
reg = < 0x10000 0x1000 >;
gpio-controller;
#gpio-cells = < 0x02 >;
phandle = < 0x10 >;
};
sysctl@20000 {
compatible = "arm,sp810\0arm,primecell";
reg = < 0x20000 0x1000 >;
clocks = < 0x0d 0x0e 0x0f >;
clock-names = "refclk\0timclk\0apb_pclk";
#clock-cells = < 0x01 >;
clock-output-names = "timerclken0\0timerclken1\0timerclken2\0timerclken3";
phandle = < 0x12 >;
};
aaci@40000 {
compatible = "arm,pl041\0arm,primecell";
reg = < 0x40000 0x1000 >;
interrupts = < 0x00 0x0b 0x04 >;
clocks = < 0x0f >;
clock-names = "apb_pclk";
};
mmci@50000 {
compatible = "arm,pl180\0arm,primecell";
reg = < 0x50000 0x1000 >;
interrupts = < 0x00 0x09 0x04 0x00 0x0a 0x04 >;
cd-gpios = < 0x10 0x00 0x00 >;
wp-gpios = < 0x10 0x01 0x00 >;
max-frequency = < 0xb71b00 >;
vmmc-supply = < 0x11 >;
clocks = < 0x0f 0x0f >;
clock-names = "mclk\0apb_pclk";
};
kmi@60000 {
compatible = "arm,pl050\0arm,primecell";
reg = < 0x60000 0x1000 >;
interrupts = < 0x00 0x0c 0x04 >;
clocks = < 0x0f 0x0f >;
clock-names = "KMIREFCLK\0apb_pclk";
};
kmi@70000 {
compatible = "arm,pl050\0arm,primecell";
reg = < 0x70000 0x1000 >;
interrupts = < 0x00 0x0d 0x04 >;
clocks = < 0x0f 0x0f >;
clock-names = "KMIREFCLK\0apb_pclk";
};
uart@90000 {
compatible = "arm,pl011\0arm,primecell";
reg = < 0x90000 0x1000 >;
interrupts = < 0x00 0x05 0x04 >;
clocks = < 0x0f 0x0f >;
clock-names = "uartclk\0apb_pclk";
};
uart@a0000 {
compatible = "arm,pl011\0arm,primecell";
reg = < 0xa0000 0x1000 >;
interrupts = < 0x00 0x06 0x04 >;
clocks = < 0x0f 0x0f >;
clock-names = "uartclk\0apb_pclk";
};
uart@b0000 {
compatible = "arm,pl011\0arm,primecell";
reg = < 0xb0000 0x1000 >;
interrupts = < 0x00 0x07 0x04 >;
clocks = < 0x0f 0x0f >;
clock-names = "uartclk\0apb_pclk";
};
uart@c0000 {
compatible = "arm,pl011\0arm,primecell";
reg = < 0xc0000 0x1000 >;
interrupts = < 0x00 0x08 0x04 >;
clocks = < 0x0f 0x0f >;
clock-names = "uartclk\0apb_pclk";
};
wdt@f0000 {
compatible = "arm,sp805\0arm,primecell";
reg = < 0xf0000 0x1000 >;
interrupts = < 0x00 0x00 0x04 >;
clocks = < 0x0d 0x0f >;
clock-names = "wdogclk\0apb_pclk";
};
timer@110000 {
compatible = "arm,sp804\0arm,primecell";
reg = < 0x110000 0x1000 >;
interrupts = < 0x00 0x02 0x04 >;
clocks = < 0x12 0x00 0x12 0x01 0x0f >;
clock-names = "timclken1\0timclken2\0apb_pclk";
};
timer@120000 {
compatible = "arm,sp804\0arm,primecell";
reg = < 0x120000 0x1000 >;
interrupts = < 0x00 0x03 0x04 >;
clocks = < 0x12 0x02 0x12 0x03 0x0f >;
clock-names = "timclken1\0timclken2\0apb_pclk";
};
rtc@170000 {
compatible = "arm,pl031\0arm,primecell";
reg = < 0x170000 0x1000 >;
interrupts = < 0x00 0x04 0x04 >;
clocks = < 0x0f >;
clock-names = "apb_pclk";
};
clcd@1f0000 {
compatible = "arm,pl111\0arm,primecell";
reg = < 0x1f0000 0x1000 >;
interrupts = < 0x00 0x0e 0x04 >;
clocks = < 0x13 0x0f >;
clock-names = "clcdclk\0apb_pclk";
mode = "XVGA";
use_dma = < 0x00 >;
framebuffer = < 0x18000000 0x180000 >;
};
virtio_block@130000 {
compatible = "virtio,mmio";
reg = < 0x130000 0x1000 >;
interrupts = < 0x00 0x2a 0x04 >;
};
};
fixedregulator {
compatible = "regulator-fixed";
regulator-name = "3V3";
regulator-min-microvolt = < 0x325aa0 >;
regulator-max-microvolt = < 0x325aa0 >;
regulator-always-on;
phandle = < 0x11 >;
};
mcc {
compatible = "arm,vexpress,config-bus\0simple-bus";
arm,vexpress,config-bridge = < 0x10 >;
osc {
compatible = "arm,vexpress-osc";
arm,vexpress-sysreg,func = < 0x01 0x01 >;
freq-range = < 0x16a6570 0x3c8eee0 >;
#clock-cells = < 0x00 >;
clock-output-names = "v2m:oscclk1";
phandle = < 0x13 >;
};
muxfpga {
compatible = "arm,vexpress-muxfpga";
arm,vexpress-sysreg,func = < 0x07 0x00 >;
};
dvimode {
compatible = "arm,vexpress-dvimode";
arm,vexpress-sysreg,func = < 0x0b 0x00 >;
};
};
};
};
panels {
panel {
compatible = "panel";
mode = "XVGA";
refresh = < 0x3c >;
xres = < 0x400 >;
yres = < 0x300 >;
pixclock = < 0x3d84 >;
left_margin = < 0x98 >;
right_margin = < 0x30 >;
upper_margin = < 0x17 >;
lower_margin = < 0x03 >;
hsync_len = < 0x68 >;
vsync_len = < 0x04 >;
sync = < 0x00 >;
vmode = "FB_VMODE_NONINTERLACED";
tim2 = "TIM2_BCD\0TIM2_IPC";
cntl = "CNTL_LCDTFT\0CNTL_BGR\0CNTL_LCDVCOMP(1)";
caps = "CLCD_CAP_5551\0CLCD_CAP_565\0CLCD_CAP_888";
bpp = < 0x10 >;
};
};
};