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