14f6ad66aSAchin Gupta/* 2*e83b0cadSDan Handley * Copyright (c) 2013-2014, ARM Limited and Contributors. All rights reserved. 34f6ad66aSAchin Gupta * 44f6ad66aSAchin Gupta * Redistribution and use in source and binary forms, with or without 54f6ad66aSAchin Gupta * modification, are permitted provided that the following conditions are met: 64f6ad66aSAchin Gupta * 74f6ad66aSAchin Gupta * Redistributions of source code must retain the above copyright notice, this 84f6ad66aSAchin Gupta * list of conditions and the following disclaimer. 94f6ad66aSAchin Gupta * 104f6ad66aSAchin Gupta * Redistributions in binary form must reproduce the above copyright notice, 114f6ad66aSAchin Gupta * this list of conditions and the following disclaimer in the documentation 124f6ad66aSAchin Gupta * and/or other materials provided with the distribution. 134f6ad66aSAchin Gupta * 144f6ad66aSAchin Gupta * Neither the name of ARM nor the names of its contributors may be used 154f6ad66aSAchin Gupta * to endorse or promote products derived from this software without specific 164f6ad66aSAchin Gupta * prior written permission. 174f6ad66aSAchin Gupta * 184f6ad66aSAchin Gupta * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 194f6ad66aSAchin Gupta * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 204f6ad66aSAchin Gupta * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 214f6ad66aSAchin Gupta * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE 224f6ad66aSAchin Gupta * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 234f6ad66aSAchin Gupta * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 244f6ad66aSAchin Gupta * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 254f6ad66aSAchin Gupta * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 264f6ad66aSAchin Gupta * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 274f6ad66aSAchin Gupta * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 284f6ad66aSAchin Gupta * POSSIBILITY OF SUCH DAMAGE. 294f6ad66aSAchin Gupta */ 304f6ad66aSAchin Gupta 314f6ad66aSAchin Gupta motherboard { 324f6ad66aSAchin Gupta arm,v2m-memory-map = "rs1"; 334f6ad66aSAchin Gupta compatible = "arm,vexpress,v2m-p1", "simple-bus"; 344f6ad66aSAchin Gupta #address-cells = <2>; /* SMB chipselect number and offset */ 354f6ad66aSAchin Gupta #size-cells = <1>; 364f6ad66aSAchin Gupta #interrupt-cells = <1>; 374f6ad66aSAchin Gupta ranges; 384f6ad66aSAchin Gupta 394f6ad66aSAchin Gupta flash@0,00000000 { 404f6ad66aSAchin Gupta compatible = "arm,vexpress-flash", "cfi-flash"; 414f6ad66aSAchin Gupta reg = <0 0x00000000 0x04000000>, 424f6ad66aSAchin Gupta <4 0x00000000 0x04000000>; 434f6ad66aSAchin Gupta bank-width = <4>; 444f6ad66aSAchin Gupta }; 454f6ad66aSAchin Gupta 464f6ad66aSAchin Gupta vram@2,00000000 { 474f6ad66aSAchin Gupta compatible = "arm,vexpress-vram"; 484f6ad66aSAchin Gupta reg = <2 0x00000000 0x00800000>; 494f6ad66aSAchin Gupta }; 504f6ad66aSAchin Gupta 514f6ad66aSAchin Gupta ethernet@2,02000000 { 524f6ad66aSAchin Gupta compatible = "smsc,lan91c111"; 534f6ad66aSAchin Gupta reg = <2 0x02000000 0x10000>; 544f6ad66aSAchin Gupta interrupts = <15>; 554f6ad66aSAchin Gupta }; 564f6ad66aSAchin Gupta 574f6ad66aSAchin Gupta v2m_clk24mhz: clk24mhz { 584f6ad66aSAchin Gupta compatible = "fixed-clock"; 594f6ad66aSAchin Gupta #clock-cells = <0>; 604f6ad66aSAchin Gupta clock-frequency = <24000000>; 614f6ad66aSAchin Gupta clock-output-names = "v2m:clk24mhz"; 624f6ad66aSAchin Gupta }; 634f6ad66aSAchin Gupta 644f6ad66aSAchin Gupta v2m_refclk1mhz: refclk1mhz { 654f6ad66aSAchin Gupta compatible = "fixed-clock"; 664f6ad66aSAchin Gupta #clock-cells = <0>; 674f6ad66aSAchin Gupta clock-frequency = <1000000>; 684f6ad66aSAchin Gupta clock-output-names = "v2m:refclk1mhz"; 694f6ad66aSAchin Gupta }; 704f6ad66aSAchin Gupta 714f6ad66aSAchin Gupta v2m_refclk32khz: refclk32khz { 724f6ad66aSAchin Gupta compatible = "fixed-clock"; 734f6ad66aSAchin Gupta #clock-cells = <0>; 744f6ad66aSAchin Gupta clock-frequency = <32768>; 754f6ad66aSAchin Gupta clock-output-names = "v2m:refclk32khz"; 764f6ad66aSAchin Gupta }; 774f6ad66aSAchin Gupta 784f6ad66aSAchin Gupta iofpga@3,00000000 { 794f6ad66aSAchin Gupta compatible = "arm,amba-bus", "simple-bus"; 804f6ad66aSAchin Gupta #address-cells = <1>; 814f6ad66aSAchin Gupta #size-cells = <1>; 824f6ad66aSAchin Gupta ranges = <0 3 0 0x200000>; 834f6ad66aSAchin Gupta 844f6ad66aSAchin Gupta v2m_sysreg: sysreg@010000 { 854f6ad66aSAchin Gupta compatible = "arm,vexpress-sysreg"; 864f6ad66aSAchin Gupta reg = <0x010000 0x1000>; 874f6ad66aSAchin Gupta gpio-controller; 884f6ad66aSAchin Gupta #gpio-cells = <2>; 894f6ad66aSAchin Gupta }; 904f6ad66aSAchin Gupta 914f6ad66aSAchin Gupta v2m_sysctl: sysctl@020000 { 924f6ad66aSAchin Gupta compatible = "arm,sp810", "arm,primecell"; 934f6ad66aSAchin Gupta reg = <0x020000 0x1000>; 944f6ad66aSAchin Gupta clocks = <&v2m_refclk32khz>, <&v2m_refclk1mhz>, <&v2m_clk24mhz>; 954f6ad66aSAchin Gupta clock-names = "refclk", "timclk", "apb_pclk"; 964f6ad66aSAchin Gupta #clock-cells = <1>; 974f6ad66aSAchin Gupta clock-output-names = "timerclken0", "timerclken1", "timerclken2", "timerclken3"; 984f6ad66aSAchin Gupta }; 994f6ad66aSAchin Gupta 1004f6ad66aSAchin Gupta aaci@040000 { 1014f6ad66aSAchin Gupta compatible = "arm,pl041", "arm,primecell"; 1024f6ad66aSAchin Gupta reg = <0x040000 0x1000>; 1034f6ad66aSAchin Gupta interrupts = <11>; 1044f6ad66aSAchin Gupta clocks = <&v2m_clk24mhz>; 1054f6ad66aSAchin Gupta clock-names = "apb_pclk"; 1064f6ad66aSAchin Gupta }; 1074f6ad66aSAchin Gupta 1084f6ad66aSAchin Gupta mmci@050000 { 1094f6ad66aSAchin Gupta compatible = "arm,pl180", "arm,primecell"; 1104f6ad66aSAchin Gupta reg = <0x050000 0x1000>; 1114f6ad66aSAchin Gupta interrupts = <9 10>; 1124f6ad66aSAchin Gupta cd-gpios = <&v2m_sysreg 0 0>; 1134f6ad66aSAchin Gupta wp-gpios = <&v2m_sysreg 1 0>; 1144f6ad66aSAchin Gupta max-frequency = <12000000>; 1154f6ad66aSAchin Gupta vmmc-supply = <&v2m_fixed_3v3>; 1164f6ad66aSAchin Gupta clocks = <&v2m_clk24mhz>, <&v2m_clk24mhz>; 1174f6ad66aSAchin Gupta clock-names = "mclk", "apb_pclk"; 1184f6ad66aSAchin Gupta }; 1194f6ad66aSAchin Gupta 1204f6ad66aSAchin Gupta kmi@060000 { 1214f6ad66aSAchin Gupta compatible = "arm,pl050", "arm,primecell"; 1224f6ad66aSAchin Gupta reg = <0x060000 0x1000>; 1234f6ad66aSAchin Gupta interrupts = <12>; 1244f6ad66aSAchin Gupta clocks = <&v2m_clk24mhz>, <&v2m_clk24mhz>; 1254f6ad66aSAchin Gupta clock-names = "KMIREFCLK", "apb_pclk"; 1264f6ad66aSAchin Gupta }; 1274f6ad66aSAchin Gupta 1284f6ad66aSAchin Gupta kmi@070000 { 1294f6ad66aSAchin Gupta compatible = "arm,pl050", "arm,primecell"; 1304f6ad66aSAchin Gupta reg = <0x070000 0x1000>; 1314f6ad66aSAchin Gupta interrupts = <13>; 1324f6ad66aSAchin Gupta clocks = <&v2m_clk24mhz>, <&v2m_clk24mhz>; 1334f6ad66aSAchin Gupta clock-names = "KMIREFCLK", "apb_pclk"; 1344f6ad66aSAchin Gupta }; 1354f6ad66aSAchin Gupta 1364f6ad66aSAchin Gupta v2m_serial0: uart@090000 { 1374f6ad66aSAchin Gupta compatible = "arm,pl011", "arm,primecell"; 1384f6ad66aSAchin Gupta reg = <0x090000 0x1000>; 1394f6ad66aSAchin Gupta interrupts = <5>; 1404f6ad66aSAchin Gupta clocks = <&v2m_clk24mhz>, <&v2m_clk24mhz>; 1414f6ad66aSAchin Gupta clock-names = "uartclk", "apb_pclk"; 1424f6ad66aSAchin Gupta }; 1434f6ad66aSAchin Gupta 1444f6ad66aSAchin Gupta v2m_serial1: uart@0a0000 { 1454f6ad66aSAchin Gupta compatible = "arm,pl011", "arm,primecell"; 1464f6ad66aSAchin Gupta reg = <0x0a0000 0x1000>; 1474f6ad66aSAchin Gupta interrupts = <6>; 1484f6ad66aSAchin Gupta clocks = <&v2m_clk24mhz>, <&v2m_clk24mhz>; 1494f6ad66aSAchin Gupta clock-names = "uartclk", "apb_pclk"; 1504f6ad66aSAchin Gupta }; 1514f6ad66aSAchin Gupta 1524f6ad66aSAchin Gupta v2m_serial2: uart@0b0000 { 1534f6ad66aSAchin Gupta compatible = "arm,pl011", "arm,primecell"; 1544f6ad66aSAchin Gupta reg = <0x0b0000 0x1000>; 1554f6ad66aSAchin Gupta interrupts = <7>; 1564f6ad66aSAchin Gupta clocks = <&v2m_clk24mhz>, <&v2m_clk24mhz>; 1574f6ad66aSAchin Gupta clock-names = "uartclk", "apb_pclk"; 1584f6ad66aSAchin Gupta }; 1594f6ad66aSAchin Gupta 1604f6ad66aSAchin Gupta v2m_serial3: uart@0c0000 { 1614f6ad66aSAchin Gupta compatible = "arm,pl011", "arm,primecell"; 1624f6ad66aSAchin Gupta reg = <0x0c0000 0x1000>; 1634f6ad66aSAchin Gupta interrupts = <8>; 1644f6ad66aSAchin Gupta clocks = <&v2m_clk24mhz>, <&v2m_clk24mhz>; 1654f6ad66aSAchin Gupta clock-names = "uartclk", "apb_pclk"; 1664f6ad66aSAchin Gupta }; 1674f6ad66aSAchin Gupta 1684f6ad66aSAchin Gupta wdt@0f0000 { 1694f6ad66aSAchin Gupta compatible = "arm,sp805", "arm,primecell"; 1704f6ad66aSAchin Gupta reg = <0x0f0000 0x1000>; 1714f6ad66aSAchin Gupta interrupts = <0>; 1724f6ad66aSAchin Gupta clocks = <&v2m_refclk32khz>, <&v2m_clk24mhz>; 1734f6ad66aSAchin Gupta clock-names = "wdogclk", "apb_pclk"; 1744f6ad66aSAchin Gupta }; 1754f6ad66aSAchin Gupta 1764f6ad66aSAchin Gupta v2m_timer01: timer@110000 { 1774f6ad66aSAchin Gupta compatible = "arm,sp804", "arm,primecell"; 1784f6ad66aSAchin Gupta reg = <0x110000 0x1000>; 1794f6ad66aSAchin Gupta interrupts = <2>; 1804f6ad66aSAchin Gupta clocks = <&v2m_sysctl 0>, <&v2m_sysctl 1>, <&v2m_clk24mhz>; 1814f6ad66aSAchin Gupta clock-names = "timclken1", "timclken2", "apb_pclk"; 1824f6ad66aSAchin Gupta }; 1834f6ad66aSAchin Gupta 1844f6ad66aSAchin Gupta v2m_timer23: timer@120000 { 1854f6ad66aSAchin Gupta compatible = "arm,sp804", "arm,primecell"; 1864f6ad66aSAchin Gupta reg = <0x120000 0x1000>; 1874f6ad66aSAchin Gupta interrupts = <3>; 1884f6ad66aSAchin Gupta clocks = <&v2m_sysctl 2>, <&v2m_sysctl 3>, <&v2m_clk24mhz>; 1894f6ad66aSAchin Gupta clock-names = "timclken1", "timclken2", "apb_pclk"; 1904f6ad66aSAchin Gupta }; 1914f6ad66aSAchin Gupta 1924f6ad66aSAchin Gupta rtc@170000 { 1934f6ad66aSAchin Gupta compatible = "arm,pl031", "arm,primecell"; 1944f6ad66aSAchin Gupta reg = <0x170000 0x1000>; 1954f6ad66aSAchin Gupta interrupts = <4>; 1964f6ad66aSAchin Gupta clocks = <&v2m_clk24mhz>; 1974f6ad66aSAchin Gupta clock-names = "apb_pclk"; 1984f6ad66aSAchin Gupta }; 1994f6ad66aSAchin Gupta 2004f6ad66aSAchin Gupta clcd@1f0000 { 2014f6ad66aSAchin Gupta compatible = "arm,pl111", "arm,primecell"; 2024f6ad66aSAchin Gupta reg = <0x1f0000 0x1000>; 2034f6ad66aSAchin Gupta interrupts = <14>; 2044f6ad66aSAchin Gupta clocks = <&v2m_oscclk1>, <&v2m_clk24mhz>; 2054f6ad66aSAchin Gupta clock-names = "clcdclk", "apb_pclk"; 2064f6ad66aSAchin Gupta mode = "XVGA"; 2074f6ad66aSAchin Gupta use_dma = <0>; 2084f6ad66aSAchin Gupta framebuffer = <0x18000000 0x00180000>; 2094f6ad66aSAchin Gupta }; 2104f6ad66aSAchin Gupta 2114f6ad66aSAchin Gupta virtio_block@0130000 { 2124f6ad66aSAchin Gupta compatible = "virtio,mmio"; 2134f6ad66aSAchin Gupta reg = <0x130000 0x1000>; 2144f6ad66aSAchin Gupta interrupts = <0x2a>; 2154f6ad66aSAchin Gupta }; 2164f6ad66aSAchin Gupta }; 2174f6ad66aSAchin Gupta 2184f6ad66aSAchin Gupta v2m_fixed_3v3: fixedregulator@0 { 2194f6ad66aSAchin Gupta compatible = "regulator-fixed"; 2204f6ad66aSAchin Gupta regulator-name = "3V3"; 2214f6ad66aSAchin Gupta regulator-min-microvolt = <3300000>; 2224f6ad66aSAchin Gupta regulator-max-microvolt = <3300000>; 2234f6ad66aSAchin Gupta regulator-always-on; 2244f6ad66aSAchin Gupta }; 2254f6ad66aSAchin Gupta 2264f6ad66aSAchin Gupta mcc { 2274f6ad66aSAchin Gupta compatible = "arm,vexpress,config-bus", "simple-bus"; 2284f6ad66aSAchin Gupta arm,vexpress,config-bridge = <&v2m_sysreg>; 2294f6ad66aSAchin Gupta 2304f6ad66aSAchin Gupta v2m_oscclk1: osc@1 { 2314f6ad66aSAchin Gupta /* CLCD clock */ 2324f6ad66aSAchin Gupta compatible = "arm,vexpress-osc"; 2334f6ad66aSAchin Gupta arm,vexpress-sysreg,func = <1 1>; 2344f6ad66aSAchin Gupta freq-range = <23750000 63500000>; 2354f6ad66aSAchin Gupta #clock-cells = <0>; 2364f6ad66aSAchin Gupta clock-output-names = "v2m:oscclk1"; 2374f6ad66aSAchin Gupta }; 2384f6ad66aSAchin Gupta 2394f6ad66aSAchin Gupta reset@0 { 2404f6ad66aSAchin Gupta compatible = "arm,vexpress-reset"; 2414f6ad66aSAchin Gupta arm,vexpress-sysreg,func = <5 0>; 2424f6ad66aSAchin Gupta }; 2434f6ad66aSAchin Gupta 2444f6ad66aSAchin Gupta muxfpga@0 { 2454f6ad66aSAchin Gupta compatible = "arm,vexpress-muxfpga"; 2464f6ad66aSAchin Gupta arm,vexpress-sysreg,func = <7 0>; 2474f6ad66aSAchin Gupta }; 2484f6ad66aSAchin Gupta 2494f6ad66aSAchin Gupta shutdown@0 { 2504f6ad66aSAchin Gupta compatible = "arm,vexpress-shutdown"; 2514f6ad66aSAchin Gupta arm,vexpress-sysreg,func = <8 0>; 2524f6ad66aSAchin Gupta }; 2534f6ad66aSAchin Gupta 2544f6ad66aSAchin Gupta reboot@0 { 2554f6ad66aSAchin Gupta compatible = "arm,vexpress-reboot"; 2564f6ad66aSAchin Gupta arm,vexpress-sysreg,func = <9 0>; 2574f6ad66aSAchin Gupta }; 2584f6ad66aSAchin Gupta 2594f6ad66aSAchin Gupta dvimode@0 { 2604f6ad66aSAchin Gupta compatible = "arm,vexpress-dvimode"; 2614f6ad66aSAchin Gupta arm,vexpress-sysreg,func = <11 0>; 2624f6ad66aSAchin Gupta }; 2634f6ad66aSAchin Gupta }; 2644f6ad66aSAchin Gupta }; 265