xref: /freebsd-src/sys/contrib/device-tree/src/arm64/apm/apm-shadowcat.dtsi (revision 7d0873ebb83b19ba1e8a89e679470d885efe12e3)
1c66ec88fSEmmanuel Vadot// SPDX-License-Identifier: GPL-2.0-or-later
2c66ec88fSEmmanuel Vadot/*
3c66ec88fSEmmanuel Vadot * dts file for AppliedMicro (APM) X-Gene Shadowcat SOC
4c66ec88fSEmmanuel Vadot *
5c66ec88fSEmmanuel Vadot * Copyright (C) 2015, Applied Micro Circuits Corporation
6c66ec88fSEmmanuel Vadot */
7c66ec88fSEmmanuel Vadot
8c66ec88fSEmmanuel Vadot/ {
9c66ec88fSEmmanuel Vadot	compatible = "apm,xgene-shadowcat";
10c66ec88fSEmmanuel Vadot	interrupt-parent = <&gic>;
11c66ec88fSEmmanuel Vadot	#address-cells = <2>;
12c66ec88fSEmmanuel Vadot	#size-cells = <2>;
13c66ec88fSEmmanuel Vadot
14c66ec88fSEmmanuel Vadot	cpus {
15c66ec88fSEmmanuel Vadot		#address-cells = <2>;
16c66ec88fSEmmanuel Vadot		#size-cells = <0>;
17c66ec88fSEmmanuel Vadot
18c66ec88fSEmmanuel Vadot		cpu@0 {
19c66ec88fSEmmanuel Vadot			device_type = "cpu";
20c66ec88fSEmmanuel Vadot			compatible = "apm,strega";
21c66ec88fSEmmanuel Vadot			reg = <0x0 0x000>;
22c66ec88fSEmmanuel Vadot			enable-method = "spin-table";
23c66ec88fSEmmanuel Vadot			cpu-release-addr = <0x1 0x0000fff8>;
24c66ec88fSEmmanuel Vadot			next-level-cache = <&xgene_L2_0>;
25c66ec88fSEmmanuel Vadot			#clock-cells = <1>;
26c66ec88fSEmmanuel Vadot			clocks = <&pmd0clk 0>;
27c66ec88fSEmmanuel Vadot		};
28c66ec88fSEmmanuel Vadot		cpu@1 {
29c66ec88fSEmmanuel Vadot			device_type = "cpu";
30c66ec88fSEmmanuel Vadot			compatible = "apm,strega";
31c66ec88fSEmmanuel Vadot			reg = <0x0 0x001>;
32c66ec88fSEmmanuel Vadot			enable-method = "spin-table";
33c66ec88fSEmmanuel Vadot			cpu-release-addr = <0x1 0x0000fff8>;
34c66ec88fSEmmanuel Vadot			next-level-cache = <&xgene_L2_0>;
35c66ec88fSEmmanuel Vadot			#clock-cells = <1>;
36c66ec88fSEmmanuel Vadot			clocks = <&pmd0clk 0>;
37c66ec88fSEmmanuel Vadot		};
38c66ec88fSEmmanuel Vadot		cpu@100 {
39c66ec88fSEmmanuel Vadot			device_type = "cpu";
40c66ec88fSEmmanuel Vadot			compatible = "apm,strega";
41c66ec88fSEmmanuel Vadot			reg = <0x0 0x100>;
42c66ec88fSEmmanuel Vadot			enable-method = "spin-table";
43c66ec88fSEmmanuel Vadot			cpu-release-addr = <0x1 0x0000fff8>;
44c66ec88fSEmmanuel Vadot			next-level-cache = <&xgene_L2_1>;
45c66ec88fSEmmanuel Vadot			#clock-cells = <1>;
46c66ec88fSEmmanuel Vadot			clocks = <&pmd1clk 0>;
47c66ec88fSEmmanuel Vadot		};
48c66ec88fSEmmanuel Vadot		cpu@101 {
49c66ec88fSEmmanuel Vadot			device_type = "cpu";
50c66ec88fSEmmanuel Vadot			compatible = "apm,strega";
51c66ec88fSEmmanuel Vadot			reg = <0x0 0x101>;
52c66ec88fSEmmanuel Vadot			enable-method = "spin-table";
53c66ec88fSEmmanuel Vadot			cpu-release-addr = <0x1 0x0000fff8>;
54c66ec88fSEmmanuel Vadot			next-level-cache = <&xgene_L2_1>;
55c66ec88fSEmmanuel Vadot			#clock-cells = <1>;
56c66ec88fSEmmanuel Vadot			clocks = <&pmd1clk 0>;
57c66ec88fSEmmanuel Vadot		};
58c66ec88fSEmmanuel Vadot		cpu@200 {
59c66ec88fSEmmanuel Vadot			device_type = "cpu";
60c66ec88fSEmmanuel Vadot			compatible = "apm,strega";
61c66ec88fSEmmanuel Vadot			reg = <0x0 0x200>;
62c66ec88fSEmmanuel Vadot			enable-method = "spin-table";
63c66ec88fSEmmanuel Vadot			cpu-release-addr = <0x1 0x0000fff8>;
64c66ec88fSEmmanuel Vadot			next-level-cache = <&xgene_L2_2>;
65c66ec88fSEmmanuel Vadot			#clock-cells = <1>;
66c66ec88fSEmmanuel Vadot			clocks = <&pmd2clk 0>;
67c66ec88fSEmmanuel Vadot		};
68c66ec88fSEmmanuel Vadot		cpu@201 {
69c66ec88fSEmmanuel Vadot			device_type = "cpu";
70c66ec88fSEmmanuel Vadot			compatible = "apm,strega";
71c66ec88fSEmmanuel Vadot			reg = <0x0 0x201>;
72c66ec88fSEmmanuel Vadot			enable-method = "spin-table";
73c66ec88fSEmmanuel Vadot			cpu-release-addr = <0x1 0x0000fff8>;
74c66ec88fSEmmanuel Vadot			next-level-cache = <&xgene_L2_2>;
75c66ec88fSEmmanuel Vadot			#clock-cells = <1>;
76c66ec88fSEmmanuel Vadot			clocks = <&pmd2clk 0>;
77c66ec88fSEmmanuel Vadot		};
78c66ec88fSEmmanuel Vadot		cpu@300 {
79c66ec88fSEmmanuel Vadot			device_type = "cpu";
80c66ec88fSEmmanuel Vadot			compatible = "apm,strega";
81c66ec88fSEmmanuel Vadot			reg = <0x0 0x300>;
82c66ec88fSEmmanuel Vadot			enable-method = "spin-table";
83c66ec88fSEmmanuel Vadot			cpu-release-addr = <0x1 0x0000fff8>;
84c66ec88fSEmmanuel Vadot			next-level-cache = <&xgene_L2_3>;
85c66ec88fSEmmanuel Vadot			#clock-cells = <1>;
86c66ec88fSEmmanuel Vadot			clocks = <&pmd3clk 0>;
87c66ec88fSEmmanuel Vadot		};
88c66ec88fSEmmanuel Vadot		cpu@301 {
89c66ec88fSEmmanuel Vadot			device_type = "cpu";
90c66ec88fSEmmanuel Vadot			compatible = "apm,strega";
91c66ec88fSEmmanuel Vadot			reg = <0x0 0x301>;
92c66ec88fSEmmanuel Vadot			enable-method = "spin-table";
93c66ec88fSEmmanuel Vadot			cpu-release-addr = <0x1 0x0000fff8>;
94c66ec88fSEmmanuel Vadot			next-level-cache = <&xgene_L2_3>;
95c66ec88fSEmmanuel Vadot			#clock-cells = <1>;
96c66ec88fSEmmanuel Vadot			clocks = <&pmd3clk 0>;
97c66ec88fSEmmanuel Vadot		};
98c66ec88fSEmmanuel Vadot		xgene_L2_0: l2-cache-0 {
99c66ec88fSEmmanuel Vadot			compatible = "cache";
100f126890aSEmmanuel Vadot			cache-level = <2>;
101f126890aSEmmanuel Vadot			cache-unified;
102c66ec88fSEmmanuel Vadot		};
103c66ec88fSEmmanuel Vadot		xgene_L2_1: l2-cache-1 {
104c66ec88fSEmmanuel Vadot			compatible = "cache";
105f126890aSEmmanuel Vadot			cache-level = <2>;
106f126890aSEmmanuel Vadot			cache-unified;
107c66ec88fSEmmanuel Vadot		};
108c66ec88fSEmmanuel Vadot		xgene_L2_2: l2-cache-2 {
109c66ec88fSEmmanuel Vadot			compatible = "cache";
110f126890aSEmmanuel Vadot			cache-level = <2>;
111f126890aSEmmanuel Vadot			cache-unified;
112c66ec88fSEmmanuel Vadot		};
113c66ec88fSEmmanuel Vadot		xgene_L2_3: l2-cache-3 {
114c66ec88fSEmmanuel Vadot			compatible = "cache";
115f126890aSEmmanuel Vadot			cache-level = <2>;
116f126890aSEmmanuel Vadot			cache-unified;
117c66ec88fSEmmanuel Vadot		};
118c66ec88fSEmmanuel Vadot	};
119c66ec88fSEmmanuel Vadot
120c66ec88fSEmmanuel Vadot	gic: interrupt-controller@78090000 {
121c66ec88fSEmmanuel Vadot		compatible = "arm,cortex-a15-gic";
122c66ec88fSEmmanuel Vadot		#interrupt-cells = <3>;
123c66ec88fSEmmanuel Vadot		#address-cells = <2>;
124c66ec88fSEmmanuel Vadot		#size-cells = <2>;
125c66ec88fSEmmanuel Vadot		interrupt-controller;
126c66ec88fSEmmanuel Vadot		interrupts = <1 9 0xf04>;	/* GIC Maintenence IRQ */
127c66ec88fSEmmanuel Vadot		ranges = <0 0 0 0x79000000 0x0 0x800000>; /* MSI Range */
128c66ec88fSEmmanuel Vadot		reg = <0x0 0x78090000 0x0 0x10000>,	/* GIC Dist */
129c66ec88fSEmmanuel Vadot		      <0x0 0x780a0000 0x0 0x20000>,	/* GIC CPU */
130c66ec88fSEmmanuel Vadot		      <0x0 0x780c0000 0x0 0x10000>,	/* GIC VCPU Control */
131c66ec88fSEmmanuel Vadot		      <0x0 0x780e0000 0x0 0x20000>;	/* GIC VCPU */
132c66ec88fSEmmanuel Vadot		v2m0: v2m@0 {
133c66ec88fSEmmanuel Vadot			compatible = "arm,gic-v2m-frame";
134c66ec88fSEmmanuel Vadot			msi-controller;
135c66ec88fSEmmanuel Vadot			reg = <0x0 0x0 0x0 0x1000>;
136c66ec88fSEmmanuel Vadot		};
137c66ec88fSEmmanuel Vadot		v2m1: v2m@10000 {
138c66ec88fSEmmanuel Vadot			compatible = "arm,gic-v2m-frame";
139c66ec88fSEmmanuel Vadot			msi-controller;
140c66ec88fSEmmanuel Vadot			reg = <0x0 0x10000 0x0 0x1000>;
141c66ec88fSEmmanuel Vadot		};
142c66ec88fSEmmanuel Vadot		v2m2: v2m@20000 {
143c66ec88fSEmmanuel Vadot			compatible = "arm,gic-v2m-frame";
144c66ec88fSEmmanuel Vadot			msi-controller;
145c66ec88fSEmmanuel Vadot			reg = <0x0 0x20000 0x0 0x1000>;
146c66ec88fSEmmanuel Vadot		};
147c66ec88fSEmmanuel Vadot		v2m3: v2m@30000 {
148c66ec88fSEmmanuel Vadot			compatible = "arm,gic-v2m-frame";
149c66ec88fSEmmanuel Vadot			msi-controller;
150c66ec88fSEmmanuel Vadot			reg = <0x0 0x30000 0x0 0x1000>;
151c66ec88fSEmmanuel Vadot		};
152c66ec88fSEmmanuel Vadot		v2m4: v2m@40000 {
153c66ec88fSEmmanuel Vadot			compatible = "arm,gic-v2m-frame";
154c66ec88fSEmmanuel Vadot			msi-controller;
155c66ec88fSEmmanuel Vadot			reg = <0x0 0x40000 0x0 0x1000>;
156c66ec88fSEmmanuel Vadot		};
157c66ec88fSEmmanuel Vadot		v2m5: v2m@50000 {
158c66ec88fSEmmanuel Vadot			compatible = "arm,gic-v2m-frame";
159c66ec88fSEmmanuel Vadot			msi-controller;
160c66ec88fSEmmanuel Vadot			reg = <0x0 0x50000 0x0 0x1000>;
161c66ec88fSEmmanuel Vadot		};
162c66ec88fSEmmanuel Vadot		v2m6: v2m@60000 {
163c66ec88fSEmmanuel Vadot			compatible = "arm,gic-v2m-frame";
164c66ec88fSEmmanuel Vadot			msi-controller;
165c66ec88fSEmmanuel Vadot			reg = <0x0 0x60000 0x0 0x1000>;
166c66ec88fSEmmanuel Vadot		};
167c66ec88fSEmmanuel Vadot		v2m7: v2m@70000 {
168c66ec88fSEmmanuel Vadot			compatible = "arm,gic-v2m-frame";
169c66ec88fSEmmanuel Vadot			msi-controller;
170c66ec88fSEmmanuel Vadot			reg = <0x0 0x70000 0x0 0x1000>;
171c66ec88fSEmmanuel Vadot		};
172c66ec88fSEmmanuel Vadot		v2m8: v2m@80000 {
173c66ec88fSEmmanuel Vadot			compatible = "arm,gic-v2m-frame";
174c66ec88fSEmmanuel Vadot			msi-controller;
175c66ec88fSEmmanuel Vadot			reg = <0x0 0x80000 0x0 0x1000>;
176c66ec88fSEmmanuel Vadot		};
177c66ec88fSEmmanuel Vadot		v2m9: v2m@90000 {
178c66ec88fSEmmanuel Vadot			compatible = "arm,gic-v2m-frame";
179c66ec88fSEmmanuel Vadot			msi-controller;
180c66ec88fSEmmanuel Vadot			reg = <0x0 0x90000 0x0 0x1000>;
181c66ec88fSEmmanuel Vadot		};
182c66ec88fSEmmanuel Vadot		v2m10: v2m@a0000 {
183c66ec88fSEmmanuel Vadot			compatible = "arm,gic-v2m-frame";
184c66ec88fSEmmanuel Vadot			msi-controller;
185c66ec88fSEmmanuel Vadot			reg = <0x0 0xa0000 0x0 0x1000>;
186c66ec88fSEmmanuel Vadot		};
187c66ec88fSEmmanuel Vadot		v2m11: v2m@b0000 {
188c66ec88fSEmmanuel Vadot			compatible = "arm,gic-v2m-frame";
189c66ec88fSEmmanuel Vadot			msi-controller;
190c66ec88fSEmmanuel Vadot			reg = <0x0 0xb0000 0x0 0x1000>;
191c66ec88fSEmmanuel Vadot		};
192c66ec88fSEmmanuel Vadot		v2m12: v2m@c0000 {
193c66ec88fSEmmanuel Vadot			compatible = "arm,gic-v2m-frame";
194c66ec88fSEmmanuel Vadot			msi-controller;
195c66ec88fSEmmanuel Vadot			reg = <0x0 0xc0000 0x0 0x1000>;
196c66ec88fSEmmanuel Vadot		};
197c66ec88fSEmmanuel Vadot		v2m13: v2m@d0000 {
198c66ec88fSEmmanuel Vadot			compatible = "arm,gic-v2m-frame";
199c66ec88fSEmmanuel Vadot			msi-controller;
200c66ec88fSEmmanuel Vadot			reg = <0x0 0xd0000 0x0 0x1000>;
201c66ec88fSEmmanuel Vadot		};
202c66ec88fSEmmanuel Vadot		v2m14: v2m@e0000 {
203c66ec88fSEmmanuel Vadot			compatible = "arm,gic-v2m-frame";
204c66ec88fSEmmanuel Vadot			msi-controller;
205c66ec88fSEmmanuel Vadot			reg = <0x0 0xe0000 0x0 0x1000>;
206c66ec88fSEmmanuel Vadot		};
207c66ec88fSEmmanuel Vadot		v2m15: v2m@f0000 {
208c66ec88fSEmmanuel Vadot			compatible = "arm,gic-v2m-frame";
209c66ec88fSEmmanuel Vadot			msi-controller;
210c66ec88fSEmmanuel Vadot			reg = <0x0 0xf0000 0x0 0x1000>;
211c66ec88fSEmmanuel Vadot		};
212c66ec88fSEmmanuel Vadot	};
213c66ec88fSEmmanuel Vadot
214*7d0873ebSEmmanuel Vadot	refclk: refclk {
215*7d0873ebSEmmanuel Vadot		compatible = "fixed-clock";
216*7d0873ebSEmmanuel Vadot		#clock-cells = <1>;
217*7d0873ebSEmmanuel Vadot		clock-frequency = <100000000>;
218*7d0873ebSEmmanuel Vadot		clock-output-names = "refclk";
219*7d0873ebSEmmanuel Vadot	};
220*7d0873ebSEmmanuel Vadot
221c66ec88fSEmmanuel Vadot	pmu {
222c66ec88fSEmmanuel Vadot		compatible = "arm,armv8-pmuv3";
223c66ec88fSEmmanuel Vadot		interrupts = <1 12 0xff04>;
224c66ec88fSEmmanuel Vadot	};
225c66ec88fSEmmanuel Vadot
226c66ec88fSEmmanuel Vadot	timer {
227c66ec88fSEmmanuel Vadot		compatible = "arm,armv8-timer";
228c66ec88fSEmmanuel Vadot		interrupts = <1 0 0xff08>,	/* Secure Phys IRQ */
229c66ec88fSEmmanuel Vadot			     <1 13 0xff08>,	/* Non-secure Phys IRQ */
230c66ec88fSEmmanuel Vadot			     <1 14 0xff08>,	/* Virt IRQ */
231c66ec88fSEmmanuel Vadot			     <1 15 0xff08>;	/* Hyp IRQ */
232c66ec88fSEmmanuel Vadot		clock-frequency = <50000000>;
233c66ec88fSEmmanuel Vadot	};
234c66ec88fSEmmanuel Vadot
235c66ec88fSEmmanuel Vadot	soc {
236c66ec88fSEmmanuel Vadot		compatible = "simple-bus";
237c66ec88fSEmmanuel Vadot		#address-cells = <2>;
238c66ec88fSEmmanuel Vadot		#size-cells = <2>;
239c66ec88fSEmmanuel Vadot		ranges;
240c66ec88fSEmmanuel Vadot
241c66ec88fSEmmanuel Vadot		clocks {
242c66ec88fSEmmanuel Vadot			#address-cells = <2>;
243c66ec88fSEmmanuel Vadot			#size-cells = <2>;
244c66ec88fSEmmanuel Vadot			ranges;
245c66ec88fSEmmanuel Vadot
246c66ec88fSEmmanuel Vadot			pmdpll: pmdpll@170000f0 {
247c66ec88fSEmmanuel Vadot				compatible = "apm,xgene-pcppll-v2-clock";
248c66ec88fSEmmanuel Vadot				#clock-cells = <1>;
249c66ec88fSEmmanuel Vadot				clocks = <&refclk 0>;
250c66ec88fSEmmanuel Vadot				reg = <0x0 0x170000f0 0x0 0x10>;
251c66ec88fSEmmanuel Vadot				clock-output-names = "pmdpll";
252c66ec88fSEmmanuel Vadot			};
253c66ec88fSEmmanuel Vadot
254c66ec88fSEmmanuel Vadot			pmd0clk: pmd0clk@7e200200 {
255c66ec88fSEmmanuel Vadot				compatible = "apm,xgene-pmd-clock";
256c66ec88fSEmmanuel Vadot				#clock-cells = <1>;
257c66ec88fSEmmanuel Vadot				clocks = <&pmdpll 0>;
258c66ec88fSEmmanuel Vadot				reg = <0x0 0x7e200200 0x0 0x10>;
259c66ec88fSEmmanuel Vadot				clock-output-names = "pmd0clk";
260c66ec88fSEmmanuel Vadot			};
261c66ec88fSEmmanuel Vadot
262c66ec88fSEmmanuel Vadot			pmd1clk: pmd1clk@7e200210 {
263c66ec88fSEmmanuel Vadot				compatible = "apm,xgene-pmd-clock";
264c66ec88fSEmmanuel Vadot				#clock-cells = <1>;
265c66ec88fSEmmanuel Vadot				clocks = <&pmdpll 0>;
266c66ec88fSEmmanuel Vadot				reg = <0x0 0x7e200210 0x0 0x10>;
267c66ec88fSEmmanuel Vadot				clock-output-names = "pmd1clk";
268c66ec88fSEmmanuel Vadot			};
269c66ec88fSEmmanuel Vadot
270c66ec88fSEmmanuel Vadot			pmd2clk: pmd2clk@7e200220 {
271c66ec88fSEmmanuel Vadot				compatible = "apm,xgene-pmd-clock";
272c66ec88fSEmmanuel Vadot				#clock-cells = <1>;
273c66ec88fSEmmanuel Vadot				clocks = <&pmdpll 0>;
274c66ec88fSEmmanuel Vadot				reg = <0x0 0x7e200220 0x0 0x10>;
275c66ec88fSEmmanuel Vadot				clock-output-names = "pmd2clk";
276c66ec88fSEmmanuel Vadot			};
277c66ec88fSEmmanuel Vadot
278c66ec88fSEmmanuel Vadot			pmd3clk: pmd3clk@7e200230 {
279c66ec88fSEmmanuel Vadot				compatible = "apm,xgene-pmd-clock";
280c66ec88fSEmmanuel Vadot				#clock-cells = <1>;
281c66ec88fSEmmanuel Vadot				clocks = <&pmdpll 0>;
282c66ec88fSEmmanuel Vadot				reg = <0x0 0x7e200230 0x0 0x10>;
283c66ec88fSEmmanuel Vadot				clock-output-names = "pmd3clk";
284c66ec88fSEmmanuel Vadot			};
285c66ec88fSEmmanuel Vadot
286c66ec88fSEmmanuel Vadot			socpll: socpll@17000120 {
287c66ec88fSEmmanuel Vadot				compatible = "apm,xgene-socpll-v2-clock";
288c66ec88fSEmmanuel Vadot				#clock-cells = <1>;
289c66ec88fSEmmanuel Vadot				clocks = <&refclk 0>;
290c66ec88fSEmmanuel Vadot				reg = <0x0 0x17000120 0x0 0x1000>;
291c66ec88fSEmmanuel Vadot				clock-output-names = "socpll";
292c66ec88fSEmmanuel Vadot			};
293c66ec88fSEmmanuel Vadot
294c66ec88fSEmmanuel Vadot			socplldiv2: socplldiv2  {
295c66ec88fSEmmanuel Vadot				compatible = "fixed-factor-clock";
296c66ec88fSEmmanuel Vadot				#clock-cells = <1>;
297c66ec88fSEmmanuel Vadot				clocks = <&socpll 0>;
298c66ec88fSEmmanuel Vadot				clock-mult = <1>;
299c66ec88fSEmmanuel Vadot				clock-div = <2>;
300c66ec88fSEmmanuel Vadot				clock-output-names = "socplldiv2";
301c66ec88fSEmmanuel Vadot			};
302c66ec88fSEmmanuel Vadot
303c66ec88fSEmmanuel Vadot			ahbclk: ahbclk@17000000 {
304c66ec88fSEmmanuel Vadot				compatible = "apm,xgene-device-clock";
305c66ec88fSEmmanuel Vadot				#clock-cells = <1>;
306c66ec88fSEmmanuel Vadot				clocks = <&socplldiv2 0>;
307c66ec88fSEmmanuel Vadot				reg = <0x0 0x17000000 0x0 0x2000>;
308c66ec88fSEmmanuel Vadot				reg-names = "div-reg";
309c66ec88fSEmmanuel Vadot				divider-offset = <0x164>;
310c66ec88fSEmmanuel Vadot				divider-width = <0x5>;
311c66ec88fSEmmanuel Vadot				divider-shift = <0x0>;
312c66ec88fSEmmanuel Vadot				clock-output-names = "ahbclk";
313c66ec88fSEmmanuel Vadot			};
314c66ec88fSEmmanuel Vadot
315c66ec88fSEmmanuel Vadot			sbapbclk: sbapbclk@1704c000 {
316c66ec88fSEmmanuel Vadot				compatible = "apm,xgene-device-clock";
317c66ec88fSEmmanuel Vadot				#clock-cells = <1>;
318c66ec88fSEmmanuel Vadot				clocks = <&ahbclk 0>;
319c66ec88fSEmmanuel Vadot				reg = <0x0 0x1704c000 0x0 0x2000>;
320c66ec88fSEmmanuel Vadot				reg-names = "div-reg";
321c66ec88fSEmmanuel Vadot				divider-offset = <0x10>;
322c66ec88fSEmmanuel Vadot				divider-width = <0x2>;
323c66ec88fSEmmanuel Vadot				divider-shift = <0x0>;
324c66ec88fSEmmanuel Vadot				clock-output-names = "sbapbclk";
325c66ec88fSEmmanuel Vadot			};
326c66ec88fSEmmanuel Vadot
327c66ec88fSEmmanuel Vadot			sdioclk: sdioclk@1f2ac000 {
328c66ec88fSEmmanuel Vadot				compatible = "apm,xgene-device-clock";
329c66ec88fSEmmanuel Vadot				#clock-cells = <1>;
330c66ec88fSEmmanuel Vadot				clocks = <&socplldiv2 0>;
331c66ec88fSEmmanuel Vadot				reg = <0x0 0x1f2ac000 0x0 0x1000
332c66ec88fSEmmanuel Vadot					0x0 0x17000000 0x0 0x2000>;
333c66ec88fSEmmanuel Vadot				reg-names = "csr-reg", "div-reg";
334c66ec88fSEmmanuel Vadot				csr-offset = <0x0>;
335c66ec88fSEmmanuel Vadot				csr-mask = <0x2>;
336c66ec88fSEmmanuel Vadot				enable-offset = <0x8>;
337c66ec88fSEmmanuel Vadot				enable-mask = <0x2>;
338c66ec88fSEmmanuel Vadot				divider-offset = <0x178>;
339c66ec88fSEmmanuel Vadot				divider-width = <0x8>;
340c66ec88fSEmmanuel Vadot				divider-shift = <0x0>;
341c66ec88fSEmmanuel Vadot				clock-output-names = "sdioclk";
342c66ec88fSEmmanuel Vadot			};
343c66ec88fSEmmanuel Vadot
344c66ec88fSEmmanuel Vadot			pcie0clk: pcie0clk@1f2bc000 {
345c66ec88fSEmmanuel Vadot				compatible = "apm,xgene-device-clock";
346c66ec88fSEmmanuel Vadot				#clock-cells = <1>;
347c66ec88fSEmmanuel Vadot				clocks = <&socplldiv2 0>;
348c66ec88fSEmmanuel Vadot				reg = <0x0 0x1f2bc000 0x0 0x1000>;
349c66ec88fSEmmanuel Vadot				reg-names = "csr-reg";
350c66ec88fSEmmanuel Vadot				clock-output-names = "pcie0clk";
351c66ec88fSEmmanuel Vadot			};
352c66ec88fSEmmanuel Vadot
353c66ec88fSEmmanuel Vadot			pcie1clk: pcie1clk@1f2cc000 {
354c66ec88fSEmmanuel Vadot				compatible = "apm,xgene-device-clock";
355c66ec88fSEmmanuel Vadot				#clock-cells = <1>;
356c66ec88fSEmmanuel Vadot				clocks = <&socplldiv2 0>;
357c66ec88fSEmmanuel Vadot				reg = <0x0 0x1f2cc000 0x0 0x1000>;
358c66ec88fSEmmanuel Vadot				reg-names = "csr-reg";
359c66ec88fSEmmanuel Vadot				clock-output-names = "pcie1clk";
360c66ec88fSEmmanuel Vadot			};
361c66ec88fSEmmanuel Vadot
362c66ec88fSEmmanuel Vadot			xge0clk: xge0clk@1f61c000 {
363c66ec88fSEmmanuel Vadot				compatible = "apm,xgene-device-clock";
364c66ec88fSEmmanuel Vadot				#clock-cells = <1>;
365c66ec88fSEmmanuel Vadot				clocks = <&socplldiv2 0>;
366c66ec88fSEmmanuel Vadot				reg = <0x0 0x1f61c000 0x0 0x1000>;
367c66ec88fSEmmanuel Vadot				reg-names = "csr-reg";
368c66ec88fSEmmanuel Vadot				enable-mask = <0x3>;
369c66ec88fSEmmanuel Vadot				csr-mask = <0x3>;
370c66ec88fSEmmanuel Vadot				clock-output-names = "xge0clk";
371c66ec88fSEmmanuel Vadot			};
372c66ec88fSEmmanuel Vadot
373c66ec88fSEmmanuel Vadot			xge1clk: xge1clk@1f62c000 {
374c66ec88fSEmmanuel Vadot				compatible = "apm,xgene-device-clock";
375c66ec88fSEmmanuel Vadot				#clock-cells = <1>;
376c66ec88fSEmmanuel Vadot				clocks = <&socplldiv2 0>;
377c66ec88fSEmmanuel Vadot				reg = <0x0 0x1f62c000 0x0 0x1000>;
378c66ec88fSEmmanuel Vadot				reg-names = "csr-reg";
379c66ec88fSEmmanuel Vadot				enable-mask = <0x3>;
380c66ec88fSEmmanuel Vadot				csr-mask = <0x3>;
381c66ec88fSEmmanuel Vadot				clock-output-names = "xge1clk";
382c66ec88fSEmmanuel Vadot			};
383c66ec88fSEmmanuel Vadot
384c66ec88fSEmmanuel Vadot			rngpkaclk: rngpkaclk@17000000 {
385c66ec88fSEmmanuel Vadot				compatible = "apm,xgene-device-clock";
386c66ec88fSEmmanuel Vadot				#clock-cells = <1>;
387c66ec88fSEmmanuel Vadot				clocks = <&socplldiv2 0>;
388c66ec88fSEmmanuel Vadot				reg = <0x0 0x17000000 0x0 0x2000>;
389c66ec88fSEmmanuel Vadot				reg-names = "csr-reg";
390c66ec88fSEmmanuel Vadot				csr-offset = <0xc>;
391c66ec88fSEmmanuel Vadot				csr-mask = <0x10>;
392c66ec88fSEmmanuel Vadot				enable-offset = <0x10>;
393c66ec88fSEmmanuel Vadot				enable-mask = <0x10>;
394c66ec88fSEmmanuel Vadot				clock-output-names = "rngpkaclk";
395c66ec88fSEmmanuel Vadot			};
396c66ec88fSEmmanuel Vadot
397c66ec88fSEmmanuel Vadot			i2c4clk: i2c4clk@1704c000 {
398c66ec88fSEmmanuel Vadot				compatible = "apm,xgene-device-clock";
399c66ec88fSEmmanuel Vadot				#clock-cells = <1>;
400c66ec88fSEmmanuel Vadot				clocks = <&sbapbclk 0>;
401c66ec88fSEmmanuel Vadot				reg = <0x0 0x1704c000 0x0 0x1000>;
402c66ec88fSEmmanuel Vadot				reg-names = "csr-reg";
403c66ec88fSEmmanuel Vadot				csr-offset = <0x0>;
404c66ec88fSEmmanuel Vadot				csr-mask = <0x40>;
405c66ec88fSEmmanuel Vadot				enable-offset = <0x8>;
406c66ec88fSEmmanuel Vadot				enable-mask = <0x40>;
407c66ec88fSEmmanuel Vadot				clock-output-names = "i2c4clk";
408c66ec88fSEmmanuel Vadot			};
409c66ec88fSEmmanuel Vadot		};
410c66ec88fSEmmanuel Vadot
411c66ec88fSEmmanuel Vadot		scu: system-clk-controller@17000000 {
412c66ec88fSEmmanuel Vadot			compatible = "apm,xgene-scu","syscon";
413c66ec88fSEmmanuel Vadot			reg = <0x0 0x17000000 0x0 0x400>;
414c66ec88fSEmmanuel Vadot		};
415c66ec88fSEmmanuel Vadot
416c66ec88fSEmmanuel Vadot		reboot: reboot@17000014 {
417c66ec88fSEmmanuel Vadot			compatible = "syscon-reboot";
418c66ec88fSEmmanuel Vadot			regmap = <&scu>;
419c66ec88fSEmmanuel Vadot			offset = <0x14>;
420c66ec88fSEmmanuel Vadot			mask = <0x1>;
421c66ec88fSEmmanuel Vadot		};
422c66ec88fSEmmanuel Vadot
423c66ec88fSEmmanuel Vadot		csw: csw@7e200000 {
424c66ec88fSEmmanuel Vadot			compatible = "apm,xgene-csw", "syscon";
425c66ec88fSEmmanuel Vadot			reg = <0x0 0x7e200000 0x0 0x1000>;
426c66ec88fSEmmanuel Vadot		};
427c66ec88fSEmmanuel Vadot
428c66ec88fSEmmanuel Vadot		mcba: mcba@7e700000 {
429c66ec88fSEmmanuel Vadot			compatible = "apm,xgene-mcb", "syscon";
430c66ec88fSEmmanuel Vadot			reg = <0x0 0x7e700000 0x0 0x1000>;
431c66ec88fSEmmanuel Vadot		};
432c66ec88fSEmmanuel Vadot
433c66ec88fSEmmanuel Vadot		mcbb: mcbb@7e720000 {
434c66ec88fSEmmanuel Vadot			compatible = "apm,xgene-mcb", "syscon";
435c66ec88fSEmmanuel Vadot			reg = <0x0 0x7e720000 0x0 0x1000>;
436c66ec88fSEmmanuel Vadot		};
437c66ec88fSEmmanuel Vadot
438c66ec88fSEmmanuel Vadot		efuse: efuse@1054a000 {
439c66ec88fSEmmanuel Vadot			compatible = "apm,xgene-efuse", "syscon";
440c66ec88fSEmmanuel Vadot			reg = <0x0 0x1054a000 0x0 0x20>;
441c66ec88fSEmmanuel Vadot		};
442c66ec88fSEmmanuel Vadot
443c66ec88fSEmmanuel Vadot		edac@78800000 {
444c66ec88fSEmmanuel Vadot			compatible = "apm,xgene-edac";
445c66ec88fSEmmanuel Vadot			#address-cells = <2>;
446c66ec88fSEmmanuel Vadot			#size-cells = <2>;
447c66ec88fSEmmanuel Vadot			ranges;
448c66ec88fSEmmanuel Vadot			regmap-csw = <&csw>;
449c66ec88fSEmmanuel Vadot			regmap-mcba = <&mcba>;
450c66ec88fSEmmanuel Vadot			regmap-mcbb = <&mcbb>;
451c66ec88fSEmmanuel Vadot			regmap-efuse = <&efuse>;
452c66ec88fSEmmanuel Vadot			reg = <0x0 0x78800000 0x0 0x100>;
453c66ec88fSEmmanuel Vadot			interrupts = <0x0 0x20 0x4>,
454c66ec88fSEmmanuel Vadot				     <0x0 0x21 0x4>,
455c66ec88fSEmmanuel Vadot				     <0x0 0x27 0x4>;
456c66ec88fSEmmanuel Vadot
457c66ec88fSEmmanuel Vadot			edacmc@7e800000 {
458c66ec88fSEmmanuel Vadot				compatible = "apm,xgene-edac-mc";
459c66ec88fSEmmanuel Vadot				reg = <0x0 0x7e800000 0x0 0x1000>;
460c66ec88fSEmmanuel Vadot				memory-controller = <0>;
461c66ec88fSEmmanuel Vadot			};
462c66ec88fSEmmanuel Vadot
463c66ec88fSEmmanuel Vadot			edacmc@7e840000 {
464c66ec88fSEmmanuel Vadot				compatible = "apm,xgene-edac-mc";
465c66ec88fSEmmanuel Vadot				reg = <0x0 0x7e840000 0x0 0x1000>;
466c66ec88fSEmmanuel Vadot				memory-controller = <1>;
467c66ec88fSEmmanuel Vadot			};
468c66ec88fSEmmanuel Vadot
469c66ec88fSEmmanuel Vadot			edacmc@7e880000 {
470c66ec88fSEmmanuel Vadot				compatible = "apm,xgene-edac-mc";
471c66ec88fSEmmanuel Vadot				reg = <0x0 0x7e880000 0x0 0x1000>;
472c66ec88fSEmmanuel Vadot				memory-controller = <2>;
473c66ec88fSEmmanuel Vadot			};
474c66ec88fSEmmanuel Vadot
475c66ec88fSEmmanuel Vadot			edacmc@7e8c0000 {
476c66ec88fSEmmanuel Vadot				compatible = "apm,xgene-edac-mc";
477c66ec88fSEmmanuel Vadot				reg = <0x0 0x7e8c0000 0x0 0x1000>;
478c66ec88fSEmmanuel Vadot				memory-controller = <3>;
479c66ec88fSEmmanuel Vadot			};
480c66ec88fSEmmanuel Vadot
481c66ec88fSEmmanuel Vadot			edacpmd@7c000000 {
482c66ec88fSEmmanuel Vadot				compatible = "apm,xgene-edac-pmd";
483c66ec88fSEmmanuel Vadot				reg = <0x0 0x7c000000 0x0 0x200000>;
484c66ec88fSEmmanuel Vadot				pmd-controller = <0>;
485c66ec88fSEmmanuel Vadot			};
486c66ec88fSEmmanuel Vadot
487c66ec88fSEmmanuel Vadot			edacpmd@7c200000 {
488c66ec88fSEmmanuel Vadot				compatible = "apm,xgene-edac-pmd";
489c66ec88fSEmmanuel Vadot				reg = <0x0 0x7c200000 0x0 0x200000>;
490c66ec88fSEmmanuel Vadot				pmd-controller = <1>;
491c66ec88fSEmmanuel Vadot			};
492c66ec88fSEmmanuel Vadot
493c66ec88fSEmmanuel Vadot			edacpmd@7c400000 {
494c66ec88fSEmmanuel Vadot				compatible = "apm,xgene-edac-pmd";
495c66ec88fSEmmanuel Vadot				reg = <0x0 0x7c400000 0x0 0x200000>;
496c66ec88fSEmmanuel Vadot				pmd-controller = <2>;
497c66ec88fSEmmanuel Vadot			};
498c66ec88fSEmmanuel Vadot
499c66ec88fSEmmanuel Vadot			edacpmd@7c600000 {
500c66ec88fSEmmanuel Vadot				compatible = "apm,xgene-edac-pmd";
501c66ec88fSEmmanuel Vadot				reg = <0x0 0x7c600000 0x0 0x200000>;
502c66ec88fSEmmanuel Vadot				pmd-controller = <3>;
503c66ec88fSEmmanuel Vadot			};
504c66ec88fSEmmanuel Vadot
505c66ec88fSEmmanuel Vadot			edacl3@7e600000 {
506c66ec88fSEmmanuel Vadot				compatible = "apm,xgene-edac-l3-v2";
507c66ec88fSEmmanuel Vadot				reg = <0x0 0x7e600000 0x0 0x1000>;
508c66ec88fSEmmanuel Vadot			};
509c66ec88fSEmmanuel Vadot
510c66ec88fSEmmanuel Vadot			edacsoc@7e930000 {
511c66ec88fSEmmanuel Vadot				compatible = "apm,xgene-edac-soc";
512c66ec88fSEmmanuel Vadot				reg = <0x0 0x7e930000 0x0 0x1000>;
513c66ec88fSEmmanuel Vadot			};
514c66ec88fSEmmanuel Vadot		};
515c66ec88fSEmmanuel Vadot
516c66ec88fSEmmanuel Vadot		pmu: pmu@78810000 {
517c66ec88fSEmmanuel Vadot			compatible = "apm,xgene-pmu-v2";
518c66ec88fSEmmanuel Vadot			#address-cells = <2>;
519c66ec88fSEmmanuel Vadot			#size-cells = <2>;
520c66ec88fSEmmanuel Vadot			ranges;
521c66ec88fSEmmanuel Vadot			regmap-csw = <&csw>;
522c66ec88fSEmmanuel Vadot			regmap-mcba = <&mcba>;
523c66ec88fSEmmanuel Vadot			regmap-mcbb = <&mcbb>;
524c66ec88fSEmmanuel Vadot			reg = <0x0 0x78810000 0x0 0x1000>;
525c66ec88fSEmmanuel Vadot			interrupts = <0x0 0x22 0x4>;
526c66ec88fSEmmanuel Vadot
527c66ec88fSEmmanuel Vadot			pmul3c@7e610000 {
528c66ec88fSEmmanuel Vadot				compatible = "apm,xgene-pmu-l3c";
529c66ec88fSEmmanuel Vadot				reg = <0x0 0x7e610000 0x0 0x1000>;
530c66ec88fSEmmanuel Vadot			};
531c66ec88fSEmmanuel Vadot
532c66ec88fSEmmanuel Vadot			pmuiob@7e940000 {
533c66ec88fSEmmanuel Vadot				compatible = "apm,xgene-pmu-iob";
534c66ec88fSEmmanuel Vadot				reg = <0x0 0x7e940000 0x0 0x1000>;
535c66ec88fSEmmanuel Vadot			};
536c66ec88fSEmmanuel Vadot
537c66ec88fSEmmanuel Vadot			pmucmcb@7e710000 {
538c66ec88fSEmmanuel Vadot				compatible = "apm,xgene-pmu-mcb";
539c66ec88fSEmmanuel Vadot				reg = <0x0 0x7e710000 0x0 0x1000>;
540c66ec88fSEmmanuel Vadot				enable-bit-index = <0>;
541c66ec88fSEmmanuel Vadot			};
542c66ec88fSEmmanuel Vadot
543c66ec88fSEmmanuel Vadot			pmucmcb@7e730000 {
544c66ec88fSEmmanuel Vadot				compatible = "apm,xgene-pmu-mcb";
545c66ec88fSEmmanuel Vadot				reg = <0x0 0x7e730000 0x0 0x1000>;
546c66ec88fSEmmanuel Vadot				enable-bit-index = <1>;
547c66ec88fSEmmanuel Vadot			};
548c66ec88fSEmmanuel Vadot
549c66ec88fSEmmanuel Vadot			pmucmc@7e810000 {
550c66ec88fSEmmanuel Vadot				compatible = "apm,xgene-pmu-mc";
551c66ec88fSEmmanuel Vadot				reg = <0x0 0x7e810000 0x0 0x1000>;
552c66ec88fSEmmanuel Vadot				enable-bit-index = <0>;
553c66ec88fSEmmanuel Vadot			};
554c66ec88fSEmmanuel Vadot
555c66ec88fSEmmanuel Vadot			pmucmc@7e850000 {
556c66ec88fSEmmanuel Vadot				compatible = "apm,xgene-pmu-mc";
557c66ec88fSEmmanuel Vadot				reg = <0x0 0x7e850000 0x0 0x1000>;
558c66ec88fSEmmanuel Vadot				enable-bit-index = <1>;
559c66ec88fSEmmanuel Vadot			};
560c66ec88fSEmmanuel Vadot
561c66ec88fSEmmanuel Vadot			pmucmc@7e890000 {
562c66ec88fSEmmanuel Vadot				compatible = "apm,xgene-pmu-mc";
563c66ec88fSEmmanuel Vadot				reg = <0x0 0x7e890000 0x0 0x1000>;
564c66ec88fSEmmanuel Vadot				enable-bit-index = <2>;
565c66ec88fSEmmanuel Vadot			};
566c66ec88fSEmmanuel Vadot
567c66ec88fSEmmanuel Vadot			pmucmc@7e8d0000 {
568c66ec88fSEmmanuel Vadot				compatible = "apm,xgene-pmu-mc";
569c66ec88fSEmmanuel Vadot				reg = <0x0 0x7e8d0000 0x0 0x1000>;
570c66ec88fSEmmanuel Vadot				enable-bit-index = <3>;
571c66ec88fSEmmanuel Vadot			};
572c66ec88fSEmmanuel Vadot		};
573c66ec88fSEmmanuel Vadot
574c66ec88fSEmmanuel Vadot		mailbox: mailbox@10540000 {
575c66ec88fSEmmanuel Vadot			compatible = "apm,xgene-slimpro-mbox";
576c66ec88fSEmmanuel Vadot			reg = <0x0 0x10540000 0x0 0x8000>;
577c66ec88fSEmmanuel Vadot			#mbox-cells = <1>;
578c66ec88fSEmmanuel Vadot			interrupts =   <0x0 0x0 0x4
579c66ec88fSEmmanuel Vadot					0x0 0x1 0x4
580c66ec88fSEmmanuel Vadot					0x0 0x2 0x4
581c66ec88fSEmmanuel Vadot					0x0 0x3 0x4
582c66ec88fSEmmanuel Vadot					0x0 0x4 0x4
583c66ec88fSEmmanuel Vadot					0x0 0x5 0x4
584c66ec88fSEmmanuel Vadot					0x0 0x6 0x4
585c66ec88fSEmmanuel Vadot					0x0 0x7 0x4>;
586c66ec88fSEmmanuel Vadot		};
587c66ec88fSEmmanuel Vadot
588c66ec88fSEmmanuel Vadot		i2cslimpro {
589c66ec88fSEmmanuel Vadot			compatible = "apm,xgene-slimpro-i2c";
590c66ec88fSEmmanuel Vadot			mboxes = <&mailbox 0>;
591c66ec88fSEmmanuel Vadot		};
592c66ec88fSEmmanuel Vadot
593c66ec88fSEmmanuel Vadot		hwmonslimpro {
594c66ec88fSEmmanuel Vadot			compatible = "apm,xgene-slimpro-hwmon";
595c66ec88fSEmmanuel Vadot			mboxes = <&mailbox 7>;
596c66ec88fSEmmanuel Vadot		};
597c66ec88fSEmmanuel Vadot
598c66ec88fSEmmanuel Vadot		serial0: serial@10600000 {
599c66ec88fSEmmanuel Vadot			compatible = "ns16550";
600c66ec88fSEmmanuel Vadot			reg = <0 0x10600000 0x0 0x1000>;
601c66ec88fSEmmanuel Vadot			reg-shift = <2>;
602c66ec88fSEmmanuel Vadot			clock-frequency = <10000000>;
603c66ec88fSEmmanuel Vadot			interrupt-parent = <&gic>;
604c66ec88fSEmmanuel Vadot			interrupts = <0x0 0x4c 0x4>;
605c66ec88fSEmmanuel Vadot		};
606c66ec88fSEmmanuel Vadot
607b97ee269SEmmanuel Vadot		/* Node-name might need to be coded as dwusb for backward compatibility */
608b97ee269SEmmanuel Vadot		usb0: usb@19000000 {
609c66ec88fSEmmanuel Vadot			status = "disabled";
610c66ec88fSEmmanuel Vadot			compatible = "snps,dwc3";
611c66ec88fSEmmanuel Vadot			reg = <0x0 0x19000000 0x0 0x100000>;
612c66ec88fSEmmanuel Vadot			interrupts = <0x0 0x5d 0x4>;
613c66ec88fSEmmanuel Vadot			dma-coherent;
614c66ec88fSEmmanuel Vadot			dr_mode = "host";
615c66ec88fSEmmanuel Vadot		};
616c66ec88fSEmmanuel Vadot
617c66ec88fSEmmanuel Vadot		pcie0: pcie@1f2b0000 {
618c66ec88fSEmmanuel Vadot			status = "disabled";
619c66ec88fSEmmanuel Vadot			device_type = "pci";
620c66ec88fSEmmanuel Vadot			compatible = "apm,xgene-pcie", "apm,xgene2-pcie";
621c66ec88fSEmmanuel Vadot			#interrupt-cells = <1>;
622c66ec88fSEmmanuel Vadot			#size-cells = <2>;
623c66ec88fSEmmanuel Vadot			#address-cells = <3>;
624c66ec88fSEmmanuel Vadot			reg = < 0x00 0x1f2b0000 0x0 0x00010000   /* Controller registers */
625c66ec88fSEmmanuel Vadot				0xc0 0xd0000000 0x0 0x00040000>; /* PCI config space */
626c66ec88fSEmmanuel Vadot			reg-names = "csr", "cfg";
627c66ec88fSEmmanuel Vadot			ranges = <0x01000000 0x00 0x00000000 0xc0 0x10000000 0x00 0x00010000   /* io */
628c66ec88fSEmmanuel Vadot				  0x02000000 0x00 0x20000000 0xc1 0x20000000 0x00 0x20000000   /* mem */
629c66ec88fSEmmanuel Vadot				  0x43000000 0xe0 0x00000000 0xe0 0x00000000 0x20 0x00000000>; /* mem */
630c66ec88fSEmmanuel Vadot			dma-ranges = <0x42000000 0x80 0x00000000 0x80 0x00000000 0x00 0x80000000
631c66ec88fSEmmanuel Vadot				      0x42000000 0x00 0x00000000 0x00 0x00000000 0x80 0x00000000>;
632c66ec88fSEmmanuel Vadot			bus-range = <0x00 0xff>;
633c66ec88fSEmmanuel Vadot			interrupt-map-mask = <0x0 0x0 0x0 0x7>;
634c66ec88fSEmmanuel Vadot			interrupt-map = <0x0 0x0 0x0 0x1 &gic 0x0 0x0 0x0 0x10 0x4
635c66ec88fSEmmanuel Vadot					 0x0 0x0 0x0 0x2 &gic 0x0 0x0 0x0 0x11 0x4
636c66ec88fSEmmanuel Vadot					 0x0 0x0 0x0 0x3 &gic 0x0 0x0 0x0 0x12 0x4
637c66ec88fSEmmanuel Vadot					 0x0 0x0 0x0 0x4 &gic 0x0 0x0 0x0 0x13 0x4>;
638c66ec88fSEmmanuel Vadot			dma-coherent;
639c66ec88fSEmmanuel Vadot			clocks = <&pcie0clk 0>;
640c66ec88fSEmmanuel Vadot			msi-parent = <&v2m0>;
641c66ec88fSEmmanuel Vadot		};
642c66ec88fSEmmanuel Vadot
643c66ec88fSEmmanuel Vadot		pcie1: pcie@1f2c0000 {
644c66ec88fSEmmanuel Vadot			status = "disabled";
645c66ec88fSEmmanuel Vadot			device_type = "pci";
646c66ec88fSEmmanuel Vadot			compatible = "apm,xgene-pcie", "apm,xgene2-pcie";
647c66ec88fSEmmanuel Vadot			#interrupt-cells = <1>;
648c66ec88fSEmmanuel Vadot			#size-cells = <2>;
649c66ec88fSEmmanuel Vadot			#address-cells = <3>;
650c66ec88fSEmmanuel Vadot			reg = < 0x00 0x1f2c0000 0x0 0x00010000   /* Controller registers */
651c66ec88fSEmmanuel Vadot				0xa0 0xd0000000 0x0 0x00040000>; /* PCI config space */
652c66ec88fSEmmanuel Vadot			reg-names = "csr", "cfg";
653c66ec88fSEmmanuel Vadot			ranges = <0x01000000 0x00 0x00000000 0xa0 0x10000000 0x00 0x00010000   /* io */
654c66ec88fSEmmanuel Vadot				  0x02000000 0x00 0x20000000 0xa1 0x20000000 0x00 0x20000000   /* mem */
655c66ec88fSEmmanuel Vadot				  0x43000000 0xb0 0x00000000 0xb0 0x00000000 0x10 0x00000000>; /* mem */
656c66ec88fSEmmanuel Vadot			dma-ranges = <0x42000000 0x80 0x00000000 0x80 0x00000000 0x00 0x80000000
657c66ec88fSEmmanuel Vadot				      0x42000000 0x00 0x00000000 0x00 0x00000000 0x80 0x00000000>;
658c66ec88fSEmmanuel Vadot			bus-range = <0x00 0xff>;
659c66ec88fSEmmanuel Vadot			interrupt-map-mask = <0x0 0x0 0x0 0x7>;
660c66ec88fSEmmanuel Vadot			interrupt-map = <0x0 0x0 0x0 0x1 &gic 0x0 0x0 0x0 0x16 0x4
661c66ec88fSEmmanuel Vadot					 0x0 0x0 0x0 0x2 &gic 0x0 0x0 0x0 0x17 0x4
662c66ec88fSEmmanuel Vadot					 0x0 0x0 0x0 0x3 &gic 0x0 0x0 0x0 0x18 0x4
663c66ec88fSEmmanuel Vadot					 0x0 0x0 0x0 0x4 &gic 0x0 0x0 0x0 0x19 0x4>;
664c66ec88fSEmmanuel Vadot			dma-coherent;
665c66ec88fSEmmanuel Vadot			clocks = <&pcie1clk 0>;
666c66ec88fSEmmanuel Vadot			msi-parent = <&v2m0>;
667c66ec88fSEmmanuel Vadot		};
668c66ec88fSEmmanuel Vadot
669c66ec88fSEmmanuel Vadot		sata1: sata@1a000000 {
670c66ec88fSEmmanuel Vadot			compatible = "apm,xgene-ahci-v2";
671c66ec88fSEmmanuel Vadot			reg = <0x0 0x1a000000 0x0 0x1000>,
672c66ec88fSEmmanuel Vadot			      <0x0 0x1f200000 0x0 0x1000>,
673c66ec88fSEmmanuel Vadot			      <0x0 0x1f20d000 0x0 0x1000>,
674c66ec88fSEmmanuel Vadot			      <0x0 0x1f20e000 0x0 0x1000>;
675c66ec88fSEmmanuel Vadot			interrupts = <0x0 0x5a 0x4>;
676c66ec88fSEmmanuel Vadot			dma-coherent;
677c66ec88fSEmmanuel Vadot		};
678c66ec88fSEmmanuel Vadot
679c66ec88fSEmmanuel Vadot		sata2: sata@1a200000 {
680c66ec88fSEmmanuel Vadot			compatible = "apm,xgene-ahci-v2";
681c66ec88fSEmmanuel Vadot			reg = <0x0 0x1a200000 0x0 0x1000>,
682c66ec88fSEmmanuel Vadot			      <0x0 0x1f210000 0x0 0x1000>,
683c66ec88fSEmmanuel Vadot			      <0x0 0x1f21d000 0x0 0x1000>,
684c66ec88fSEmmanuel Vadot			      <0x0 0x1f21e000 0x0 0x1000>;
685c66ec88fSEmmanuel Vadot			interrupts = <0x0 0x5b 0x4>;
686c66ec88fSEmmanuel Vadot			dma-coherent;
687c66ec88fSEmmanuel Vadot		};
688c66ec88fSEmmanuel Vadot
689c66ec88fSEmmanuel Vadot		sata3: sata@1a400000 {
690c66ec88fSEmmanuel Vadot			compatible = "apm,xgene-ahci-v2";
691c66ec88fSEmmanuel Vadot			reg = <0x0 0x1a400000 0x0 0x1000>,
692c66ec88fSEmmanuel Vadot			      <0x0 0x1f220000 0x0 0x1000>,
693c66ec88fSEmmanuel Vadot			      <0x0 0x1f22d000 0x0 0x1000>,
694c66ec88fSEmmanuel Vadot			      <0x0 0x1f22e000 0x0 0x1000>;
695c66ec88fSEmmanuel Vadot			interrupts = <0x0 0x5c 0x4>;
696c66ec88fSEmmanuel Vadot			dma-coherent;
697c66ec88fSEmmanuel Vadot		};
698c66ec88fSEmmanuel Vadot
699c66ec88fSEmmanuel Vadot		mmc0: mmc@1c000000 {
700c66ec88fSEmmanuel Vadot			compatible = "arasan,sdhci-4.9a";
701c66ec88fSEmmanuel Vadot			reg = <0x0 0x1c000000 0x0 0x100>;
702c66ec88fSEmmanuel Vadot			interrupts = <0x0 0x49 0x4>;
703c66ec88fSEmmanuel Vadot			dma-coherent;
704c66ec88fSEmmanuel Vadot			no-1-8-v;
705c66ec88fSEmmanuel Vadot			clock-names = "clk_xin", "clk_ahb";
706c66ec88fSEmmanuel Vadot			clocks = <&sdioclk 0>, <&ahbclk 0>;
707c66ec88fSEmmanuel Vadot		};
708c66ec88fSEmmanuel Vadot
709c66ec88fSEmmanuel Vadot		gfcgpio: gpio@1f63c000 {
710c66ec88fSEmmanuel Vadot			compatible = "apm,xgene-gpio";
711c66ec88fSEmmanuel Vadot			reg = <0x0 0x1f63c000 0x0 0x40>;
712c66ec88fSEmmanuel Vadot			gpio-controller;
713c66ec88fSEmmanuel Vadot			#gpio-cells = <2>;
714c66ec88fSEmmanuel Vadot		};
715c66ec88fSEmmanuel Vadot
716c66ec88fSEmmanuel Vadot		dwgpio: gpio@1c024000 {
717c66ec88fSEmmanuel Vadot			compatible = "snps,dw-apb-gpio";
718c66ec88fSEmmanuel Vadot			reg = <0x0 0x1c024000 0x0 0x1000>;
719c66ec88fSEmmanuel Vadot			#address-cells = <1>;
720c66ec88fSEmmanuel Vadot			#size-cells = <0>;
721c66ec88fSEmmanuel Vadot
722c66ec88fSEmmanuel Vadot			porta: gpio-controller@0 {
723c66ec88fSEmmanuel Vadot				compatible = "snps,dw-apb-gpio-port";
724c66ec88fSEmmanuel Vadot				gpio-controller;
7256be33864SEmmanuel Vadot				#gpio-cells = <2>;
726c66ec88fSEmmanuel Vadot				snps,nr-gpios = <32>;
727c66ec88fSEmmanuel Vadot				reg = <0>;
728c66ec88fSEmmanuel Vadot			};
729c66ec88fSEmmanuel Vadot		};
730c66ec88fSEmmanuel Vadot
731c66ec88fSEmmanuel Vadot		sbgpio: gpio@17001000 {
732c66ec88fSEmmanuel Vadot			compatible = "apm,xgene-gpio-sb";
733c66ec88fSEmmanuel Vadot			reg = <0x0 0x17001000 0x0 0x400>;
734c66ec88fSEmmanuel Vadot			#gpio-cells = <2>;
735c66ec88fSEmmanuel Vadot			gpio-controller;
736c66ec88fSEmmanuel Vadot			interrupts = <0x0 0x28 0x1>,
737c66ec88fSEmmanuel Vadot				     <0x0 0x29 0x1>,
738c66ec88fSEmmanuel Vadot				     <0x0 0x2a 0x1>,
739c66ec88fSEmmanuel Vadot				     <0x0 0x2b 0x1>,
740c66ec88fSEmmanuel Vadot				     <0x0 0x2c 0x1>,
741c66ec88fSEmmanuel Vadot				     <0x0 0x2d 0x1>,
742c66ec88fSEmmanuel Vadot				     <0x0 0x2e 0x1>,
743c66ec88fSEmmanuel Vadot				     <0x0 0x2f 0x1>;
744c66ec88fSEmmanuel Vadot			interrupt-parent = <&gic>;
745c66ec88fSEmmanuel Vadot			#interrupt-cells = <2>;
746c66ec88fSEmmanuel Vadot			interrupt-controller;
747c66ec88fSEmmanuel Vadot			apm,nr-gpios = <22>;
748c66ec88fSEmmanuel Vadot			apm,nr-irqs = <8>;
749c66ec88fSEmmanuel Vadot			apm,irq-start = <8>;
750c66ec88fSEmmanuel Vadot		};
751c66ec88fSEmmanuel Vadot
752c66ec88fSEmmanuel Vadot		mdio: mdio@1f610000 {
753c66ec88fSEmmanuel Vadot			compatible = "apm,xgene-mdio-xfi";
754c66ec88fSEmmanuel Vadot			#address-cells = <1>;
755c66ec88fSEmmanuel Vadot			#size-cells = <0>;
756c66ec88fSEmmanuel Vadot			reg = <0x0 0x1f610000 0x0 0xd100>;
757c66ec88fSEmmanuel Vadot			clocks = <&xge0clk 0>;
758c66ec88fSEmmanuel Vadot		};
759c66ec88fSEmmanuel Vadot
760c66ec88fSEmmanuel Vadot		sgenet0: ethernet@1f610000 {
761c66ec88fSEmmanuel Vadot			compatible = "apm,xgene2-sgenet";
762c66ec88fSEmmanuel Vadot			status = "disabled";
763c66ec88fSEmmanuel Vadot			reg = <0x0 0x1f610000 0x0 0xd100>,
764c66ec88fSEmmanuel Vadot			      <0x0 0x1f600000 0x0 0xd100>,
765c66ec88fSEmmanuel Vadot			      <0x0 0x20000000 0x0 0x20000>;
766c66ec88fSEmmanuel Vadot			interrupts = <0 96 4>,
767c66ec88fSEmmanuel Vadot				     <0 97 4>;
768c66ec88fSEmmanuel Vadot			dma-coherent;
769c66ec88fSEmmanuel Vadot			clocks = <&xge0clk 0>;
770c66ec88fSEmmanuel Vadot			local-mac-address = [00 01 73 00 00 01];
771c66ec88fSEmmanuel Vadot			phy-connection-type = "sgmii";
772c66ec88fSEmmanuel Vadot			phy-handle = <&sgenet0phy>;
773c66ec88fSEmmanuel Vadot		};
774c66ec88fSEmmanuel Vadot
775c66ec88fSEmmanuel Vadot		xgenet1: ethernet@1f620000 {
776c66ec88fSEmmanuel Vadot			compatible = "apm,xgene2-xgenet";
777c66ec88fSEmmanuel Vadot			status = "disabled";
778c66ec88fSEmmanuel Vadot			reg = <0x0 0x1f620000 0x0 0x10000>,
779c66ec88fSEmmanuel Vadot			      <0x0 0x1f600000 0x0 0xd100>,
780c66ec88fSEmmanuel Vadot			      <0x0 0x20000000 0x0 0x220000>;
781c66ec88fSEmmanuel Vadot			interrupts = <0 108 4>,
782c66ec88fSEmmanuel Vadot				     <0 109 4>,
783c66ec88fSEmmanuel Vadot				     <0 110 4>,
784c66ec88fSEmmanuel Vadot				     <0 111 4>,
785c66ec88fSEmmanuel Vadot				     <0 112 4>,
786c66ec88fSEmmanuel Vadot				     <0 113 4>,
787c66ec88fSEmmanuel Vadot				     <0 114 4>,
788c66ec88fSEmmanuel Vadot				     <0 115 4>;
789c66ec88fSEmmanuel Vadot			channel = <12>;
790c66ec88fSEmmanuel Vadot			port-id = <1>;
791c66ec88fSEmmanuel Vadot			dma-coherent;
792c66ec88fSEmmanuel Vadot			clocks = <&xge1clk 0>;
793c66ec88fSEmmanuel Vadot			local-mac-address = [00 01 73 00 00 02];
794c66ec88fSEmmanuel Vadot			phy-connection-type = "xgmii";
795c66ec88fSEmmanuel Vadot		};
796c66ec88fSEmmanuel Vadot
797c66ec88fSEmmanuel Vadot		rng: rng@10520000 {
798c66ec88fSEmmanuel Vadot			compatible = "apm,xgene-rng";
799c66ec88fSEmmanuel Vadot			reg = <0x0 0x10520000 0x0 0x100>;
800c66ec88fSEmmanuel Vadot			interrupts = <0x0 0x41 0x4>;
801c66ec88fSEmmanuel Vadot			clocks = <&rngpkaclk 0>;
802c66ec88fSEmmanuel Vadot		};
803c66ec88fSEmmanuel Vadot
804c66ec88fSEmmanuel Vadot		i2c1: i2c@10511000 {
805c66ec88fSEmmanuel Vadot			#address-cells = <1>;
806c66ec88fSEmmanuel Vadot			#size-cells = <0>;
807c66ec88fSEmmanuel Vadot			compatible = "snps,designware-i2c";
808c66ec88fSEmmanuel Vadot			reg = <0x0 0x10511000 0x0 0x1000>;
809c66ec88fSEmmanuel Vadot			interrupts = <0 0x45 0x4>;
810c66ec88fSEmmanuel Vadot			#clock-cells = <1>;
811c66ec88fSEmmanuel Vadot			clocks = <&sbapbclk 0>;
812c66ec88fSEmmanuel Vadot			bus_num = <1>;
813c66ec88fSEmmanuel Vadot		};
814c66ec88fSEmmanuel Vadot
815c66ec88fSEmmanuel Vadot		i2c4: i2c@10640000 {
816c66ec88fSEmmanuel Vadot			#address-cells = <1>;
817c66ec88fSEmmanuel Vadot			#size-cells = <0>;
818c66ec88fSEmmanuel Vadot			compatible = "snps,designware-i2c";
819c66ec88fSEmmanuel Vadot			reg = <0x0 0x10640000 0x0 0x1000>;
820c66ec88fSEmmanuel Vadot			interrupts = <0 0x3a 0x4>;
821c66ec88fSEmmanuel Vadot			clocks = <&i2c4clk 0>;
822c66ec88fSEmmanuel Vadot			bus_num = <4>;
823c66ec88fSEmmanuel Vadot		};
824c66ec88fSEmmanuel Vadot	};
825c66ec88fSEmmanuel Vadot};
826