xref: /rk3399_ARM-atf/fdts/rtsm_ve-motherboard.dtsi (revision e83b0cadc67882c1ba7f430d16dab80c9b3a0228)
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