xref: /rk3399_ARM-atf/fdts/rtsm_ve-motherboard.dtsi (revision 2716bd33e318821c373b3d4dce88110a340a740d)
1*2716bd33SAndre Przywara// SPDX-License-Identifier: (GPL-2.0 OR MIT)
24f6ad66aSAchin Gupta/*
3*2716bd33SAndre Przywara * ARM Ltd. Fast Models
44f6ad66aSAchin Gupta *
5*2716bd33SAndre Przywara * Copyright (c) 2012-2022 ARM Ltd.
6*2716bd33SAndre Przywara *
7*2716bd33SAndre Przywara * Versatile Express (VE) system model
8*2716bd33SAndre Przywara * Motherboard component
9*2716bd33SAndre Przywara *
10*2716bd33SAndre Przywara * VEMotherBoard.lisa
114f6ad66aSAchin Gupta */
12*2716bd33SAndre 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
34*2716bd33SAndre Przywara	v2m_fixed_3v3: v2m-3v3 {
35*2716bd33SAndre Przywara		compatible = "regulator-fixed";
36*2716bd33SAndre Przywara		regulator-name = "3V3";
37*2716bd33SAndre Przywara		regulator-min-microvolt = <3300000>;
38*2716bd33SAndre Przywara		regulator-max-microvolt = <3300000>;
39*2716bd33SAndre Przywara		regulator-always-on;
40*2716bd33SAndre Przywara	};
41*2716bd33SAndre Przywara
42*2716bd33SAndre Przywara	mcc {
43*2716bd33SAndre Przywara		compatible = "arm,vexpress,config-bus";
44*2716bd33SAndre Przywara		arm,vexpress,config-bridge = <&v2m_sysreg>;
45*2716bd33SAndre Przywara
46*2716bd33SAndre Przywara		v2m_oscclk1: oscclk1 {
47*2716bd33SAndre Przywara			/* CLCD clock */
48*2716bd33SAndre Przywara			compatible = "arm,vexpress-osc";
49*2716bd33SAndre Przywara			arm,vexpress-sysreg,func = <1 1>;
50*2716bd33SAndre Przywara			freq-range = <23750000 63500000>;
51*2716bd33SAndre Przywara			#clock-cells = <0>;
52*2716bd33SAndre Przywara			clock-output-names = "v2m:oscclk1";
53*2716bd33SAndre Przywara		};
54*2716bd33SAndre Przywara
55*2716bd33SAndre Przywara		reset {
56*2716bd33SAndre Przywara			compatible = "arm,vexpress-reset";
57*2716bd33SAndre Przywara			arm,vexpress-sysreg,func = <5 0>;
58*2716bd33SAndre Przywara		};
59*2716bd33SAndre Przywara
60*2716bd33SAndre Przywara		muxfpga {
61*2716bd33SAndre Przywara			compatible = "arm,vexpress-muxfpga";
62*2716bd33SAndre Przywara			arm,vexpress-sysreg,func = <7 0>;
63*2716bd33SAndre Przywara		};
64*2716bd33SAndre Przywara
65*2716bd33SAndre Przywara		shutdown {
66*2716bd33SAndre Przywara			compatible = "arm,vexpress-shutdown";
67*2716bd33SAndre Przywara			arm,vexpress-sysreg,func = <8 0>;
68*2716bd33SAndre Przywara		};
69*2716bd33SAndre Przywara
70*2716bd33SAndre Przywara		reboot {
71*2716bd33SAndre Przywara			compatible = "arm,vexpress-reboot";
72*2716bd33SAndre Przywara			arm,vexpress-sysreg,func = <9 0>;
73*2716bd33SAndre Przywara		};
74*2716bd33SAndre Przywara
75*2716bd33SAndre Przywara		dvimode {
76*2716bd33SAndre Przywara			compatible = "arm,vexpress-dvimode";
77*2716bd33SAndre Przywara			arm,vexpress-sysreg,func = <11 0>;
78*2716bd33SAndre Przywara		};
79*2716bd33SAndre Przywara	};
80*2716bd33SAndre Przywara
81*2716bd33SAndre Przywara	bus@8000000 {
82*2716bd33SAndre Przywara		compatible = "simple-bus";
83*2716bd33SAndre Przywara		#address-cells = <2>;
84*2716bd33SAndre Przywara		#size-cells = <1>;
85*2716bd33SAndre Przywara		ranges = <0 0x8000000 0 0x8000000 0x18000000>;
86*2716bd33SAndre Przywara
87*2716bd33SAndre Przywara		motherboard-bus@8000000 {
88*2716bd33SAndre Przywara			compatible = "arm,vexpress,v2m-p1", "simple-bus";
89*2716bd33SAndre Przywara			#address-cells = <2>; /* SMB chipselect number and offset */
90*2716bd33SAndre Przywara			#size-cells = <1>;
91*2716bd33SAndre Przywara			ranges = <0 0 0 0x08000000 0x04000000>,
92*2716bd33SAndre Przywara				 <1 0 0 0x14000000 0x04000000>,
93*2716bd33SAndre Przywara				 <2 0 0 0x18000000 0x04000000>,
94*2716bd33SAndre Przywara				 <3 0 0 0x1c000000 0x04000000>,
95*2716bd33SAndre Przywara				 <4 0 0 0x0c000000 0x04000000>,
96*2716bd33SAndre Przywara				 <5 0 0 0x10000000 0x04000000>;
97*2716bd33SAndre Przywara
98*2716bd33SAndre Przywara			flash@0 {
99*2716bd33SAndre Przywara				compatible = "arm,vexpress-flash", "cfi-flash";
100*2716bd33SAndre Przywara				reg = <0 0x00000000 0x04000000>,
101*2716bd33SAndre Przywara				      <4 0x00000000 0x04000000>;
102*2716bd33SAndre Przywara				bank-width = <4>;
103*2716bd33SAndre Przywara			};
104*2716bd33SAndre Przywara
105*2716bd33SAndre Przywara			ethernet@202000000 {
106*2716bd33SAndre Przywara				compatible = "smsc,lan91c111";
107*2716bd33SAndre Przywara				reg = <2 0x02000000 0x10000>;
108*2716bd33SAndre Przywara				interrupts = <15>;
109*2716bd33SAndre Przywara			};
110*2716bd33SAndre Przywara
111*2716bd33SAndre Przywara			iofpga-bus@300000000 {
112*2716bd33SAndre Przywara				compatible = "simple-bus";
1134f6ad66aSAchin Gupta				#address-cells = <1>;
1144f6ad66aSAchin Gupta				#size-cells = <1>;
115*2716bd33SAndre 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";
131*2716bd33SAndre Przywara					assigned-clocks = <&v2m_sysctl 0>, <&v2m_sysctl 1>, <&v2m_sysctl 3>, <&v2m_sysctl 3>;
132*2716bd33SAndre 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
143*2716bd33SAndre 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
171*2716bd33SAndre 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
179*2716bd33SAndre 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
187*2716bd33SAndre 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
195*2716bd33SAndre 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
203*2716bd33SAndre 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>;
208*2716bd33SAndre 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
227*2716bd33SAndre Przywara				virtio@130000 {
228*2716bd33SAndre Przywara					compatible = "virtio,mmio";
229*2716bd33SAndre Przywara					reg = <0x130000 0x200>;
230*2716bd33SAndre Przywara					interrupts = <42>;
231*2716bd33SAndre Przywara				};
232*2716bd33SAndre Przywara
2334f6ad66aSAchin Gupta				rtc@170000 {
2344f6ad66aSAchin Gupta					compatible = "arm,pl031", "arm,primecell";
2354f6ad66aSAchin Gupta					reg = <0x170000 0x1000>;
23608f3c2bcSAndre Przywara					interrupts = <4>;
2374f6ad66aSAchin Gupta					clocks = <&v2m_clk24mhz>;
2384f6ad66aSAchin Gupta					clock-names = "apb_pclk";
2394f6ad66aSAchin Gupta				};
2404f6ad66aSAchin Gupta
2414f6ad66aSAchin Gupta				clcd@1f0000 {
2424f6ad66aSAchin Gupta					compatible = "arm,pl111", "arm,primecell";
2434f6ad66aSAchin Gupta					reg = <0x1f0000 0x1000>;
244*2716bd33SAndre Przywara					interrupt-names = "combined";
24508f3c2bcSAndre Przywara					interrupts = <14>;
2464f6ad66aSAchin Gupta					clocks = <&v2m_oscclk1>, <&v2m_clk24mhz>;
2474f6ad66aSAchin Gupta					clock-names = "clcdclk", "apb_pclk";
248*2716bd33SAndre Przywara					memory-region = <&vram>;
2494f6ad66aSAchin Gupta
250*2716bd33SAndre Przywara					port {
251*2716bd33SAndre Przywara						clcd_pads: endpoint {
252*2716bd33SAndre Przywara							remote-endpoint = <&panel_in>;
253*2716bd33SAndre Przywara							arm,pl11x,tft-r0g0b0-pads = <0 8 16>;
2544f6ad66aSAchin Gupta						};
2554f6ad66aSAchin Gupta					};
2564f6ad66aSAchin Gupta				};
2574f6ad66aSAchin Gupta			};
2584f6ad66aSAchin Gupta		};
2594f6ad66aSAchin Gupta	};
2604f6ad66aSAchin Gupta};
261