xref: /openbmc/linux/arch/arm64/boot/dts/arm/rtsm_ve-motherboard.dtsi (revision 4f2c0a4acffbec01079c28f839422e64ddeff004)
1b2441318SGreg Kroah-Hartman// SPDX-License-Identifier: GPL-2.0
2ca5b3410SRobert Richter/*
3ca5b3410SRobert Richter * ARM Ltd. Fast Models
4ca5b3410SRobert Richter *
5ca5b3410SRobert Richter * Versatile Express (VE) system model
6ca5b3410SRobert Richter * Motherboard component
7ca5b3410SRobert Richter *
8ca5b3410SRobert Richter * VEMotherBoard.lisa
9ca5b3410SRobert Richter */
10349b0f95SSudeep Holla/ {
11849bfc3dSAndre Przywara	v2m_clk24mhz: clk24mhz {
12849bfc3dSAndre Przywara		compatible = "fixed-clock";
13849bfc3dSAndre Przywara		#clock-cells = <0>;
14849bfc3dSAndre Przywara		clock-frequency = <24000000>;
15849bfc3dSAndre Przywara		clock-output-names = "v2m:clk24mhz";
16849bfc3dSAndre Przywara	};
17849bfc3dSAndre Przywara
18849bfc3dSAndre Przywara	v2m_refclk1mhz: refclk1mhz {
19849bfc3dSAndre Przywara		compatible = "fixed-clock";
20849bfc3dSAndre Przywara		#clock-cells = <0>;
21849bfc3dSAndre Przywara		clock-frequency = <1000000>;
22849bfc3dSAndre Przywara		clock-output-names = "v2m:refclk1mhz";
23849bfc3dSAndre Przywara	};
24849bfc3dSAndre Przywara
25849bfc3dSAndre Przywara	v2m_refclk32khz: refclk32khz {
26849bfc3dSAndre Przywara		compatible = "fixed-clock";
27849bfc3dSAndre Przywara		#clock-cells = <0>;
28849bfc3dSAndre Przywara		clock-frequency = <32768>;
29849bfc3dSAndre Przywara		clock-output-names = "v2m:refclk32khz";
30849bfc3dSAndre Przywara	};
31849bfc3dSAndre Przywara
32849bfc3dSAndre Przywara	v2m_fixed_3v3: v2m-3v3 {
33849bfc3dSAndre Przywara		compatible = "regulator-fixed";
34849bfc3dSAndre Przywara		regulator-name = "3V3";
35849bfc3dSAndre Przywara		regulator-min-microvolt = <3300000>;
36849bfc3dSAndre Przywara		regulator-max-microvolt = <3300000>;
37849bfc3dSAndre Przywara		regulator-always-on;
38849bfc3dSAndre Przywara	};
39849bfc3dSAndre Przywara
40849bfc3dSAndre Przywara	mcc {
41849bfc3dSAndre Przywara		compatible = "arm,vexpress,config-bus";
42849bfc3dSAndre Przywara		arm,vexpress,config-bridge = <&v2m_sysreg>;
43849bfc3dSAndre Przywara
44849bfc3dSAndre Przywara		v2m_oscclk1: oscclk1 {
45849bfc3dSAndre Przywara			/* CLCD clock */
46849bfc3dSAndre Przywara			compatible = "arm,vexpress-osc";
47849bfc3dSAndre Przywara			arm,vexpress-sysreg,func = <1 1>;
48849bfc3dSAndre Przywara			freq-range = <23750000 63500000>;
49849bfc3dSAndre Przywara			#clock-cells = <0>;
50849bfc3dSAndre Przywara			clock-output-names = "v2m:oscclk1";
51849bfc3dSAndre Przywara		};
52849bfc3dSAndre Przywara
53849bfc3dSAndre Przywara		reset {
54849bfc3dSAndre Przywara			compatible = "arm,vexpress-reset";
55849bfc3dSAndre Przywara			arm,vexpress-sysreg,func = <5 0>;
56849bfc3dSAndre Przywara		};
57849bfc3dSAndre Przywara
58849bfc3dSAndre Przywara		muxfpga {
59849bfc3dSAndre Przywara			compatible = "arm,vexpress-muxfpga";
60849bfc3dSAndre Przywara			arm,vexpress-sysreg,func = <7 0>;
61849bfc3dSAndre Przywara		};
62849bfc3dSAndre Przywara
63849bfc3dSAndre Przywara		shutdown {
64849bfc3dSAndre Przywara			compatible = "arm,vexpress-shutdown";
65849bfc3dSAndre Przywara			arm,vexpress-sysreg,func = <8 0>;
66849bfc3dSAndre Przywara		};
67849bfc3dSAndre Przywara
68849bfc3dSAndre Przywara		reboot {
69849bfc3dSAndre Przywara			compatible = "arm,vexpress-reboot";
70849bfc3dSAndre Przywara			arm,vexpress-sysreg,func = <9 0>;
71849bfc3dSAndre Przywara		};
72849bfc3dSAndre Przywara
73849bfc3dSAndre Przywara		dvimode {
74849bfc3dSAndre Przywara			compatible = "arm,vexpress-dvimode";
75849bfc3dSAndre Przywara			arm,vexpress-sysreg,func = <11 0>;
76849bfc3dSAndre Przywara		};
77849bfc3dSAndre Przywara	};
78849bfc3dSAndre Przywara
79bee7ff37SLinus Walleij	bus@8000000 {
80078fb7aaSRob Herring		compatible = "simple-bus";
81078fb7aaSRob Herring		#address-cells = <2>;
82078fb7aaSRob Herring		#size-cells = <1>;
83078fb7aaSRob Herring		ranges = <0 0x8000000 0 0x8000000 0x18000000>;
84078fb7aaSRob Herring
85078fb7aaSRob Herring		motherboard-bus@8000000 {
86ca5b3410SRobert Richter			compatible = "arm,vexpress,v2m-p1", "simple-bus";
87ca5b3410SRobert Richter			#address-cells = <2>; /* SMB chipselect number and offset */
88ca5b3410SRobert Richter			#size-cells = <1>;
89078fb7aaSRob Herring			ranges = <0 0 0 0x08000000 0x04000000>,
90078fb7aaSRob Herring				 <1 0 0 0x14000000 0x04000000>,
91078fb7aaSRob Herring				 <2 0 0 0x18000000 0x04000000>,
92078fb7aaSRob Herring				 <3 0 0 0x1c000000 0x04000000>,
93078fb7aaSRob Herring				 <4 0 0 0x0c000000 0x04000000>,
94078fb7aaSRob Herring				 <5 0 0 0x10000000 0x04000000>;
95ca5b3410SRobert Richter
96bb5cce12SAndre Przywara			flash@0 {
97ca5b3410SRobert Richter				compatible = "arm,vexpress-flash", "cfi-flash";
98ca5b3410SRobert Richter				reg = <0 0x00000000 0x04000000>,
99ca5b3410SRobert Richter				      <4 0x00000000 0x04000000>;
100ca5b3410SRobert Richter				bank-width = <4>;
101ca5b3410SRobert Richter			};
102ca5b3410SRobert Richter
103bb5cce12SAndre Przywara			ethernet@202000000 {
104ca5b3410SRobert Richter				compatible = "smsc,lan91c111";
105ca5b3410SRobert Richter				reg = <2 0x02000000 0x10000>;
106ca5b3410SRobert Richter				interrupts = <15>;
107ca5b3410SRobert Richter			};
108ca5b3410SRobert Richter
1099d0a36ddSAndre Przywara			iofpga-bus@300000000 {
1102ef7d5f3SMasahiro Yamada				compatible = "simple-bus";
111ca5b3410SRobert Richter				#address-cells = <1>;
112ca5b3410SRobert Richter				#size-cells = <1>;
1135393158fSDiego Sueiro				ranges = <0 3 0 0x210000>;
114ca5b3410SRobert Richter
115d8bcaabeSRob Herring				v2m_sysreg: sysreg@10000 {
116ca5b3410SRobert Richter					compatible = "arm,vexpress-sysreg";
117ca5b3410SRobert Richter					reg = <0x010000 0x1000>;
118ca5b3410SRobert Richter					gpio-controller;
119ca5b3410SRobert Richter					#gpio-cells = <2>;
120ca5b3410SRobert Richter				};
121ca5b3410SRobert Richter
122d8bcaabeSRob Herring				v2m_sysctl: sysctl@20000 {
123ca5b3410SRobert Richter					compatible = "arm,sp810", "arm,primecell";
124ca5b3410SRobert Richter					reg = <0x020000 0x1000>;
125ca5b3410SRobert Richter					clocks = <&v2m_refclk32khz>, <&v2m_refclk1mhz>, <&v2m_clk24mhz>;
126ca5b3410SRobert Richter					clock-names = "refclk", "timclk", "apb_pclk";
127ca5b3410SRobert Richter					#clock-cells = <1>;
128ca5b3410SRobert Richter					clock-output-names = "timerclken0", "timerclken1", "timerclken2", "timerclken3";
129341a670aSStephen Boyd					assigned-clocks = <&v2m_sysctl 0>, <&v2m_sysctl 1>, <&v2m_sysctl 3>, <&v2m_sysctl 3>;
130341a670aSStephen Boyd					assigned-clock-parents = <&v2m_refclk1mhz>, <&v2m_refclk1mhz>, <&v2m_refclk1mhz>, <&v2m_refclk1mhz>;
131ca5b3410SRobert Richter				};
132ca5b3410SRobert Richter
133d8bcaabeSRob Herring				aaci@40000 {
134ca5b3410SRobert Richter					compatible = "arm,pl041", "arm,primecell";
135ca5b3410SRobert Richter					reg = <0x040000 0x1000>;
136ca5b3410SRobert Richter					interrupts = <11>;
137ca5b3410SRobert Richter					clocks = <&v2m_clk24mhz>;
138ca5b3410SRobert Richter					clock-names = "apb_pclk";
139ca5b3410SRobert Richter				};
140ca5b3410SRobert Richter
141b43446b4SKrzysztof Kozlowski				mmc@50000 {
142ca5b3410SRobert Richter					compatible = "arm,pl180", "arm,primecell";
143ca5b3410SRobert Richter					reg = <0x050000 0x1000>;
14488c2ccc0SSudeep Holla					interrupts = <9>, <10>;
145ca5b3410SRobert Richter					cd-gpios = <&v2m_sysreg 0 0>;
146ca5b3410SRobert Richter					wp-gpios = <&v2m_sysreg 1 0>;
147ca5b3410SRobert Richter					max-frequency = <12000000>;
148ca5b3410SRobert Richter					vmmc-supply = <&v2m_fixed_3v3>;
149ca5b3410SRobert Richter					clocks = <&v2m_clk24mhz>, <&v2m_clk24mhz>;
150ca5b3410SRobert Richter					clock-names = "mclk", "apb_pclk";
151ca5b3410SRobert Richter				};
152ca5b3410SRobert Richter
153d8bcaabeSRob Herring				kmi@60000 {
154ca5b3410SRobert Richter					compatible = "arm,pl050", "arm,primecell";
155ca5b3410SRobert Richter					reg = <0x060000 0x1000>;
156ca5b3410SRobert Richter					interrupts = <12>;
157ca5b3410SRobert Richter					clocks = <&v2m_clk24mhz>, <&v2m_clk24mhz>;
158ca5b3410SRobert Richter					clock-names = "KMIREFCLK", "apb_pclk";
159ca5b3410SRobert Richter				};
160ca5b3410SRobert Richter
161d8bcaabeSRob Herring				kmi@70000 {
162ca5b3410SRobert Richter					compatible = "arm,pl050", "arm,primecell";
163ca5b3410SRobert Richter					reg = <0x070000 0x1000>;
164ca5b3410SRobert Richter					interrupts = <13>;
165ca5b3410SRobert Richter					clocks = <&v2m_clk24mhz>, <&v2m_clk24mhz>;
166ca5b3410SRobert Richter					clock-names = "KMIREFCLK", "apb_pclk";
167ca5b3410SRobert Richter				};
168ca5b3410SRobert Richter
169608f1b6cSAndre Przywara				v2m_serial0: serial@90000 {
170ca5b3410SRobert Richter					compatible = "arm,pl011", "arm,primecell";
171ca5b3410SRobert Richter					reg = <0x090000 0x1000>;
172ca5b3410SRobert Richter					interrupts = <5>;
173ca5b3410SRobert Richter					clocks = <&v2m_clk24mhz>, <&v2m_clk24mhz>;
174ca5b3410SRobert Richter					clock-names = "uartclk", "apb_pclk";
175ca5b3410SRobert Richter				};
176ca5b3410SRobert Richter
177608f1b6cSAndre Przywara				v2m_serial1: serial@a0000 {
178ca5b3410SRobert Richter					compatible = "arm,pl011", "arm,primecell";
179ca5b3410SRobert Richter					reg = <0x0a0000 0x1000>;
180ca5b3410SRobert Richter					interrupts = <6>;
181ca5b3410SRobert Richter					clocks = <&v2m_clk24mhz>, <&v2m_clk24mhz>;
182ca5b3410SRobert Richter					clock-names = "uartclk", "apb_pclk";
183ca5b3410SRobert Richter				};
184ca5b3410SRobert Richter
185608f1b6cSAndre Przywara				v2m_serial2: serial@b0000 {
186ca5b3410SRobert Richter					compatible = "arm,pl011", "arm,primecell";
187ca5b3410SRobert Richter					reg = <0x0b0000 0x1000>;
188ca5b3410SRobert Richter					interrupts = <7>;
189ca5b3410SRobert Richter					clocks = <&v2m_clk24mhz>, <&v2m_clk24mhz>;
190ca5b3410SRobert Richter					clock-names = "uartclk", "apb_pclk";
191ca5b3410SRobert Richter				};
192ca5b3410SRobert Richter
193608f1b6cSAndre Przywara				v2m_serial3: serial@c0000 {
194ca5b3410SRobert Richter					compatible = "arm,pl011", "arm,primecell";
195ca5b3410SRobert Richter					reg = <0x0c0000 0x1000>;
196ca5b3410SRobert Richter					interrupts = <8>;
197ca5b3410SRobert Richter					clocks = <&v2m_clk24mhz>, <&v2m_clk24mhz>;
198ca5b3410SRobert Richter					clock-names = "uartclk", "apb_pclk";
199ca5b3410SRobert Richter				};
200ca5b3410SRobert Richter
201b43446b4SKrzysztof Kozlowski				watchdog@f0000 {
202ca5b3410SRobert Richter					compatible = "arm,sp805", "arm,primecell";
203ca5b3410SRobert Richter					reg = <0x0f0000 0x1000>;
204ca5b3410SRobert Richter					interrupts = <0>;
205ca5b3410SRobert Richter					clocks = <&v2m_refclk32khz>, <&v2m_clk24mhz>;
206b83ded8aSAndre Przywara					clock-names = "wdog_clk", "apb_pclk";
207ca5b3410SRobert Richter				};
208ca5b3410SRobert Richter
209ca5b3410SRobert Richter				v2m_timer01: timer@110000 {
210ca5b3410SRobert Richter					compatible = "arm,sp804", "arm,primecell";
211ca5b3410SRobert Richter					reg = <0x110000 0x1000>;
212ca5b3410SRobert Richter					interrupts = <2>;
213ca5b3410SRobert Richter					clocks = <&v2m_sysctl 0>, <&v2m_sysctl 1>, <&v2m_clk24mhz>;
214ca5b3410SRobert Richter					clock-names = "timclken1", "timclken2", "apb_pclk";
215ca5b3410SRobert Richter				};
216ca5b3410SRobert Richter
217ca5b3410SRobert Richter				v2m_timer23: timer@120000 {
218ca5b3410SRobert Richter					compatible = "arm,sp804", "arm,primecell";
219ca5b3410SRobert Richter					reg = <0x120000 0x1000>;
220ca5b3410SRobert Richter					interrupts = <3>;
221ca5b3410SRobert Richter					clocks = <&v2m_sysctl 2>, <&v2m_sysctl 3>, <&v2m_clk24mhz>;
222ca5b3410SRobert Richter					clock-names = "timclken1", "timclken2", "apb_pclk";
223ca5b3410SRobert Richter				};
224ca5b3410SRobert Richter
225*d7030edfSSudeep Holla				virtio@130000 {
22620d00c40SSudeep Holla					compatible = "virtio,mmio";
22720d00c40SSudeep Holla					reg = <0x130000 0x200>;
22820d00c40SSudeep Holla					interrupts = <42>;
22920d00c40SSudeep Holla				};
23020d00c40SSudeep Holla
231ca5b3410SRobert Richter				rtc@170000 {
232ca5b3410SRobert Richter					compatible = "arm,pl031", "arm,primecell";
233ca5b3410SRobert Richter					reg = <0x170000 0x1000>;
234ca5b3410SRobert Richter					interrupts = <4>;
235ca5b3410SRobert Richter					clocks = <&v2m_clk24mhz>;
236ca5b3410SRobert Richter					clock-names = "apb_pclk";
237ca5b3410SRobert Richter				};
238ca5b3410SRobert Richter
239ca5b3410SRobert Richter				clcd@1f0000 {
240ca5b3410SRobert Richter					compatible = "arm,pl111", "arm,primecell";
241ca5b3410SRobert Richter					reg = <0x1f0000 0x1000>;
24254981a42SOlof Johansson					interrupt-names = "combined";
243ca5b3410SRobert Richter					interrupts = <14>;
244ca5b3410SRobert Richter					clocks = <&v2m_oscclk1>, <&v2m_clk24mhz>;
245ca5b3410SRobert Richter					clock-names = "clcdclk", "apb_pclk";
246f1fe12c8SLinus Walleij					memory-region = <&vram>;
24754981a42SOlof Johansson
24854981a42SOlof Johansson					port {
249f1fe12c8SLinus Walleij						clcd_pads: endpoint {
250f1fe12c8SLinus Walleij							remote-endpoint = <&panel_in>;
25154981a42SOlof Johansson							arm,pl11x,tft-r0g0b0-pads = <0 8 16>;
25254981a42SOlof Johansson						};
25354981a42SOlof Johansson					};
254ca5b3410SRobert Richter				};
255ca5b3410SRobert Richter			};
256ca5b3410SRobert Richter		};
257349b0f95SSudeep Holla	};
258349b0f95SSudeep Holla};
259