xref: /rk3399_ARM-atf/fdts/rtsm_ve-motherboard.dtsi (revision 957d79b987434d290fe827faf42bc1b96d62c866)
12716bd33SAndre Przywara// SPDX-License-Identifier: (GPL-2.0 OR MIT)
24f6ad66aSAchin Gupta/*
32716bd33SAndre Przywara * ARM Ltd. Fast Models
44f6ad66aSAchin Gupta *
52716bd33SAndre Przywara * Copyright (c) 2012-2022 ARM Ltd.
62716bd33SAndre Przywara *
72716bd33SAndre Przywara * Versatile Express (VE) system model
82716bd33SAndre Przywara * Motherboard component
92716bd33SAndre Przywara *
102716bd33SAndre Przywara * VEMotherBoard.lisa
114f6ad66aSAchin Gupta */
122716bd33SAndre Przywara/ {
134f6ad66aSAchin Gupta	v2m_clk24mhz: clk24mhz {
144f6ad66aSAchin Gupta		compatible = "fixed-clock";
154f6ad66aSAchin Gupta		#clock-cells = <0>;
164f6ad66aSAchin Gupta		clock-frequency = <24000000>;
174f6ad66aSAchin Gupta		clock-output-names = "v2m:clk24mhz";
184f6ad66aSAchin Gupta	};
194f6ad66aSAchin Gupta
204f6ad66aSAchin Gupta	v2m_refclk1mhz: refclk1mhz {
214f6ad66aSAchin Gupta		compatible = "fixed-clock";
224f6ad66aSAchin Gupta		#clock-cells = <0>;
234f6ad66aSAchin Gupta		clock-frequency = <1000000>;
244f6ad66aSAchin Gupta		clock-output-names = "v2m:refclk1mhz";
254f6ad66aSAchin Gupta	};
264f6ad66aSAchin Gupta
274f6ad66aSAchin Gupta	v2m_refclk32khz: refclk32khz {
284f6ad66aSAchin Gupta		compatible = "fixed-clock";
294f6ad66aSAchin Gupta		#clock-cells = <0>;
304f6ad66aSAchin Gupta		clock-frequency = <32768>;
314f6ad66aSAchin Gupta		clock-output-names = "v2m:refclk32khz";
324f6ad66aSAchin Gupta	};
334f6ad66aSAchin Gupta
342716bd33SAndre Przywara	v2m_fixed_3v3: v2m-3v3 {
352716bd33SAndre Przywara		compatible = "regulator-fixed";
362716bd33SAndre Przywara		regulator-name = "3V3";
372716bd33SAndre Przywara		regulator-min-microvolt = <3300000>;
382716bd33SAndre Przywara		regulator-max-microvolt = <3300000>;
392716bd33SAndre Przywara		regulator-always-on;
402716bd33SAndre Przywara	};
412716bd33SAndre Przywara
422716bd33SAndre Przywara	mcc {
432716bd33SAndre Przywara		compatible = "arm,vexpress,config-bus";
442716bd33SAndre Przywara		arm,vexpress,config-bridge = <&v2m_sysreg>;
452716bd33SAndre Przywara
462716bd33SAndre Przywara		v2m_oscclk1: oscclk1 {
472716bd33SAndre Przywara			/* CLCD clock */
482716bd33SAndre Przywara			compatible = "arm,vexpress-osc";
492716bd33SAndre Przywara			arm,vexpress-sysreg,func = <1 1>;
502716bd33SAndre Przywara			freq-range = <23750000 63500000>;
512716bd33SAndre Przywara			#clock-cells = <0>;
522716bd33SAndre Przywara			clock-output-names = "v2m:oscclk1";
532716bd33SAndre Przywara		};
542716bd33SAndre Przywara
552716bd33SAndre Przywara		reset {
562716bd33SAndre Przywara			compatible = "arm,vexpress-reset";
572716bd33SAndre Przywara			arm,vexpress-sysreg,func = <5 0>;
582716bd33SAndre Przywara		};
592716bd33SAndre Przywara
602716bd33SAndre Przywara		muxfpga {
612716bd33SAndre Przywara			compatible = "arm,vexpress-muxfpga";
622716bd33SAndre Przywara			arm,vexpress-sysreg,func = <7 0>;
632716bd33SAndre Przywara		};
642716bd33SAndre Przywara
652716bd33SAndre Przywara		shutdown {
662716bd33SAndre Przywara			compatible = "arm,vexpress-shutdown";
672716bd33SAndre Przywara			arm,vexpress-sysreg,func = <8 0>;
682716bd33SAndre Przywara		};
692716bd33SAndre Przywara
702716bd33SAndre Przywara		reboot {
712716bd33SAndre Przywara			compatible = "arm,vexpress-reboot";
722716bd33SAndre Przywara			arm,vexpress-sysreg,func = <9 0>;
732716bd33SAndre Przywara		};
742716bd33SAndre Przywara
752716bd33SAndre Przywara		dvimode {
762716bd33SAndre Przywara			compatible = "arm,vexpress-dvimode";
772716bd33SAndre Przywara			arm,vexpress-sysreg,func = <11 0>;
782716bd33SAndre Przywara		};
792716bd33SAndre Przywara	};
802716bd33SAndre Przywara
812716bd33SAndre Przywara	bus@8000000 {
822716bd33SAndre Przywara		compatible = "simple-bus";
832716bd33SAndre Przywara		#address-cells = <2>;
842716bd33SAndre Przywara		#size-cells = <1>;
852716bd33SAndre Przywara		ranges = <0 0x8000000 0 0x8000000 0x18000000>;
862716bd33SAndre Przywara
872716bd33SAndre Przywara		motherboard-bus@8000000 {
882716bd33SAndre Przywara			compatible = "arm,vexpress,v2m-p1", "simple-bus";
892716bd33SAndre Przywara			#address-cells = <2>; /* SMB chipselect number and offset */
902716bd33SAndre Przywara			#size-cells = <1>;
912716bd33SAndre Przywara			ranges = <0 0 0 0x08000000 0x04000000>,
922716bd33SAndre Przywara				 <1 0 0 0x14000000 0x04000000>,
932716bd33SAndre Przywara				 <2 0 0 0x18000000 0x04000000>,
942716bd33SAndre Przywara				 <3 0 0 0x1c000000 0x04000000>,
952716bd33SAndre Przywara				 <4 0 0 0x0c000000 0x04000000>,
962716bd33SAndre Przywara				 <5 0 0 0x10000000 0x04000000>;
972716bd33SAndre Przywara
982716bd33SAndre Przywara			flash@0 {
992716bd33SAndre Przywara				compatible = "arm,vexpress-flash", "cfi-flash";
1002716bd33SAndre Przywara				reg = <0 0x00000000 0x04000000>,
1012716bd33SAndre Przywara				      <4 0x00000000 0x04000000>;
1022716bd33SAndre Przywara				bank-width = <4>;
1032716bd33SAndre Przywara			};
1042716bd33SAndre Przywara
1052716bd33SAndre Przywara			ethernet@202000000 {
1062716bd33SAndre Przywara				compatible = "smsc,lan91c111";
1072716bd33SAndre Przywara				reg = <2 0x02000000 0x10000>;
1082716bd33SAndre Przywara				interrupts = <15>;
1092716bd33SAndre Przywara			};
1102716bd33SAndre Przywara
1112716bd33SAndre Przywara			iofpga-bus@300000000 {
1122716bd33SAndre Przywara				compatible = "simple-bus";
1134f6ad66aSAchin Gupta				#address-cells = <1>;
1144f6ad66aSAchin Gupta				#size-cells = <1>;
1152716bd33SAndre Przywara				ranges = <0 3 0 0x210000>;
1164f6ad66aSAchin Gupta
117e230f4d5SRoberto Vargas				v2m_sysreg: sysreg@10000 {
1184f6ad66aSAchin Gupta					compatible = "arm,vexpress-sysreg";
1194f6ad66aSAchin Gupta					reg = <0x010000 0x1000>;
1204f6ad66aSAchin Gupta					gpio-controller;
1214f6ad66aSAchin Gupta					#gpio-cells = <2>;
1224f6ad66aSAchin Gupta				};
1234f6ad66aSAchin Gupta
124e230f4d5SRoberto Vargas				v2m_sysctl: sysctl@20000 {
1254f6ad66aSAchin Gupta					compatible = "arm,sp810", "arm,primecell";
1264f6ad66aSAchin Gupta					reg = <0x020000 0x1000>;
1274f6ad66aSAchin Gupta					clocks = <&v2m_refclk32khz>, <&v2m_refclk1mhz>, <&v2m_clk24mhz>;
1284f6ad66aSAchin Gupta					clock-names = "refclk", "timclk", "apb_pclk";
1294f6ad66aSAchin Gupta					#clock-cells = <1>;
1304f6ad66aSAchin Gupta					clock-output-names = "timerclken0", "timerclken1", "timerclken2", "timerclken3";
1312716bd33SAndre Przywara					assigned-clocks = <&v2m_sysctl 0>, <&v2m_sysctl 1>, <&v2m_sysctl 3>, <&v2m_sysctl 3>;
1322716bd33SAndre Przywara					assigned-clock-parents = <&v2m_refclk1mhz>, <&v2m_refclk1mhz>, <&v2m_refclk1mhz>, <&v2m_refclk1mhz>;
1334f6ad66aSAchin Gupta				};
1344f6ad66aSAchin Gupta
135e230f4d5SRoberto Vargas				aaci@40000 {
1364f6ad66aSAchin Gupta					compatible = "arm,pl041", "arm,primecell";
1374f6ad66aSAchin Gupta					reg = <0x040000 0x1000>;
13808f3c2bcSAndre Przywara					interrupts = <11>;
1394f6ad66aSAchin Gupta					clocks = <&v2m_clk24mhz>;
1404f6ad66aSAchin Gupta					clock-names = "apb_pclk";
1414f6ad66aSAchin Gupta				};
1424f6ad66aSAchin Gupta
1432716bd33SAndre Przywara				mmc@50000 {
1444f6ad66aSAchin Gupta					compatible = "arm,pl180", "arm,primecell";
1454f6ad66aSAchin Gupta					reg = <0x050000 0x1000>;
14608f3c2bcSAndre Przywara					interrupts = <9>, <10>;
1474f6ad66aSAchin Gupta					cd-gpios = <&v2m_sysreg 0 0>;
1484f6ad66aSAchin Gupta					wp-gpios = <&v2m_sysreg 1 0>;
1494f6ad66aSAchin Gupta					max-frequency = <12000000>;
1504f6ad66aSAchin Gupta					vmmc-supply = <&v2m_fixed_3v3>;
1514f6ad66aSAchin Gupta					clocks = <&v2m_clk24mhz>, <&v2m_clk24mhz>;
1524f6ad66aSAchin Gupta					clock-names = "mclk", "apb_pclk";
1534f6ad66aSAchin Gupta				};
1544f6ad66aSAchin Gupta
155e230f4d5SRoberto Vargas				kmi@60000 {
1564f6ad66aSAchin Gupta					compatible = "arm,pl050", "arm,primecell";
1574f6ad66aSAchin Gupta					reg = <0x060000 0x1000>;
15808f3c2bcSAndre Przywara					interrupts = <12>;
1594f6ad66aSAchin Gupta					clocks = <&v2m_clk24mhz>, <&v2m_clk24mhz>;
1604f6ad66aSAchin Gupta					clock-names = "KMIREFCLK", "apb_pclk";
1614f6ad66aSAchin Gupta				};
1624f6ad66aSAchin Gupta
163e230f4d5SRoberto Vargas				kmi@70000 {
1644f6ad66aSAchin Gupta					compatible = "arm,pl050", "arm,primecell";
1654f6ad66aSAchin Gupta					reg = <0x070000 0x1000>;
16608f3c2bcSAndre Przywara					interrupts = <13>;
1674f6ad66aSAchin Gupta					clocks = <&v2m_clk24mhz>, <&v2m_clk24mhz>;
1684f6ad66aSAchin Gupta					clock-names = "KMIREFCLK", "apb_pclk";
1694f6ad66aSAchin Gupta				};
1704f6ad66aSAchin Gupta
1712716bd33SAndre Przywara				v2m_serial0: serial@90000 {
1724f6ad66aSAchin Gupta					compatible = "arm,pl011", "arm,primecell";
1734f6ad66aSAchin Gupta					reg = <0x090000 0x1000>;
17408f3c2bcSAndre Przywara					interrupts = <5>;
1754f6ad66aSAchin Gupta					clocks = <&v2m_clk24mhz>, <&v2m_clk24mhz>;
1764f6ad66aSAchin Gupta					clock-names = "uartclk", "apb_pclk";
1774f6ad66aSAchin Gupta				};
1784f6ad66aSAchin Gupta
1792716bd33SAndre Przywara				v2m_serial1: serial@a0000 {
1804f6ad66aSAchin Gupta					compatible = "arm,pl011", "arm,primecell";
1814f6ad66aSAchin Gupta					reg = <0x0a0000 0x1000>;
18208f3c2bcSAndre Przywara					interrupts = <6>;
1834f6ad66aSAchin Gupta					clocks = <&v2m_clk24mhz>, <&v2m_clk24mhz>;
1844f6ad66aSAchin Gupta					clock-names = "uartclk", "apb_pclk";
1854f6ad66aSAchin Gupta				};
1864f6ad66aSAchin Gupta
1872716bd33SAndre Przywara				v2m_serial2: serial@b0000 {
1884f6ad66aSAchin Gupta					compatible = "arm,pl011", "arm,primecell";
1894f6ad66aSAchin Gupta					reg = <0x0b0000 0x1000>;
19008f3c2bcSAndre Przywara					interrupts = <7>;
1914f6ad66aSAchin Gupta					clocks = <&v2m_clk24mhz>, <&v2m_clk24mhz>;
1924f6ad66aSAchin Gupta					clock-names = "uartclk", "apb_pclk";
1934f6ad66aSAchin Gupta				};
1944f6ad66aSAchin Gupta
1952716bd33SAndre Przywara				v2m_serial3: serial@c0000 {
1964f6ad66aSAchin Gupta					compatible = "arm,pl011", "arm,primecell";
1974f6ad66aSAchin Gupta					reg = <0x0c0000 0x1000>;
19808f3c2bcSAndre Przywara					interrupts = <8>;
1994f6ad66aSAchin Gupta					clocks = <&v2m_clk24mhz>, <&v2m_clk24mhz>;
2004f6ad66aSAchin Gupta					clock-names = "uartclk", "apb_pclk";
2014f6ad66aSAchin Gupta				};
2024f6ad66aSAchin Gupta
2032716bd33SAndre Przywara				watchdog@f0000 {
2044f6ad66aSAchin Gupta					compatible = "arm,sp805", "arm,primecell";
2054f6ad66aSAchin Gupta					reg = <0x0f0000 0x1000>;
20608f3c2bcSAndre Przywara					interrupts = <0>;
2074f6ad66aSAchin Gupta					clocks = <&v2m_refclk32khz>, <&v2m_clk24mhz>;
2082716bd33SAndre Przywara					clock-names = "wdog_clk", "apb_pclk";
2094f6ad66aSAchin Gupta				};
2104f6ad66aSAchin Gupta
2114f6ad66aSAchin Gupta				v2m_timer01: timer@110000 {
2124f6ad66aSAchin Gupta					compatible = "arm,sp804", "arm,primecell";
2134f6ad66aSAchin Gupta					reg = <0x110000 0x1000>;
21408f3c2bcSAndre Przywara					interrupts = <2>;
2154f6ad66aSAchin Gupta					clocks = <&v2m_sysctl 0>, <&v2m_sysctl 1>, <&v2m_clk24mhz>;
2164f6ad66aSAchin Gupta					clock-names = "timclken1", "timclken2", "apb_pclk";
2174f6ad66aSAchin Gupta				};
2184f6ad66aSAchin Gupta
2194f6ad66aSAchin Gupta				v2m_timer23: timer@120000 {
2204f6ad66aSAchin Gupta					compatible = "arm,sp804", "arm,primecell";
2214f6ad66aSAchin Gupta					reg = <0x120000 0x1000>;
22208f3c2bcSAndre Przywara					interrupts = <3>;
2234f6ad66aSAchin Gupta					clocks = <&v2m_sysctl 2>, <&v2m_sysctl 3>, <&v2m_clk24mhz>;
2244f6ad66aSAchin Gupta					clock-names = "timclken1", "timclken2", "apb_pclk";
2254f6ad66aSAchin Gupta				};
2264f6ad66aSAchin Gupta
2272716bd33SAndre Przywara				virtio@130000 {
2282716bd33SAndre Przywara					compatible = "virtio,mmio";
2292716bd33SAndre Przywara					reg = <0x130000 0x200>;
2302716bd33SAndre Przywara					interrupts = <42>;
2312716bd33SAndre Przywara				};
2322716bd33SAndre Przywara
233*51b8b9c3SDebbie Martin				virtio@140000 {
234*51b8b9c3SDebbie Martin					compatible = "virtio,mmio";
235*51b8b9c3SDebbie Martin					reg = <0x140000 0x200>;
236*51b8b9c3SDebbie Martin					interrupts = <43>;
237*51b8b9c3SDebbie Martin				};
238*51b8b9c3SDebbie Martin
239*51b8b9c3SDebbie Martin				virtio@150000 {
240*51b8b9c3SDebbie Martin					compatible = "virtio,mmio";
241*51b8b9c3SDebbie Martin					reg = <0x150000 0x200>;
242*51b8b9c3SDebbie Martin					interrupts = <44>;
243*51b8b9c3SDebbie Martin				};
244*51b8b9c3SDebbie Martin
245*51b8b9c3SDebbie Martin				virtio@200000 {
246*51b8b9c3SDebbie Martin					compatible = "virtio,mmio";
247*51b8b9c3SDebbie Martin					reg = <0x200000 0x200>;
248*51b8b9c3SDebbie Martin					interrupts = <46>;
249*51b8b9c3SDebbie Martin					status = "disabled";
250*51b8b9c3SDebbie Martin				};
251*51b8b9c3SDebbie Martin
2524f6ad66aSAchin Gupta				rtc@170000 {
2534f6ad66aSAchin Gupta					compatible = "arm,pl031", "arm,primecell";
2544f6ad66aSAchin Gupta					reg = <0x170000 0x1000>;
25508f3c2bcSAndre Przywara					interrupts = <4>;
2564f6ad66aSAchin Gupta					clocks = <&v2m_clk24mhz>;
2574f6ad66aSAchin Gupta					clock-names = "apb_pclk";
2584f6ad66aSAchin Gupta				};
2594f6ad66aSAchin Gupta
2604f6ad66aSAchin Gupta				clcd@1f0000 {
2614f6ad66aSAchin Gupta					compatible = "arm,pl111", "arm,primecell";
2624f6ad66aSAchin Gupta					reg = <0x1f0000 0x1000>;
2632716bd33SAndre Przywara					interrupt-names = "combined";
26408f3c2bcSAndre Przywara					interrupts = <14>;
2654f6ad66aSAchin Gupta					clocks = <&v2m_oscclk1>, <&v2m_clk24mhz>;
2664f6ad66aSAchin Gupta					clock-names = "clcdclk", "apb_pclk";
2672716bd33SAndre Przywara					memory-region = <&vram>;
2684f6ad66aSAchin Gupta
2692716bd33SAndre Przywara					port {
2702716bd33SAndre Przywara						clcd_pads: endpoint {
2712716bd33SAndre Przywara							remote-endpoint = <&panel_in>;
2722716bd33SAndre Przywara							arm,pl11x,tft-r0g0b0-pads = <0 8 16>;
2734f6ad66aSAchin Gupta						};
2744f6ad66aSAchin Gupta					};
2754f6ad66aSAchin Gupta				};
2764f6ad66aSAchin Gupta			};
2774f6ad66aSAchin Gupta		};
2784f6ad66aSAchin Gupta	};
2794f6ad66aSAchin Gupta};
280