14f6ad66aSAchin Gupta/* 2e230f4d5SRoberto Vargas * Copyright (c) 2013-2018, ARM Limited and Contributors. All rights reserved. 34f6ad66aSAchin Gupta * 48d2c4977SAchin Gupta * SPDX-License-Identifier: BSD-3-Clause 54f6ad66aSAchin Gupta */ 64f6ad66aSAchin Gupta 74f6ad66aSAchin Gupta motherboard { 84f6ad66aSAchin Gupta arm,v2m-memory-map = "rs1"; 94f6ad66aSAchin Gupta compatible = "arm,vexpress,v2m-p1", "simple-bus"; 104f6ad66aSAchin Gupta #address-cells = <2>; /* SMB chipselect number and offset */ 114f6ad66aSAchin Gupta #size-cells = <1>; 124f6ad66aSAchin Gupta ranges; 134f6ad66aSAchin Gupta 144f6ad66aSAchin Gupta flash@0,00000000 { 154f6ad66aSAchin Gupta compatible = "arm,vexpress-flash", "cfi-flash"; 164f6ad66aSAchin Gupta reg = <0 0x00000000 0x04000000>, 174f6ad66aSAchin Gupta <4 0x00000000 0x04000000>; 184f6ad66aSAchin Gupta bank-width = <4>; 194f6ad66aSAchin Gupta }; 204f6ad66aSAchin Gupta 214f6ad66aSAchin Gupta vram@2,00000000 { 224f6ad66aSAchin Gupta compatible = "arm,vexpress-vram"; 234f6ad66aSAchin Gupta reg = <2 0x00000000 0x00800000>; 244f6ad66aSAchin Gupta }; 254f6ad66aSAchin Gupta 264f6ad66aSAchin Gupta ethernet@2,02000000 { 274f6ad66aSAchin Gupta compatible = "smsc,lan91c111"; 284f6ad66aSAchin Gupta reg = <2 0x02000000 0x10000>; 29*08f3c2bcSAndre Przywara interrupts = <15>; 304f6ad66aSAchin Gupta }; 314f6ad66aSAchin Gupta 324f6ad66aSAchin Gupta v2m_clk24mhz: clk24mhz { 334f6ad66aSAchin Gupta compatible = "fixed-clock"; 344f6ad66aSAchin Gupta #clock-cells = <0>; 354f6ad66aSAchin Gupta clock-frequency = <24000000>; 364f6ad66aSAchin Gupta clock-output-names = "v2m:clk24mhz"; 374f6ad66aSAchin Gupta }; 384f6ad66aSAchin Gupta 394f6ad66aSAchin Gupta v2m_refclk1mhz: refclk1mhz { 404f6ad66aSAchin Gupta compatible = "fixed-clock"; 414f6ad66aSAchin Gupta #clock-cells = <0>; 424f6ad66aSAchin Gupta clock-frequency = <1000000>; 434f6ad66aSAchin Gupta clock-output-names = "v2m:refclk1mhz"; 444f6ad66aSAchin Gupta }; 454f6ad66aSAchin Gupta 464f6ad66aSAchin Gupta v2m_refclk32khz: refclk32khz { 474f6ad66aSAchin Gupta compatible = "fixed-clock"; 484f6ad66aSAchin Gupta #clock-cells = <0>; 494f6ad66aSAchin Gupta clock-frequency = <32768>; 504f6ad66aSAchin Gupta clock-output-names = "v2m:refclk32khz"; 514f6ad66aSAchin Gupta }; 524f6ad66aSAchin Gupta 534f6ad66aSAchin Gupta iofpga@3,00000000 { 544f6ad66aSAchin Gupta compatible = "arm,amba-bus", "simple-bus"; 554f6ad66aSAchin Gupta #address-cells = <1>; 564f6ad66aSAchin Gupta #size-cells = <1>; 574f6ad66aSAchin Gupta ranges = <0 3 0 0x200000>; 584f6ad66aSAchin Gupta 59e230f4d5SRoberto Vargas v2m_sysreg: sysreg@10000 { 604f6ad66aSAchin Gupta compatible = "arm,vexpress-sysreg"; 614f6ad66aSAchin Gupta reg = <0x010000 0x1000>; 624f6ad66aSAchin Gupta gpio-controller; 634f6ad66aSAchin Gupta #gpio-cells = <2>; 644f6ad66aSAchin Gupta }; 654f6ad66aSAchin Gupta 66e230f4d5SRoberto Vargas v2m_sysctl: sysctl@20000 { 674f6ad66aSAchin Gupta compatible = "arm,sp810", "arm,primecell"; 684f6ad66aSAchin Gupta reg = <0x020000 0x1000>; 694f6ad66aSAchin Gupta clocks = <&v2m_refclk32khz>, <&v2m_refclk1mhz>, <&v2m_clk24mhz>; 704f6ad66aSAchin Gupta clock-names = "refclk", "timclk", "apb_pclk"; 714f6ad66aSAchin Gupta #clock-cells = <1>; 724f6ad66aSAchin Gupta clock-output-names = "timerclken0", "timerclken1", "timerclken2", "timerclken3"; 734f6ad66aSAchin Gupta }; 744f6ad66aSAchin Gupta 75e230f4d5SRoberto Vargas aaci@40000 { 764f6ad66aSAchin Gupta compatible = "arm,pl041", "arm,primecell"; 774f6ad66aSAchin Gupta reg = <0x040000 0x1000>; 78*08f3c2bcSAndre Przywara interrupts = <11>; 794f6ad66aSAchin Gupta clocks = <&v2m_clk24mhz>; 804f6ad66aSAchin Gupta clock-names = "apb_pclk"; 814f6ad66aSAchin Gupta }; 824f6ad66aSAchin Gupta 83e230f4d5SRoberto Vargas mmci@50000 { 844f6ad66aSAchin Gupta compatible = "arm,pl180", "arm,primecell"; 854f6ad66aSAchin Gupta reg = <0x050000 0x1000>; 86*08f3c2bcSAndre Przywara interrupts = <9>, <10>; 874f6ad66aSAchin Gupta cd-gpios = <&v2m_sysreg 0 0>; 884f6ad66aSAchin Gupta wp-gpios = <&v2m_sysreg 1 0>; 894f6ad66aSAchin Gupta max-frequency = <12000000>; 904f6ad66aSAchin Gupta vmmc-supply = <&v2m_fixed_3v3>; 914f6ad66aSAchin Gupta clocks = <&v2m_clk24mhz>, <&v2m_clk24mhz>; 924f6ad66aSAchin Gupta clock-names = "mclk", "apb_pclk"; 934f6ad66aSAchin Gupta }; 944f6ad66aSAchin Gupta 95e230f4d5SRoberto Vargas kmi@60000 { 964f6ad66aSAchin Gupta compatible = "arm,pl050", "arm,primecell"; 974f6ad66aSAchin Gupta reg = <0x060000 0x1000>; 98*08f3c2bcSAndre Przywara interrupts = <12>; 994f6ad66aSAchin Gupta clocks = <&v2m_clk24mhz>, <&v2m_clk24mhz>; 1004f6ad66aSAchin Gupta clock-names = "KMIREFCLK", "apb_pclk"; 1014f6ad66aSAchin Gupta }; 1024f6ad66aSAchin Gupta 103e230f4d5SRoberto Vargas kmi@70000 { 1044f6ad66aSAchin Gupta compatible = "arm,pl050", "arm,primecell"; 1054f6ad66aSAchin Gupta reg = <0x070000 0x1000>; 106*08f3c2bcSAndre Przywara interrupts = <13>; 1074f6ad66aSAchin Gupta clocks = <&v2m_clk24mhz>, <&v2m_clk24mhz>; 1084f6ad66aSAchin Gupta clock-names = "KMIREFCLK", "apb_pclk"; 1094f6ad66aSAchin Gupta }; 1104f6ad66aSAchin Gupta 111e230f4d5SRoberto Vargas v2m_serial0: uart@90000 { 1124f6ad66aSAchin Gupta compatible = "arm,pl011", "arm,primecell"; 1134f6ad66aSAchin Gupta reg = <0x090000 0x1000>; 114*08f3c2bcSAndre Przywara interrupts = <5>; 1154f6ad66aSAchin Gupta clocks = <&v2m_clk24mhz>, <&v2m_clk24mhz>; 1164f6ad66aSAchin Gupta clock-names = "uartclk", "apb_pclk"; 1174f6ad66aSAchin Gupta }; 1184f6ad66aSAchin Gupta 119e230f4d5SRoberto Vargas v2m_serial1: uart@a0000 { 1204f6ad66aSAchin Gupta compatible = "arm,pl011", "arm,primecell"; 1214f6ad66aSAchin Gupta reg = <0x0a0000 0x1000>; 122*08f3c2bcSAndre Przywara interrupts = <6>; 1234f6ad66aSAchin Gupta clocks = <&v2m_clk24mhz>, <&v2m_clk24mhz>; 1244f6ad66aSAchin Gupta clock-names = "uartclk", "apb_pclk"; 1254f6ad66aSAchin Gupta }; 1264f6ad66aSAchin Gupta 127e230f4d5SRoberto Vargas v2m_serial2: uart@b0000 { 1284f6ad66aSAchin Gupta compatible = "arm,pl011", "arm,primecell"; 1294f6ad66aSAchin Gupta reg = <0x0b0000 0x1000>; 130*08f3c2bcSAndre Przywara interrupts = <7>; 1314f6ad66aSAchin Gupta clocks = <&v2m_clk24mhz>, <&v2m_clk24mhz>; 1324f6ad66aSAchin Gupta clock-names = "uartclk", "apb_pclk"; 1334f6ad66aSAchin Gupta }; 1344f6ad66aSAchin Gupta 135e230f4d5SRoberto Vargas v2m_serial3: uart@c0000 { 1364f6ad66aSAchin Gupta compatible = "arm,pl011", "arm,primecell"; 1374f6ad66aSAchin Gupta reg = <0x0c0000 0x1000>; 138*08f3c2bcSAndre Przywara interrupts = <8>; 1394f6ad66aSAchin Gupta clocks = <&v2m_clk24mhz>, <&v2m_clk24mhz>; 1404f6ad66aSAchin Gupta clock-names = "uartclk", "apb_pclk"; 1414f6ad66aSAchin Gupta }; 1424f6ad66aSAchin Gupta 143e230f4d5SRoberto Vargas wdt@f0000 { 1444f6ad66aSAchin Gupta compatible = "arm,sp805", "arm,primecell"; 1454f6ad66aSAchin Gupta reg = <0x0f0000 0x1000>; 146*08f3c2bcSAndre Przywara interrupts = <0>; 1474f6ad66aSAchin Gupta clocks = <&v2m_refclk32khz>, <&v2m_clk24mhz>; 1484f6ad66aSAchin Gupta clock-names = "wdogclk", "apb_pclk"; 1494f6ad66aSAchin Gupta }; 1504f6ad66aSAchin Gupta 1514f6ad66aSAchin Gupta v2m_timer01: timer@110000 { 1524f6ad66aSAchin Gupta compatible = "arm,sp804", "arm,primecell"; 1534f6ad66aSAchin Gupta reg = <0x110000 0x1000>; 154*08f3c2bcSAndre Przywara interrupts = <2>; 1554f6ad66aSAchin Gupta clocks = <&v2m_sysctl 0>, <&v2m_sysctl 1>, <&v2m_clk24mhz>; 1564f6ad66aSAchin Gupta clock-names = "timclken1", "timclken2", "apb_pclk"; 1574f6ad66aSAchin Gupta }; 1584f6ad66aSAchin Gupta 1594f6ad66aSAchin Gupta v2m_timer23: timer@120000 { 1604f6ad66aSAchin Gupta compatible = "arm,sp804", "arm,primecell"; 1614f6ad66aSAchin Gupta reg = <0x120000 0x1000>; 162*08f3c2bcSAndre Przywara interrupts = <3>; 1634f6ad66aSAchin Gupta clocks = <&v2m_sysctl 2>, <&v2m_sysctl 3>, <&v2m_clk24mhz>; 1644f6ad66aSAchin Gupta clock-names = "timclken1", "timclken2", "apb_pclk"; 1654f6ad66aSAchin Gupta }; 1664f6ad66aSAchin Gupta 1674f6ad66aSAchin Gupta rtc@170000 { 1684f6ad66aSAchin Gupta compatible = "arm,pl031", "arm,primecell"; 1694f6ad66aSAchin Gupta reg = <0x170000 0x1000>; 170*08f3c2bcSAndre Przywara interrupts = <4>; 1714f6ad66aSAchin Gupta clocks = <&v2m_clk24mhz>; 1724f6ad66aSAchin Gupta clock-names = "apb_pclk"; 1734f6ad66aSAchin Gupta }; 1744f6ad66aSAchin Gupta 1754f6ad66aSAchin Gupta clcd@1f0000 { 1764f6ad66aSAchin Gupta compatible = "arm,pl111", "arm,primecell"; 1774f6ad66aSAchin Gupta reg = <0x1f0000 0x1000>; 178*08f3c2bcSAndre Przywara interrupts = <14>; 1794f6ad66aSAchin Gupta clocks = <&v2m_oscclk1>, <&v2m_clk24mhz>; 1804f6ad66aSAchin Gupta clock-names = "clcdclk", "apb_pclk"; 1814f6ad66aSAchin Gupta mode = "XVGA"; 1824f6ad66aSAchin Gupta use_dma = <0>; 1834f6ad66aSAchin Gupta framebuffer = <0x18000000 0x00180000>; 1844f6ad66aSAchin Gupta }; 1854f6ad66aSAchin Gupta 186e230f4d5SRoberto Vargas virtio_block@130000 { 1874f6ad66aSAchin Gupta compatible = "virtio,mmio"; 1884f6ad66aSAchin Gupta reg = <0x130000 0x1000>; 189*08f3c2bcSAndre Przywara interrupts = <0x2a>; 1904f6ad66aSAchin Gupta }; 1914f6ad66aSAchin Gupta }; 1924f6ad66aSAchin Gupta 193e230f4d5SRoberto Vargas v2m_fixed_3v3: fixedregulator { 1944f6ad66aSAchin Gupta compatible = "regulator-fixed"; 1954f6ad66aSAchin Gupta regulator-name = "3V3"; 1964f6ad66aSAchin Gupta regulator-min-microvolt = <3300000>; 1974f6ad66aSAchin Gupta regulator-max-microvolt = <3300000>; 1984f6ad66aSAchin Gupta regulator-always-on; 1994f6ad66aSAchin Gupta }; 2004f6ad66aSAchin Gupta 2014f6ad66aSAchin Gupta mcc { 2024f6ad66aSAchin Gupta compatible = "arm,vexpress,config-bus", "simple-bus"; 2034f6ad66aSAchin Gupta arm,vexpress,config-bridge = <&v2m_sysreg>; 2044f6ad66aSAchin Gupta 205e230f4d5SRoberto Vargas v2m_oscclk1: osc { 2064f6ad66aSAchin Gupta /* CLCD clock */ 2074f6ad66aSAchin Gupta compatible = "arm,vexpress-osc"; 2084f6ad66aSAchin Gupta arm,vexpress-sysreg,func = <1 1>; 2094f6ad66aSAchin Gupta freq-range = <23750000 63500000>; 2104f6ad66aSAchin Gupta #clock-cells = <0>; 2114f6ad66aSAchin Gupta clock-output-names = "v2m:oscclk1"; 2124f6ad66aSAchin Gupta }; 2134f6ad66aSAchin Gupta 214d5f13093SJuan Castillo /* 215d5f13093SJuan Castillo * Not supported in FVP models 216d5f13093SJuan Castillo * 217d5f13093SJuan Castillo * reset@0 { 218d5f13093SJuan Castillo * compatible = "arm,vexpress-reset"; 219d5f13093SJuan Castillo * arm,vexpress-sysreg,func = <5 0>; 220d5f13093SJuan Castillo * }; 221d5f13093SJuan Castillo */ 2224f6ad66aSAchin Gupta 223e230f4d5SRoberto Vargas muxfpga { 2244f6ad66aSAchin Gupta compatible = "arm,vexpress-muxfpga"; 2254f6ad66aSAchin Gupta arm,vexpress-sysreg,func = <7 0>; 2264f6ad66aSAchin Gupta }; 2274f6ad66aSAchin Gupta 228d5f13093SJuan Castillo /* 229d5f13093SJuan Castillo * Not used - Superseded by PSCI sys_poweroff 230d5f13093SJuan Castillo * 231d5f13093SJuan Castillo * shutdown@0 { 232d5f13093SJuan Castillo * compatible = "arm,vexpress-shutdown"; 233d5f13093SJuan Castillo * arm,vexpress-sysreg,func = <8 0>; 234d5f13093SJuan Castillo * }; 235d5f13093SJuan Castillo */ 2364f6ad66aSAchin Gupta 237d5f13093SJuan Castillo /* 238d5f13093SJuan Castillo * Not used - Superseded by PSCI sys_reset 239d5f13093SJuan Castillo * 240d5f13093SJuan Castillo * reboot@0 { 241d5f13093SJuan Castillo * compatible = "arm,vexpress-reboot"; 242d5f13093SJuan Castillo * arm,vexpress-sysreg,func = <9 0>; 243d5f13093SJuan Castillo * }; 244d5f13093SJuan Castillo */ 2454f6ad66aSAchin Gupta 246e230f4d5SRoberto Vargas dvimode { 2474f6ad66aSAchin Gupta compatible = "arm,vexpress-dvimode"; 2484f6ad66aSAchin Gupta arm,vexpress-sysreg,func = <11 0>; 2494f6ad66aSAchin Gupta }; 2504f6ad66aSAchin Gupta }; 2514f6ad66aSAchin Gupta }; 252