xref: /linux/scripts/dtc/include-prefixes/arm64/apm/apm-storm.dtsi (revision f5793c970888e48542de4ae152d16308873f29e4)
1ca5b3410SRobert Richter/*
2ca5b3410SRobert Richter * dts file for AppliedMicro (APM) X-Gene Storm SOC
3ca5b3410SRobert Richter *
4ca5b3410SRobert Richter * Copyright (C) 2013, Applied Micro Circuits Corporation
5ca5b3410SRobert Richter *
6ca5b3410SRobert Richter * This program is free software; you can redistribute it and/or
7ca5b3410SRobert Richter * modify it under the terms of the GNU General Public License as
8ca5b3410SRobert Richter * published by the Free Software Foundation; either version 2 of
9ca5b3410SRobert Richter * the License, or (at your option) any later version.
10ca5b3410SRobert Richter */
11ca5b3410SRobert Richter
12ca5b3410SRobert Richter/ {
13ca5b3410SRobert Richter	compatible = "apm,xgene-storm";
14ca5b3410SRobert Richter	interrupt-parent = <&gic>;
15ca5b3410SRobert Richter	#address-cells = <2>;
16ca5b3410SRobert Richter	#size-cells = <2>;
17ca5b3410SRobert Richter
18ca5b3410SRobert Richter	cpus {
19ca5b3410SRobert Richter		#address-cells = <2>;
20ca5b3410SRobert Richter		#size-cells = <0>;
21ca5b3410SRobert Richter
22ca5b3410SRobert Richter		cpu@000 {
23ca5b3410SRobert Richter			device_type = "cpu";
24ca5b3410SRobert Richter			compatible = "apm,potenza", "arm,armv8";
25ca5b3410SRobert Richter			reg = <0x0 0x000>;
26ca5b3410SRobert Richter			enable-method = "spin-table";
27ca5b3410SRobert Richter			cpu-release-addr = <0x1 0x0000fff8>;
288000bc3fSDuc Dang			next-level-cache = <&xgene_L2_0>;
29ca5b3410SRobert Richter		};
30ca5b3410SRobert Richter		cpu@001 {
31ca5b3410SRobert Richter			device_type = "cpu";
32ca5b3410SRobert Richter			compatible = "apm,potenza", "arm,armv8";
33ca5b3410SRobert Richter			reg = <0x0 0x001>;
34ca5b3410SRobert Richter			enable-method = "spin-table";
35ca5b3410SRobert Richter			cpu-release-addr = <0x1 0x0000fff8>;
368000bc3fSDuc Dang			next-level-cache = <&xgene_L2_0>;
37ca5b3410SRobert Richter		};
38ca5b3410SRobert Richter		cpu@100 {
39ca5b3410SRobert Richter			device_type = "cpu";
40ca5b3410SRobert Richter			compatible = "apm,potenza", "arm,armv8";
41ca5b3410SRobert Richter			reg = <0x0 0x100>;
42ca5b3410SRobert Richter			enable-method = "spin-table";
43ca5b3410SRobert Richter			cpu-release-addr = <0x1 0x0000fff8>;
448000bc3fSDuc Dang			next-level-cache = <&xgene_L2_1>;
45ca5b3410SRobert Richter		};
46ca5b3410SRobert Richter		cpu@101 {
47ca5b3410SRobert Richter			device_type = "cpu";
48ca5b3410SRobert Richter			compatible = "apm,potenza", "arm,armv8";
49ca5b3410SRobert Richter			reg = <0x0 0x101>;
50ca5b3410SRobert Richter			enable-method = "spin-table";
51ca5b3410SRobert Richter			cpu-release-addr = <0x1 0x0000fff8>;
528000bc3fSDuc Dang			next-level-cache = <&xgene_L2_1>;
53ca5b3410SRobert Richter		};
54ca5b3410SRobert Richter		cpu@200 {
55ca5b3410SRobert Richter			device_type = "cpu";
56ca5b3410SRobert Richter			compatible = "apm,potenza", "arm,armv8";
57ca5b3410SRobert Richter			reg = <0x0 0x200>;
58ca5b3410SRobert Richter			enable-method = "spin-table";
59ca5b3410SRobert Richter			cpu-release-addr = <0x1 0x0000fff8>;
608000bc3fSDuc Dang			next-level-cache = <&xgene_L2_2>;
61ca5b3410SRobert Richter		};
62ca5b3410SRobert Richter		cpu@201 {
63ca5b3410SRobert Richter			device_type = "cpu";
64ca5b3410SRobert Richter			compatible = "apm,potenza", "arm,armv8";
65ca5b3410SRobert Richter			reg = <0x0 0x201>;
66ca5b3410SRobert Richter			enable-method = "spin-table";
67ca5b3410SRobert Richter			cpu-release-addr = <0x1 0x0000fff8>;
688000bc3fSDuc Dang			next-level-cache = <&xgene_L2_2>;
69ca5b3410SRobert Richter		};
70ca5b3410SRobert Richter		cpu@300 {
71ca5b3410SRobert Richter			device_type = "cpu";
72ca5b3410SRobert Richter			compatible = "apm,potenza", "arm,armv8";
73ca5b3410SRobert Richter			reg = <0x0 0x300>;
74ca5b3410SRobert Richter			enable-method = "spin-table";
75ca5b3410SRobert Richter			cpu-release-addr = <0x1 0x0000fff8>;
768000bc3fSDuc Dang			next-level-cache = <&xgene_L2_3>;
77ca5b3410SRobert Richter		};
78ca5b3410SRobert Richter		cpu@301 {
79ca5b3410SRobert Richter			device_type = "cpu";
80ca5b3410SRobert Richter			compatible = "apm,potenza", "arm,armv8";
81ca5b3410SRobert Richter			reg = <0x0 0x301>;
82ca5b3410SRobert Richter			enable-method = "spin-table";
83ca5b3410SRobert Richter			cpu-release-addr = <0x1 0x0000fff8>;
848000bc3fSDuc Dang			next-level-cache = <&xgene_L2_3>;
858000bc3fSDuc Dang		};
868000bc3fSDuc Dang		xgene_L2_0: l2-cache-0 {
878000bc3fSDuc Dang			compatible = "cache";
888000bc3fSDuc Dang		};
898000bc3fSDuc Dang		xgene_L2_1: l2-cache-1 {
908000bc3fSDuc Dang			compatible = "cache";
918000bc3fSDuc Dang		};
928000bc3fSDuc Dang		xgene_L2_2: l2-cache-2 {
938000bc3fSDuc Dang			compatible = "cache";
948000bc3fSDuc Dang		};
958000bc3fSDuc Dang		xgene_L2_3: l2-cache-3 {
968000bc3fSDuc Dang			compatible = "cache";
97ca5b3410SRobert Richter		};
98ca5b3410SRobert Richter	};
99ca5b3410SRobert Richter
100ca5b3410SRobert Richter	gic: interrupt-controller@78010000 {
101ca5b3410SRobert Richter		compatible = "arm,cortex-a15-gic";
102ca5b3410SRobert Richter		#interrupt-cells = <3>;
103ca5b3410SRobert Richter		interrupt-controller;
104ca5b3410SRobert Richter		reg = <0x0 0x78010000 0x0 0x1000>,	/* GIC Dist */
105ca5b3410SRobert Richter		      <0x0 0x78020000 0x0 0x1000>,	/* GIC CPU */
106ca5b3410SRobert Richter		      <0x0 0x78040000 0x0 0x2000>,	/* GIC VCPU Control */
107ca5b3410SRobert Richter		      <0x0 0x78060000 0x0 0x2000>;	/* GIC VCPU */
108ca5b3410SRobert Richter		interrupts = <1 9 0xf04>;	/* GIC Maintenence IRQ */
109ca5b3410SRobert Richter	};
110ca5b3410SRobert Richter
111ca5b3410SRobert Richter	timer {
112ca5b3410SRobert Richter		compatible = "arm,armv8-timer";
113ca5b3410SRobert Richter		interrupts = <1 0 0xff01>,	/* Secure Phys IRQ */
114ca5b3410SRobert Richter			     <1 13 0xff01>,	/* Non-secure Phys IRQ */
115ca5b3410SRobert Richter			     <1 14 0xff01>,	/* Virt IRQ */
116ca5b3410SRobert Richter			     <1 15 0xff01>;	/* Hyp IRQ */
117ca5b3410SRobert Richter		clock-frequency = <50000000>;
118ca5b3410SRobert Richter	};
119ca5b3410SRobert Richter
1207434f42bSFeng Kan	pmu {
1217434f42bSFeng Kan		compatible = "apm,potenza-pmu", "arm,armv8-pmuv3";
1227434f42bSFeng Kan		interrupts = <1 12 0xff04>;
1237434f42bSFeng Kan	};
1247434f42bSFeng Kan
125ca5b3410SRobert Richter	soc {
126ca5b3410SRobert Richter		compatible = "simple-bus";
127ca5b3410SRobert Richter		#address-cells = <2>;
128ca5b3410SRobert Richter		#size-cells = <2>;
129ca5b3410SRobert Richter		ranges;
13074e353e1SRameshwar Prasad Sahu		dma-ranges = <0x0 0x0 0x0 0x0 0x400 0x0>;
131ca5b3410SRobert Richter
132ca5b3410SRobert Richter		clocks {
133ca5b3410SRobert Richter			#address-cells = <2>;
134ca5b3410SRobert Richter			#size-cells = <2>;
135ca5b3410SRobert Richter			ranges;
136ca5b3410SRobert Richter			refclk: refclk {
137ca5b3410SRobert Richter				compatible = "fixed-clock";
138ca5b3410SRobert Richter				#clock-cells = <1>;
139ca5b3410SRobert Richter				clock-frequency = <100000000>;
140ca5b3410SRobert Richter				clock-output-names = "refclk";
141ca5b3410SRobert Richter			};
142ca5b3410SRobert Richter
143ca5b3410SRobert Richter			pcppll: pcppll@17000100 {
144ca5b3410SRobert Richter				compatible = "apm,xgene-pcppll-clock";
145ca5b3410SRobert Richter				#clock-cells = <1>;
146ca5b3410SRobert Richter				clocks = <&refclk 0>;
147ca5b3410SRobert Richter				clock-names = "pcppll";
148ca5b3410SRobert Richter				reg = <0x0 0x17000100 0x0 0x1000>;
149ca5b3410SRobert Richter				clock-output-names = "pcppll";
150ca5b3410SRobert Richter				type = <0>;
151ca5b3410SRobert Richter			};
152ca5b3410SRobert Richter
153ca5b3410SRobert Richter			socpll: socpll@17000120 {
154ca5b3410SRobert Richter				compatible = "apm,xgene-socpll-clock";
155ca5b3410SRobert Richter				#clock-cells = <1>;
156ca5b3410SRobert Richter				clocks = <&refclk 0>;
157ca5b3410SRobert Richter				clock-names = "socpll";
158ca5b3410SRobert Richter				reg = <0x0 0x17000120 0x0 0x1000>;
159ca5b3410SRobert Richter				clock-output-names = "socpll";
160ca5b3410SRobert Richter				type = <1>;
161ca5b3410SRobert Richter			};
162ca5b3410SRobert Richter
163ca5b3410SRobert Richter			socplldiv2: socplldiv2  {
164ca5b3410SRobert Richter				compatible = "fixed-factor-clock";
165ca5b3410SRobert Richter				#clock-cells = <1>;
166ca5b3410SRobert Richter				clocks = <&socpll 0>;
167ca5b3410SRobert Richter				clock-names = "socplldiv2";
168ca5b3410SRobert Richter				clock-mult = <1>;
169ca5b3410SRobert Richter				clock-div = <2>;
170ca5b3410SRobert Richter				clock-output-names = "socplldiv2";
171ca5b3410SRobert Richter			};
172ca5b3410SRobert Richter
173b0e7a85aSDuc Dang			ahbclk: ahbclk@17000000 {
1748f74e861SSuman Tripathi				compatible = "apm,xgene-device-clock";
1758f74e861SSuman Tripathi				#clock-cells = <1>;
1768f74e861SSuman Tripathi				clocks = <&socplldiv2 0>;
177b0e7a85aSDuc Dang				reg = <0x0 0x17000000 0x0 0x2000>;
178b0e7a85aSDuc Dang				reg-names = "div-reg";
1798f74e861SSuman Tripathi				divider-offset = <0x164>;
1808f74e861SSuman Tripathi				divider-width = <0x5>;
1818f74e861SSuman Tripathi				divider-shift = <0x0>;
1828f74e861SSuman Tripathi				clock-output-names = "ahbclk";
1838f74e861SSuman Tripathi			};
1848f74e861SSuman Tripathi
1858f74e861SSuman Tripathi			sdioclk: sdioclk@1f2ac000 {
1868f74e861SSuman Tripathi				compatible = "apm,xgene-device-clock";
1878f74e861SSuman Tripathi				#clock-cells = <1>;
1888f74e861SSuman Tripathi				clocks = <&socplldiv2 0>;
1898f74e861SSuman Tripathi				reg = <0x0 0x1f2ac000 0x0 0x1000
1908f74e861SSuman Tripathi					0x0 0x17000000 0x0 0x2000>;
1918f74e861SSuman Tripathi				reg-names = "csr-reg", "div-reg";
1928f74e861SSuman Tripathi				csr-offset = <0x0>;
1938f74e861SSuman Tripathi				csr-mask = <0x2>;
1948f74e861SSuman Tripathi				enable-offset = <0x8>;
1958f74e861SSuman Tripathi				enable-mask = <0x2>;
1968f74e861SSuman Tripathi				divider-offset = <0x178>;
1978f74e861SSuman Tripathi				divider-width = <0x8>;
1988f74e861SSuman Tripathi				divider-shift = <0x0>;
1998f74e861SSuman Tripathi				clock-output-names = "sdioclk";
2008f74e861SSuman Tripathi			};
2018f74e861SSuman Tripathi
202ca5b3410SRobert Richter			qmlclk: qmlclk {
203ca5b3410SRobert Richter				compatible = "apm,xgene-device-clock";
204ca5b3410SRobert Richter				#clock-cells = <1>;
205ca5b3410SRobert Richter				clocks = <&socplldiv2 0>;
206ca5b3410SRobert Richter				clock-names = "qmlclk";
207ca5b3410SRobert Richter				reg = <0x0 0x1703C000 0x0 0x1000>;
208ca5b3410SRobert Richter				reg-names = "csr-reg";
209ca5b3410SRobert Richter				clock-output-names = "qmlclk";
210ca5b3410SRobert Richter			};
211ca5b3410SRobert Richter
212ca5b3410SRobert Richter			ethclk: ethclk {
213ca5b3410SRobert Richter				compatible = "apm,xgene-device-clock";
214ca5b3410SRobert Richter				#clock-cells = <1>;
215ca5b3410SRobert Richter				clocks = <&socplldiv2 0>;
216ca5b3410SRobert Richter				clock-names = "ethclk";
217ca5b3410SRobert Richter				reg = <0x0 0x17000000 0x0 0x1000>;
218ca5b3410SRobert Richter				reg-names = "div-reg";
219ca5b3410SRobert Richter				divider-offset = <0x238>;
220ca5b3410SRobert Richter				divider-width = <0x9>;
221ca5b3410SRobert Richter				divider-shift = <0x0>;
222ca5b3410SRobert Richter				clock-output-names = "ethclk";
223ca5b3410SRobert Richter			};
224ca5b3410SRobert Richter
225ca5b3410SRobert Richter			menetclk: menetclk {
226ca5b3410SRobert Richter				compatible = "apm,xgene-device-clock";
227ca5b3410SRobert Richter				#clock-cells = <1>;
228ca5b3410SRobert Richter				clocks = <&ethclk 0>;
229ca5b3410SRobert Richter				reg = <0x0 0x1702C000 0x0 0x1000>;
230ca5b3410SRobert Richter				reg-names = "csr-reg";
231ca5b3410SRobert Richter				clock-output-names = "menetclk";
232ca5b3410SRobert Richter			};
233ca5b3410SRobert Richter
234ca5b3410SRobert Richter			sge0clk: sge0clk@1f21c000 {
235ca5b3410SRobert Richter				compatible = "apm,xgene-device-clock";
236ca5b3410SRobert Richter				#clock-cells = <1>;
237ca5b3410SRobert Richter				clocks = <&socplldiv2 0>;
238ca5b3410SRobert Richter				reg = <0x0 0x1f21c000 0x0 0x1000>;
239ca5b3410SRobert Richter				reg-names = "csr-reg";
240ca5b3410SRobert Richter				csr-mask = <0x3>;
241ca5b3410SRobert Richter				clock-output-names = "sge0clk";
242ca5b3410SRobert Richter			};
243ca5b3410SRobert Richter
2442d33394eSKeyur Chudgar			sge1clk: sge1clk@1f21c000 {
2452d33394eSKeyur Chudgar				compatible = "apm,xgene-device-clock";
2462d33394eSKeyur Chudgar				#clock-cells = <1>;
2472d33394eSKeyur Chudgar				clocks = <&socplldiv2 0>;
2482d33394eSKeyur Chudgar				reg = <0x0 0x1f21c000 0x0 0x1000>;
2492d33394eSKeyur Chudgar				reg-names = "csr-reg";
2502d33394eSKeyur Chudgar				csr-mask = <0xc>;
2512d33394eSKeyur Chudgar				clock-output-names = "sge1clk";
2522d33394eSKeyur Chudgar			};
2532d33394eSKeyur Chudgar
254ca5b3410SRobert Richter			xge0clk: xge0clk@1f61c000 {
255ca5b3410SRobert Richter				compatible = "apm,xgene-device-clock";
256ca5b3410SRobert Richter				#clock-cells = <1>;
257ca5b3410SRobert Richter				clocks = <&socplldiv2 0>;
258ca5b3410SRobert Richter				reg = <0x0 0x1f61c000 0x0 0x1000>;
259ca5b3410SRobert Richter				reg-names = "csr-reg";
260ca5b3410SRobert Richter				csr-mask = <0x3>;
261ca5b3410SRobert Richter				clock-output-names = "xge0clk";
262ca5b3410SRobert Richter			};
263ca5b3410SRobert Richter
264e63c7a09SIyappan Subramanian			xge1clk: xge1clk@1f62c000 {
265e63c7a09SIyappan Subramanian				compatible = "apm,xgene-device-clock";
266e63c7a09SIyappan Subramanian				status = "disabled";
267e63c7a09SIyappan Subramanian				#clock-cells = <1>;
268e63c7a09SIyappan Subramanian				clocks = <&socplldiv2 0>;
269e63c7a09SIyappan Subramanian				reg = <0x0 0x1f62c000 0x0 0x1000>;
270e63c7a09SIyappan Subramanian				reg-names = "csr-reg";
271e63c7a09SIyappan Subramanian				csr-mask = <0x3>;
272e63c7a09SIyappan Subramanian				clock-output-names = "xge1clk";
273e63c7a09SIyappan Subramanian			};
274e63c7a09SIyappan Subramanian
275ca5b3410SRobert Richter			sataphy1clk: sataphy1clk@1f21c000 {
276ca5b3410SRobert Richter				compatible = "apm,xgene-device-clock";
277ca5b3410SRobert Richter				#clock-cells = <1>;
278ca5b3410SRobert Richter				clocks = <&socplldiv2 0>;
279ca5b3410SRobert Richter				reg = <0x0 0x1f21c000 0x0 0x1000>;
280ca5b3410SRobert Richter				reg-names = "csr-reg";
281ca5b3410SRobert Richter				clock-output-names = "sataphy1clk";
282ca5b3410SRobert Richter				status = "disabled";
283ca5b3410SRobert Richter				csr-offset = <0x4>;
284ca5b3410SRobert Richter				csr-mask = <0x00>;
285ca5b3410SRobert Richter				enable-offset = <0x0>;
286ca5b3410SRobert Richter				enable-mask = <0x06>;
287ca5b3410SRobert Richter			};
288ca5b3410SRobert Richter
289ca5b3410SRobert Richter			sataphy2clk: sataphy1clk@1f22c000 {
290ca5b3410SRobert Richter				compatible = "apm,xgene-device-clock";
291ca5b3410SRobert Richter				#clock-cells = <1>;
292ca5b3410SRobert Richter				clocks = <&socplldiv2 0>;
293ca5b3410SRobert Richter				reg = <0x0 0x1f22c000 0x0 0x1000>;
294ca5b3410SRobert Richter				reg-names = "csr-reg";
295ca5b3410SRobert Richter				clock-output-names = "sataphy2clk";
296ca5b3410SRobert Richter				status = "ok";
297ca5b3410SRobert Richter				csr-offset = <0x4>;
298ca5b3410SRobert Richter				csr-mask = <0x3a>;
299ca5b3410SRobert Richter				enable-offset = <0x0>;
300ca5b3410SRobert Richter				enable-mask = <0x06>;
301ca5b3410SRobert Richter			};
302ca5b3410SRobert Richter
303ca5b3410SRobert Richter			sataphy3clk: sataphy1clk@1f23c000 {
304ca5b3410SRobert Richter				compatible = "apm,xgene-device-clock";
305ca5b3410SRobert Richter				#clock-cells = <1>;
306ca5b3410SRobert Richter				clocks = <&socplldiv2 0>;
307ca5b3410SRobert Richter				reg = <0x0 0x1f23c000 0x0 0x1000>;
308ca5b3410SRobert Richter				reg-names = "csr-reg";
309ca5b3410SRobert Richter				clock-output-names = "sataphy3clk";
310ca5b3410SRobert Richter				status = "ok";
311ca5b3410SRobert Richter				csr-offset = <0x4>;
312ca5b3410SRobert Richter				csr-mask = <0x3a>;
313ca5b3410SRobert Richter				enable-offset = <0x0>;
314ca5b3410SRobert Richter				enable-mask = <0x06>;
315ca5b3410SRobert Richter			};
316ca5b3410SRobert Richter
317ca5b3410SRobert Richter			sata01clk: sata01clk@1f21c000 {
318ca5b3410SRobert Richter				compatible = "apm,xgene-device-clock";
319ca5b3410SRobert Richter				#clock-cells = <1>;
320ca5b3410SRobert Richter				clocks = <&socplldiv2 0>;
321ca5b3410SRobert Richter				reg = <0x0 0x1f21c000 0x0 0x1000>;
322ca5b3410SRobert Richter				reg-names = "csr-reg";
323ca5b3410SRobert Richter				clock-output-names = "sata01clk";
324ca5b3410SRobert Richter				csr-offset = <0x4>;
325ca5b3410SRobert Richter				csr-mask = <0x05>;
326ca5b3410SRobert Richter				enable-offset = <0x0>;
327ca5b3410SRobert Richter				enable-mask = <0x39>;
328ca5b3410SRobert Richter			};
329ca5b3410SRobert Richter
330ca5b3410SRobert Richter			sata23clk: sata23clk@1f22c000 {
331ca5b3410SRobert Richter				compatible = "apm,xgene-device-clock";
332ca5b3410SRobert Richter				#clock-cells = <1>;
333ca5b3410SRobert Richter				clocks = <&socplldiv2 0>;
334ca5b3410SRobert Richter				reg = <0x0 0x1f22c000 0x0 0x1000>;
335ca5b3410SRobert Richter				reg-names = "csr-reg";
336ca5b3410SRobert Richter				clock-output-names = "sata23clk";
337ca5b3410SRobert Richter				csr-offset = <0x4>;
338ca5b3410SRobert Richter				csr-mask = <0x05>;
339ca5b3410SRobert Richter				enable-offset = <0x0>;
340ca5b3410SRobert Richter				enable-mask = <0x39>;
341ca5b3410SRobert Richter			};
342ca5b3410SRobert Richter
343ca5b3410SRobert Richter			sata45clk: sata45clk@1f23c000 {
344ca5b3410SRobert Richter				compatible = "apm,xgene-device-clock";
345ca5b3410SRobert Richter				#clock-cells = <1>;
346ca5b3410SRobert Richter				clocks = <&socplldiv2 0>;
347ca5b3410SRobert Richter				reg = <0x0 0x1f23c000 0x0 0x1000>;
348ca5b3410SRobert Richter				reg-names = "csr-reg";
349ca5b3410SRobert Richter				clock-output-names = "sata45clk";
350ca5b3410SRobert Richter				csr-offset = <0x4>;
351ca5b3410SRobert Richter				csr-mask = <0x05>;
352ca5b3410SRobert Richter				enable-offset = <0x0>;
353ca5b3410SRobert Richter				enable-mask = <0x39>;
354ca5b3410SRobert Richter			};
355ca5b3410SRobert Richter
356ca5b3410SRobert Richter			rtcclk: rtcclk@17000000 {
357ca5b3410SRobert Richter				compatible = "apm,xgene-device-clock";
358ca5b3410SRobert Richter				#clock-cells = <1>;
359ca5b3410SRobert Richter				clocks = <&socplldiv2 0>;
360ca5b3410SRobert Richter				reg = <0x0 0x17000000 0x0 0x2000>;
361ca5b3410SRobert Richter				reg-names = "csr-reg";
362ca5b3410SRobert Richter				csr-offset = <0xc>;
363ca5b3410SRobert Richter				csr-mask = <0x2>;
364ca5b3410SRobert Richter				enable-offset = <0x10>;
365ca5b3410SRobert Richter				enable-mask = <0x2>;
366ca5b3410SRobert Richter				clock-output-names = "rtcclk";
367ca5b3410SRobert Richter			};
368ca5b3410SRobert Richter
369ca5b3410SRobert Richter			rngpkaclk: rngpkaclk@17000000 {
370ca5b3410SRobert Richter				compatible = "apm,xgene-device-clock";
371ca5b3410SRobert Richter				#clock-cells = <1>;
372ca5b3410SRobert Richter				clocks = <&socplldiv2 0>;
373ca5b3410SRobert Richter				reg = <0x0 0x17000000 0x0 0x2000>;
374ca5b3410SRobert Richter				reg-names = "csr-reg";
375ca5b3410SRobert Richter				csr-offset = <0xc>;
376ca5b3410SRobert Richter				csr-mask = <0x10>;
377ca5b3410SRobert Richter				enable-offset = <0x10>;
378ca5b3410SRobert Richter				enable-mask = <0x10>;
379ca5b3410SRobert Richter				clock-output-names = "rngpkaclk";
380ca5b3410SRobert Richter			};
381ca5b3410SRobert Richter
382ca5b3410SRobert Richter			pcie0clk: pcie0clk@1f2bc000 {
383ca5b3410SRobert Richter				status = "disabled";
384ca5b3410SRobert Richter				compatible = "apm,xgene-device-clock";
385ca5b3410SRobert Richter				#clock-cells = <1>;
386ca5b3410SRobert Richter				clocks = <&socplldiv2 0>;
387ca5b3410SRobert Richter				reg = <0x0 0x1f2bc000 0x0 0x1000>;
388ca5b3410SRobert Richter				reg-names = "csr-reg";
389ca5b3410SRobert Richter				clock-output-names = "pcie0clk";
390ca5b3410SRobert Richter			};
391ca5b3410SRobert Richter
392ca5b3410SRobert Richter			pcie1clk: pcie1clk@1f2cc000 {
393ca5b3410SRobert Richter				status = "disabled";
394ca5b3410SRobert Richter				compatible = "apm,xgene-device-clock";
395ca5b3410SRobert Richter				#clock-cells = <1>;
396ca5b3410SRobert Richter				clocks = <&socplldiv2 0>;
397ca5b3410SRobert Richter				reg = <0x0 0x1f2cc000 0x0 0x1000>;
398ca5b3410SRobert Richter				reg-names = "csr-reg";
399ca5b3410SRobert Richter				clock-output-names = "pcie1clk";
400ca5b3410SRobert Richter			};
401ca5b3410SRobert Richter
402ca5b3410SRobert Richter			pcie2clk: pcie2clk@1f2dc000 {
403ca5b3410SRobert Richter				status = "disabled";
404ca5b3410SRobert Richter				compatible = "apm,xgene-device-clock";
405ca5b3410SRobert Richter				#clock-cells = <1>;
406ca5b3410SRobert Richter				clocks = <&socplldiv2 0>;
407ca5b3410SRobert Richter				reg = <0x0 0x1f2dc000 0x0 0x1000>;
408ca5b3410SRobert Richter				reg-names = "csr-reg";
409ca5b3410SRobert Richter				clock-output-names = "pcie2clk";
410ca5b3410SRobert Richter			};
411ca5b3410SRobert Richter
412ca5b3410SRobert Richter			pcie3clk: pcie3clk@1f50c000 {
413ca5b3410SRobert Richter				status = "disabled";
414ca5b3410SRobert Richter				compatible = "apm,xgene-device-clock";
415ca5b3410SRobert Richter				#clock-cells = <1>;
416ca5b3410SRobert Richter				clocks = <&socplldiv2 0>;
417ca5b3410SRobert Richter				reg = <0x0 0x1f50c000 0x0 0x1000>;
418ca5b3410SRobert Richter				reg-names = "csr-reg";
419ca5b3410SRobert Richter				clock-output-names = "pcie3clk";
420ca5b3410SRobert Richter			};
421ca5b3410SRobert Richter
422ca5b3410SRobert Richter			pcie4clk: pcie4clk@1f51c000 {
423ca5b3410SRobert Richter				status = "disabled";
424ca5b3410SRobert Richter				compatible = "apm,xgene-device-clock";
425ca5b3410SRobert Richter				#clock-cells = <1>;
426ca5b3410SRobert Richter				clocks = <&socplldiv2 0>;
427ca5b3410SRobert Richter				reg = <0x0 0x1f51c000 0x0 0x1000>;
428ca5b3410SRobert Richter				reg-names = "csr-reg";
429ca5b3410SRobert Richter				clock-output-names = "pcie4clk";
430ca5b3410SRobert Richter			};
43174e353e1SRameshwar Prasad Sahu
43274e353e1SRameshwar Prasad Sahu			dmaclk: dmaclk@1f27c000 {
43374e353e1SRameshwar Prasad Sahu				compatible = "apm,xgene-device-clock";
43474e353e1SRameshwar Prasad Sahu				#clock-cells = <1>;
43574e353e1SRameshwar Prasad Sahu				clocks = <&socplldiv2 0>;
43674e353e1SRameshwar Prasad Sahu				reg = <0x0 0x1f27c000 0x0 0x1000>;
43774e353e1SRameshwar Prasad Sahu				reg-names = "csr-reg";
43874e353e1SRameshwar Prasad Sahu				clock-output-names = "dmaclk";
43974e353e1SRameshwar Prasad Sahu			};
440ca5b3410SRobert Richter		};
441ca5b3410SRobert Richter
442e1e6e5c4SDuc Dang		msi: msi@79000000 {
443e1e6e5c4SDuc Dang			compatible = "apm,xgene1-msi";
444e1e6e5c4SDuc Dang			msi-controller;
445e1e6e5c4SDuc Dang			reg = <0x00 0x79000000 0x0 0x900000>;
446e1e6e5c4SDuc Dang			interrupts = <  0x0 0x10 0x4
447e1e6e5c4SDuc Dang					0x0 0x11 0x4
448e1e6e5c4SDuc Dang					0x0 0x12 0x4
449e1e6e5c4SDuc Dang					0x0 0x13 0x4
450e1e6e5c4SDuc Dang					0x0 0x14 0x4
451e1e6e5c4SDuc Dang					0x0 0x15 0x4
452e1e6e5c4SDuc Dang					0x0 0x16 0x4
453e1e6e5c4SDuc Dang					0x0 0x17 0x4
454e1e6e5c4SDuc Dang					0x0 0x18 0x4
455e1e6e5c4SDuc Dang					0x0 0x19 0x4
456e1e6e5c4SDuc Dang					0x0 0x1a 0x4
457e1e6e5c4SDuc Dang					0x0 0x1b 0x4
458e1e6e5c4SDuc Dang					0x0 0x1c 0x4
459e1e6e5c4SDuc Dang					0x0 0x1d 0x4
460e1e6e5c4SDuc Dang					0x0 0x1e 0x4
461e1e6e5c4SDuc Dang					0x0 0x1f 0x4>;
462e1e6e5c4SDuc Dang		};
463e1e6e5c4SDuc Dang
4645c3a87e3SFeng Kan		scu: system-clk-controller@17000000 {
4655c3a87e3SFeng Kan			compatible = "apm,xgene-scu","syscon";
4665c3a87e3SFeng Kan			reg = <0x0 0x17000000 0x0 0x400>;
4675c3a87e3SFeng Kan		};
4685c3a87e3SFeng Kan
4695c3a87e3SFeng Kan		reboot: reboot@17000014 {
4705c3a87e3SFeng Kan			compatible = "syscon-reboot";
4715c3a87e3SFeng Kan			regmap = <&scu>;
4725c3a87e3SFeng Kan			offset = <0x14>;
4735c3a87e3SFeng Kan			mask = <0x1>;
4745c3a87e3SFeng Kan		};
4755c3a87e3SFeng Kan
4768f2ae6f3SLoc Ho		csw: csw@7e200000 {
4778f2ae6f3SLoc Ho			compatible = "apm,xgene-csw", "syscon";
4788f2ae6f3SLoc Ho			reg = <0x0 0x7e200000 0x0 0x1000>;
4798f2ae6f3SLoc Ho		};
4808f2ae6f3SLoc Ho
4818f2ae6f3SLoc Ho		mcba: mcba@7e700000 {
4828f2ae6f3SLoc Ho			compatible = "apm,xgene-mcb", "syscon";
4838f2ae6f3SLoc Ho			reg = <0x0 0x7e700000 0x0 0x1000>;
4848f2ae6f3SLoc Ho		};
4858f2ae6f3SLoc Ho
4868f2ae6f3SLoc Ho		mcbb: mcbb@7e720000 {
4878f2ae6f3SLoc Ho			compatible = "apm,xgene-mcb", "syscon";
4888f2ae6f3SLoc Ho			reg = <0x0 0x7e720000 0x0 0x1000>;
4898f2ae6f3SLoc Ho		};
4908f2ae6f3SLoc Ho
4918f2ae6f3SLoc Ho		efuse: efuse@1054a000 {
4928f2ae6f3SLoc Ho			compatible = "apm,xgene-efuse", "syscon";
4938f2ae6f3SLoc Ho			reg = <0x0 0x1054a000 0x0 0x20>;
4948f2ae6f3SLoc Ho		};
4958f2ae6f3SLoc Ho
496*f5793c97SLoc Ho		rb: rb@7e000000 {
497*f5793c97SLoc Ho			compatible = "apm,xgene-rb", "syscon";
498*f5793c97SLoc Ho			reg = <0x0 0x7e000000 0x0 0x10>;
499*f5793c97SLoc Ho		};
500*f5793c97SLoc Ho
5018f2ae6f3SLoc Ho		edac@78800000 {
5028f2ae6f3SLoc Ho			compatible = "apm,xgene-edac";
5038f2ae6f3SLoc Ho			#address-cells = <2>;
5048f2ae6f3SLoc Ho			#size-cells = <2>;
5058f2ae6f3SLoc Ho			ranges;
5068f2ae6f3SLoc Ho			regmap-csw = <&csw>;
5078f2ae6f3SLoc Ho			regmap-mcba = <&mcba>;
5088f2ae6f3SLoc Ho			regmap-mcbb = <&mcbb>;
5098f2ae6f3SLoc Ho			regmap-efuse = <&efuse>;
510*f5793c97SLoc Ho			regmap-rb = <&rb>;
5118f2ae6f3SLoc Ho			reg = <0x0 0x78800000 0x0 0x100>;
5128f2ae6f3SLoc Ho			interrupts = <0x0 0x20 0x4>,
5138f2ae6f3SLoc Ho				     <0x0 0x21 0x4>,
5148f2ae6f3SLoc Ho				     <0x0 0x27 0x4>;
5158f2ae6f3SLoc Ho
5168f2ae6f3SLoc Ho			edacmc@7e800000 {
5178f2ae6f3SLoc Ho				compatible = "apm,xgene-edac-mc";
5188f2ae6f3SLoc Ho				reg = <0x0 0x7e800000 0x0 0x1000>;
5198f2ae6f3SLoc Ho				memory-controller = <0>;
5208f2ae6f3SLoc Ho			};
5218f2ae6f3SLoc Ho
5228f2ae6f3SLoc Ho			edacmc@7e840000 {
5238f2ae6f3SLoc Ho				compatible = "apm,xgene-edac-mc";
5248f2ae6f3SLoc Ho				reg = <0x0 0x7e840000 0x0 0x1000>;
5258f2ae6f3SLoc Ho				memory-controller = <1>;
5268f2ae6f3SLoc Ho			};
5278f2ae6f3SLoc Ho
5288f2ae6f3SLoc Ho			edacmc@7e880000 {
5298f2ae6f3SLoc Ho				compatible = "apm,xgene-edac-mc";
5308f2ae6f3SLoc Ho				reg = <0x0 0x7e880000 0x0 0x1000>;
5318f2ae6f3SLoc Ho				memory-controller = <2>;
5328f2ae6f3SLoc Ho			};
5338f2ae6f3SLoc Ho
5348f2ae6f3SLoc Ho			edacmc@7e8c0000 {
5358f2ae6f3SLoc Ho				compatible = "apm,xgene-edac-mc";
5368f2ae6f3SLoc Ho				reg = <0x0 0x7e8c0000 0x0 0x1000>;
5378f2ae6f3SLoc Ho				memory-controller = <3>;
5388f2ae6f3SLoc Ho			};
5398f2ae6f3SLoc Ho
5408f2ae6f3SLoc Ho			edacpmd@7c000000 {
5418f2ae6f3SLoc Ho				compatible = "apm,xgene-edac-pmd";
5428f2ae6f3SLoc Ho				reg = <0x0 0x7c000000 0x0 0x200000>;
5438f2ae6f3SLoc Ho				pmd-controller = <0>;
5448f2ae6f3SLoc Ho			};
5458f2ae6f3SLoc Ho
5468f2ae6f3SLoc Ho			edacpmd@7c200000 {
5478f2ae6f3SLoc Ho				compatible = "apm,xgene-edac-pmd";
5488f2ae6f3SLoc Ho				reg = <0x0 0x7c200000 0x0 0x200000>;
5498f2ae6f3SLoc Ho				pmd-controller = <1>;
5508f2ae6f3SLoc Ho			};
5518f2ae6f3SLoc Ho
5528f2ae6f3SLoc Ho			edacpmd@7c400000 {
5538f2ae6f3SLoc Ho				compatible = "apm,xgene-edac-pmd";
5548f2ae6f3SLoc Ho				reg = <0x0 0x7c400000 0x0 0x200000>;
5558f2ae6f3SLoc Ho				pmd-controller = <2>;
5568f2ae6f3SLoc Ho			};
5578f2ae6f3SLoc Ho
5588f2ae6f3SLoc Ho			edacpmd@7c600000 {
5598f2ae6f3SLoc Ho				compatible = "apm,xgene-edac-pmd";
5608f2ae6f3SLoc Ho				reg = <0x0 0x7c600000 0x0 0x200000>;
5618f2ae6f3SLoc Ho				pmd-controller = <3>;
5628f2ae6f3SLoc Ho			};
563043cba96SLoc Ho
564043cba96SLoc Ho			edacl3@7e600000 {
565043cba96SLoc Ho				compatible = "apm,xgene-edac-l3";
566043cba96SLoc Ho				reg = <0x0 0x7e600000 0x0 0x1000>;
567043cba96SLoc Ho			};
568043cba96SLoc Ho
569043cba96SLoc Ho			edacsoc@7e930000 {
570043cba96SLoc Ho				compatible = "apm,xgene-edac-soc-v1";
571043cba96SLoc Ho				reg = <0x0 0x7e930000 0x0 0x1000>;
572043cba96SLoc Ho			};
5738f2ae6f3SLoc Ho		};
5748f2ae6f3SLoc Ho
575ca5b3410SRobert Richter		pcie0: pcie@1f2b0000 {
576ca5b3410SRobert Richter			status = "disabled";
577ca5b3410SRobert Richter			device_type = "pci";
578ca5b3410SRobert Richter			compatible = "apm,xgene-storm-pcie", "apm,xgene-pcie";
579ca5b3410SRobert Richter			#interrupt-cells = <1>;
580ca5b3410SRobert Richter			#size-cells = <2>;
581ca5b3410SRobert Richter			#address-cells = <3>;
582ca5b3410SRobert Richter			reg = < 0x00 0x1f2b0000 0x0 0x00010000   /* Controller registers */
583ca5b3410SRobert Richter				0xe0 0xd0000000 0x0 0x00040000>; /* PCI config space */
584ca5b3410SRobert Richter			reg-names = "csr", "cfg";
585ca5b3410SRobert Richter			ranges = <0x01000000 0x00 0x00000000 0xe0 0x10000000 0x00 0x00010000   /* io */
58680bb3edaSDuc Dang				  0x02000000 0x00 0x80000000 0xe1 0x80000000 0x00 0x80000000   /* mem */
58780bb3edaSDuc Dang				  0x43000000 0xf0 0x00000000 0xf0 0x00000000 0x10 0x00000000>; /* mem */
588ca5b3410SRobert Richter			dma-ranges = <0x42000000 0x80 0x00000000 0x80 0x00000000 0x00 0x80000000
589ca5b3410SRobert Richter				      0x42000000 0x00 0x00000000 0x00 0x00000000 0x80 0x00000000>;
590ca5b3410SRobert Richter			interrupt-map-mask = <0x0 0x0 0x0 0x7>;
591ca5b3410SRobert Richter			interrupt-map = <0x0 0x0 0x0 0x1 &gic 0x0 0xc2 0x1
592ca5b3410SRobert Richter					 0x0 0x0 0x0 0x2 &gic 0x0 0xc3 0x1
593ca5b3410SRobert Richter					 0x0 0x0 0x0 0x3 &gic 0x0 0xc4 0x1
594ca5b3410SRobert Richter					 0x0 0x0 0x0 0x4 &gic 0x0 0xc5 0x1>;
595ca5b3410SRobert Richter			dma-coherent;
596ca5b3410SRobert Richter			clocks = <&pcie0clk 0>;
597e1e6e5c4SDuc Dang			msi-parent = <&msi>;
598ca5b3410SRobert Richter		};
599ca5b3410SRobert Richter
600ca5b3410SRobert Richter		pcie1: pcie@1f2c0000 {
601ca5b3410SRobert Richter			status = "disabled";
602ca5b3410SRobert Richter			device_type = "pci";
603ca5b3410SRobert Richter			compatible = "apm,xgene-storm-pcie", "apm,xgene-pcie";
604ca5b3410SRobert Richter			#interrupt-cells = <1>;
605ca5b3410SRobert Richter			#size-cells = <2>;
606ca5b3410SRobert Richter			#address-cells = <3>;
607ca5b3410SRobert Richter			reg = < 0x00 0x1f2c0000 0x0 0x00010000   /* Controller registers */
608ca5b3410SRobert Richter				0xd0 0xd0000000 0x0 0x00040000>; /* PCI config space */
609ca5b3410SRobert Richter			reg-names = "csr", "cfg";
61080bb3edaSDuc Dang			ranges = <0x01000000 0x00 0x00000000 0xd0 0x10000000 0x00 0x00010000   /* io  */
61180bb3edaSDuc Dang				  0x02000000 0x00 0x80000000 0xd1 0x80000000 0x00 0x80000000   /* mem */
61280bb3edaSDuc Dang				  0x43000000 0xd8 0x00000000 0xd8 0x00000000 0x08 0x00000000>; /* mem */
613ca5b3410SRobert Richter			dma-ranges = <0x42000000 0x80 0x00000000 0x80 0x00000000 0x00 0x80000000
614ca5b3410SRobert Richter				      0x42000000 0x00 0x00000000 0x00 0x00000000 0x80 0x00000000>;
615ca5b3410SRobert Richter			interrupt-map-mask = <0x0 0x0 0x0 0x7>;
616ca5b3410SRobert Richter			interrupt-map = <0x0 0x0 0x0 0x1 &gic 0x0 0xc8 0x1
617ca5b3410SRobert Richter					 0x0 0x0 0x0 0x2 &gic 0x0 0xc9 0x1
618ca5b3410SRobert Richter					 0x0 0x0 0x0 0x3 &gic 0x0 0xca 0x1
619ca5b3410SRobert Richter					 0x0 0x0 0x0 0x4 &gic 0x0 0xcb 0x1>;
620ca5b3410SRobert Richter			dma-coherent;
621ca5b3410SRobert Richter			clocks = <&pcie1clk 0>;
622e1e6e5c4SDuc Dang			msi-parent = <&msi>;
623ca5b3410SRobert Richter		};
624ca5b3410SRobert Richter
625ca5b3410SRobert Richter		pcie2: pcie@1f2d0000 {
626ca5b3410SRobert Richter			status = "disabled";
627ca5b3410SRobert Richter			device_type = "pci";
628ca5b3410SRobert Richter			compatible = "apm,xgene-storm-pcie", "apm,xgene-pcie";
629ca5b3410SRobert Richter			#interrupt-cells = <1>;
630ca5b3410SRobert Richter			#size-cells = <2>;
631ca5b3410SRobert Richter			#address-cells = <3>;
632ca5b3410SRobert Richter			reg =  < 0x00 0x1f2d0000 0x0 0x00010000   /* Controller registers */
633ca5b3410SRobert Richter				 0x90 0xd0000000 0x0 0x00040000>; /* PCI config space */
634ca5b3410SRobert Richter			reg-names = "csr", "cfg";
63580bb3edaSDuc Dang			ranges = <0x01000000 0x00 0x00000000 0x90 0x10000000 0x00 0x00010000   /* io  */
63680bb3edaSDuc Dang				  0x02000000 0x00 0x80000000 0x91 0x80000000 0x00 0x80000000   /* mem */
63780bb3edaSDuc Dang				  0x43000000 0x94 0x00000000 0x94 0x00000000 0x04 0x00000000>; /* mem */
638ca5b3410SRobert Richter			dma-ranges = <0x42000000 0x80 0x00000000 0x80 0x00000000 0x00 0x80000000
639ca5b3410SRobert Richter				      0x42000000 0x00 0x00000000 0x00 0x00000000 0x80 0x00000000>;
640ca5b3410SRobert Richter			interrupt-map-mask = <0x0 0x0 0x0 0x7>;
641ca5b3410SRobert Richter			interrupt-map = <0x0 0x0 0x0 0x1 &gic 0x0 0xce 0x1
642ca5b3410SRobert Richter					 0x0 0x0 0x0 0x2 &gic 0x0 0xcf 0x1
643ca5b3410SRobert Richter					 0x0 0x0 0x0 0x3 &gic 0x0 0xd0 0x1
644ca5b3410SRobert Richter					 0x0 0x0 0x0 0x4 &gic 0x0 0xd1 0x1>;
645ca5b3410SRobert Richter			dma-coherent;
646ca5b3410SRobert Richter			clocks = <&pcie2clk 0>;
647e1e6e5c4SDuc Dang			msi-parent = <&msi>;
648ca5b3410SRobert Richter		};
649ca5b3410SRobert Richter
650ca5b3410SRobert Richter		pcie3: pcie@1f500000 {
651ca5b3410SRobert Richter			status = "disabled";
652ca5b3410SRobert Richter			device_type = "pci";
653ca5b3410SRobert Richter			compatible = "apm,xgene-storm-pcie", "apm,xgene-pcie";
654ca5b3410SRobert Richter			#interrupt-cells = <1>;
655ca5b3410SRobert Richter			#size-cells = <2>;
656ca5b3410SRobert Richter			#address-cells = <3>;
657ca5b3410SRobert Richter			reg = < 0x00 0x1f500000 0x0 0x00010000   /* Controller registers */
658ca5b3410SRobert Richter				0xa0 0xd0000000 0x0 0x00040000>; /* PCI config space */
659ca5b3410SRobert Richter			reg-names = "csr", "cfg";
66080bb3edaSDuc Dang			ranges = <0x01000000 0x00 0x00000000 0xa0 0x10000000 0x00 0x00010000   /* io  */
66180bb3edaSDuc Dang				  0x02000000 0x00 0x80000000 0xa1 0x80000000 0x00 0x80000000   /* mem */
66280bb3edaSDuc Dang				  0x43000000 0xb0 0x00000000 0xb0 0x00000000 0x10 0x00000000>; /* mem */
663ca5b3410SRobert Richter			dma-ranges = <0x42000000 0x80 0x00000000 0x80 0x00000000 0x00 0x80000000
664ca5b3410SRobert Richter				      0x42000000 0x00 0x00000000 0x00 0x00000000 0x80 0x00000000>;
665ca5b3410SRobert Richter			interrupt-map-mask = <0x0 0x0 0x0 0x7>;
666ca5b3410SRobert Richter			interrupt-map = <0x0 0x0 0x0 0x1 &gic 0x0 0xd4 0x1
667ca5b3410SRobert Richter					 0x0 0x0 0x0 0x2 &gic 0x0 0xd5 0x1
668ca5b3410SRobert Richter					 0x0 0x0 0x0 0x3 &gic 0x0 0xd6 0x1
669ca5b3410SRobert Richter					 0x0 0x0 0x0 0x4 &gic 0x0 0xd7 0x1>;
670ca5b3410SRobert Richter			dma-coherent;
671ca5b3410SRobert Richter			clocks = <&pcie3clk 0>;
672e1e6e5c4SDuc Dang			msi-parent = <&msi>;
673ca5b3410SRobert Richter		};
674ca5b3410SRobert Richter
675ca5b3410SRobert Richter		pcie4: pcie@1f510000 {
676ca5b3410SRobert Richter			status = "disabled";
677ca5b3410SRobert Richter			device_type = "pci";
678ca5b3410SRobert Richter			compatible = "apm,xgene-storm-pcie", "apm,xgene-pcie";
679ca5b3410SRobert Richter			#interrupt-cells = <1>;
680ca5b3410SRobert Richter			#size-cells = <2>;
681ca5b3410SRobert Richter			#address-cells = <3>;
682ca5b3410SRobert Richter			reg = < 0x00 0x1f510000 0x0 0x00010000   /* Controller registers */
683ca5b3410SRobert Richter				0xc0 0xd0000000 0x0 0x00200000>; /* PCI config space */
684ca5b3410SRobert Richter			reg-names = "csr", "cfg";
68580bb3edaSDuc Dang			ranges = <0x01000000 0x00 0x00000000 0xc0 0x10000000 0x00 0x00010000   /* io  */
68680bb3edaSDuc Dang				  0x02000000 0x00 0x80000000 0xc1 0x80000000 0x00 0x80000000   /* mem */
68780bb3edaSDuc Dang				  0x43000000 0xc8 0x00000000 0xc8 0x00000000 0x08 0x00000000>; /* mem */
688ca5b3410SRobert Richter			dma-ranges = <0x42000000 0x80 0x00000000 0x80 0x00000000 0x00 0x80000000
689ca5b3410SRobert Richter				      0x42000000 0x00 0x00000000 0x00 0x00000000 0x80 0x00000000>;
690ca5b3410SRobert Richter			interrupt-map-mask = <0x0 0x0 0x0 0x7>;
691ca5b3410SRobert Richter			interrupt-map = <0x0 0x0 0x0 0x1 &gic 0x0 0xda 0x1
692ca5b3410SRobert Richter					 0x0 0x0 0x0 0x2 &gic 0x0 0xdb 0x1
693ca5b3410SRobert Richter					 0x0 0x0 0x0 0x3 &gic 0x0 0xdc 0x1
694ca5b3410SRobert Richter					 0x0 0x0 0x0 0x4 &gic 0x0 0xdd 0x1>;
695ca5b3410SRobert Richter			dma-coherent;
696ca5b3410SRobert Richter			clocks = <&pcie4clk 0>;
697e1e6e5c4SDuc Dang			msi-parent = <&msi>;
698ca5b3410SRobert Richter		};
699ca5b3410SRobert Richter
700ca5b3410SRobert Richter		serial0: serial@1c020000 {
701ca5b3410SRobert Richter			status = "disabled";
702ca5b3410SRobert Richter			device_type = "serial";
703ca5b3410SRobert Richter			compatible = "ns16550a";
704ca5b3410SRobert Richter			reg = <0 0x1c020000 0x0 0x1000>;
705ca5b3410SRobert Richter			reg-shift = <2>;
706ca5b3410SRobert Richter			clock-frequency = <10000000>; /* Updated by bootloader */
707ca5b3410SRobert Richter			interrupt-parent = <&gic>;
708ca5b3410SRobert Richter			interrupts = <0x0 0x4c 0x4>;
709ca5b3410SRobert Richter		};
710ca5b3410SRobert Richter
711ca5b3410SRobert Richter		serial1: serial@1c021000 {
712ca5b3410SRobert Richter			status = "disabled";
713ca5b3410SRobert Richter			device_type = "serial";
714ca5b3410SRobert Richter			compatible = "ns16550a";
715ca5b3410SRobert Richter			reg = <0 0x1c021000 0x0 0x1000>;
716ca5b3410SRobert Richter			reg-shift = <2>;
717ca5b3410SRobert Richter			clock-frequency = <10000000>; /* Updated by bootloader */
718ca5b3410SRobert Richter			interrupt-parent = <&gic>;
719ca5b3410SRobert Richter			interrupts = <0x0 0x4d 0x4>;
720ca5b3410SRobert Richter		};
721ca5b3410SRobert Richter
722ca5b3410SRobert Richter		serial2: serial@1c022000 {
723ca5b3410SRobert Richter			status = "disabled";
724ca5b3410SRobert Richter			device_type = "serial";
725ca5b3410SRobert Richter			compatible = "ns16550a";
726ca5b3410SRobert Richter			reg = <0 0x1c022000 0x0 0x1000>;
727ca5b3410SRobert Richter			reg-shift = <2>;
728ca5b3410SRobert Richter			clock-frequency = <10000000>; /* Updated by bootloader */
729ca5b3410SRobert Richter			interrupt-parent = <&gic>;
730ca5b3410SRobert Richter			interrupts = <0x0 0x4e 0x4>;
731ca5b3410SRobert Richter		};
732ca5b3410SRobert Richter
733ca5b3410SRobert Richter		serial3: serial@1c023000 {
734ca5b3410SRobert Richter			status = "disabled";
735ca5b3410SRobert Richter			device_type = "serial";
736ca5b3410SRobert Richter			compatible = "ns16550a";
737ca5b3410SRobert Richter			reg = <0 0x1c023000 0x0 0x1000>;
738ca5b3410SRobert Richter			reg-shift = <2>;
739ca5b3410SRobert Richter			clock-frequency = <10000000>; /* Updated by bootloader */
740ca5b3410SRobert Richter			interrupt-parent = <&gic>;
741ca5b3410SRobert Richter			interrupts = <0x0 0x4f 0x4>;
742ca5b3410SRobert Richter		};
743ca5b3410SRobert Richter
7448f74e861SSuman Tripathi		mmc0: mmc@1c000000 {
7458f74e861SSuman Tripathi			compatible = "arasan,sdhci-4.9a";
7468f74e861SSuman Tripathi			reg = <0x0 0x1c000000 0x0 0x100>;
7478f74e861SSuman Tripathi			interrupts = <0x0 0x49 0x4>;
7488f74e861SSuman Tripathi			dma-coherent;
7498f74e861SSuman Tripathi			no-1-8-v;
7508f74e861SSuman Tripathi			clock-names = "clk_xin", "clk_ahb";
7518f74e861SSuman Tripathi			clocks = <&sdioclk 0>, <&ahbclk 0>;
7528f74e861SSuman Tripathi		};
7538f74e861SSuman Tripathi
75493beff2cSDuc Dang		gfcgpio: gpio0@1701c000 {
7550a09223fSDuc Dang			compatible = "apm,xgene-gpio";
7560a09223fSDuc Dang			reg = <0x0 0x1701c000 0x0 0x40>;
7570a09223fSDuc Dang			gpio-controller;
7580a09223fSDuc Dang			#gpio-cells = <2>;
7590a09223fSDuc Dang		};
7600a09223fSDuc Dang
76193beff2cSDuc Dang		dwgpio: gpio@1c024000 {
762e38ec5b9SDuc Dang			compatible = "snps,dw-apb-gpio";
763e38ec5b9SDuc Dang			reg = <0x0 0x1c024000 0x0 0x1000>;
764e38ec5b9SDuc Dang			reg-io-width = <4>;
765e38ec5b9SDuc Dang			#address-cells = <1>;
766e38ec5b9SDuc Dang			#size-cells = <0>;
767e38ec5b9SDuc Dang
768e38ec5b9SDuc Dang			porta: gpio-controller@0 {
769e38ec5b9SDuc Dang				compatible = "snps,dw-apb-gpio-port";
770e38ec5b9SDuc Dang				gpio-controller;
771e38ec5b9SDuc Dang				snps,nr-gpios = <32>;
772e38ec5b9SDuc Dang				reg = <0>;
773e38ec5b9SDuc Dang			};
774e38ec5b9SDuc Dang		};
775e38ec5b9SDuc Dang
77693beff2cSDuc Dang		i2c0: i2c@10512000 {
77762ff9683SDuc Dang			status = "disabled";
77862ff9683SDuc Dang			#address-cells = <1>;
77962ff9683SDuc Dang			#size-cells = <0>;
78062ff9683SDuc Dang			compatible = "snps,designware-i2c";
78162ff9683SDuc Dang			reg = <0x0 0x10512000 0x0 0x1000>;
78262ff9683SDuc Dang			interrupts = <0 0x44 0x4>;
78362ff9683SDuc Dang			#clock-cells = <1>;
7840fe8588fSDuc Dang			clocks = <&ahbclk 0>;
78562ff9683SDuc Dang			bus_num = <0>;
78662ff9683SDuc Dang		};
78762ff9683SDuc Dang
788ca5b3410SRobert Richter		phy1: phy@1f21a000 {
789ca5b3410SRobert Richter			compatible = "apm,xgene-phy";
790ca5b3410SRobert Richter			reg = <0x0 0x1f21a000 0x0 0x100>;
791ca5b3410SRobert Richter			#phy-cells = <1>;
792ca5b3410SRobert Richter			clocks = <&sataphy1clk 0>;
793ca5b3410SRobert Richter			status = "disabled";
794ca5b3410SRobert Richter			apm,tx-boost-gain = <30 30 30 30 30 30>;
795ca5b3410SRobert Richter			apm,tx-eye-tuning = <2 10 10 2 10 10>;
796ca5b3410SRobert Richter		};
797ca5b3410SRobert Richter
798ca5b3410SRobert Richter		phy2: phy@1f22a000 {
799ca5b3410SRobert Richter			compatible = "apm,xgene-phy";
800ca5b3410SRobert Richter			reg = <0x0 0x1f22a000 0x0 0x100>;
801ca5b3410SRobert Richter			#phy-cells = <1>;
802ca5b3410SRobert Richter			clocks = <&sataphy2clk 0>;
803ca5b3410SRobert Richter			status = "ok";
804ca5b3410SRobert Richter			apm,tx-boost-gain = <30 30 30 30 30 30>;
805ca5b3410SRobert Richter			apm,tx-eye-tuning = <1 10 10 2 10 10>;
806ca5b3410SRobert Richter		};
807ca5b3410SRobert Richter
808ca5b3410SRobert Richter		phy3: phy@1f23a000 {
809ca5b3410SRobert Richter			compatible = "apm,xgene-phy";
810ca5b3410SRobert Richter			reg = <0x0 0x1f23a000 0x0 0x100>;
811ca5b3410SRobert Richter			#phy-cells = <1>;
812ca5b3410SRobert Richter			clocks = <&sataphy3clk 0>;
813ca5b3410SRobert Richter			status = "ok";
814ca5b3410SRobert Richter			apm,tx-boost-gain = <31 31 31 31 31 31>;
815ca5b3410SRobert Richter			apm,tx-eye-tuning = <2 10 10 2 10 10>;
816ca5b3410SRobert Richter		};
817ca5b3410SRobert Richter
818ca5b3410SRobert Richter		sata1: sata@1a000000 {
819ca5b3410SRobert Richter			compatible = "apm,xgene-ahci";
820ca5b3410SRobert Richter			reg = <0x0 0x1a000000 0x0 0x1000>,
821ca5b3410SRobert Richter			      <0x0 0x1f210000 0x0 0x1000>,
822ca5b3410SRobert Richter			      <0x0 0x1f21d000 0x0 0x1000>,
823ca5b3410SRobert Richter			      <0x0 0x1f21e000 0x0 0x1000>,
824ca5b3410SRobert Richter			      <0x0 0x1f217000 0x0 0x1000>;
825ca5b3410SRobert Richter			interrupts = <0x0 0x86 0x4>;
826ca5b3410SRobert Richter			dma-coherent;
827ca5b3410SRobert Richter			status = "disabled";
828ca5b3410SRobert Richter			clocks = <&sata01clk 0>;
829ca5b3410SRobert Richter			phys = <&phy1 0>;
830ca5b3410SRobert Richter			phy-names = "sata-phy";
831ca5b3410SRobert Richter		};
832ca5b3410SRobert Richter
833ca5b3410SRobert Richter		sata2: sata@1a400000 {
834ca5b3410SRobert Richter			compatible = "apm,xgene-ahci";
835ca5b3410SRobert Richter			reg = <0x0 0x1a400000 0x0 0x1000>,
836ca5b3410SRobert Richter			      <0x0 0x1f220000 0x0 0x1000>,
837ca5b3410SRobert Richter			      <0x0 0x1f22d000 0x0 0x1000>,
838ca5b3410SRobert Richter			      <0x0 0x1f22e000 0x0 0x1000>,
839ca5b3410SRobert Richter			      <0x0 0x1f227000 0x0 0x1000>;
840ca5b3410SRobert Richter			interrupts = <0x0 0x87 0x4>;
841ca5b3410SRobert Richter			dma-coherent;
842ca5b3410SRobert Richter			status = "ok";
843ca5b3410SRobert Richter			clocks = <&sata23clk 0>;
844ca5b3410SRobert Richter			phys = <&phy2 0>;
845ca5b3410SRobert Richter			phy-names = "sata-phy";
846ca5b3410SRobert Richter		};
847ca5b3410SRobert Richter
848ca5b3410SRobert Richter		sata3: sata@1a800000 {
849ca5b3410SRobert Richter			compatible = "apm,xgene-ahci";
850ca5b3410SRobert Richter			reg = <0x0 0x1a800000 0x0 0x1000>,
851ca5b3410SRobert Richter			      <0x0 0x1f230000 0x0 0x1000>,
852ca5b3410SRobert Richter			      <0x0 0x1f23d000 0x0 0x1000>,
853ca5b3410SRobert Richter			      <0x0 0x1f23e000 0x0 0x1000>;
854ca5b3410SRobert Richter			interrupts = <0x0 0x88 0x4>;
855ca5b3410SRobert Richter			dma-coherent;
856ca5b3410SRobert Richter			status = "ok";
857ca5b3410SRobert Richter			clocks = <&sata45clk 0>;
858ca5b3410SRobert Richter			phys = <&phy3 0>;
859ca5b3410SRobert Richter			phy-names = "sata-phy";
860ca5b3410SRobert Richter		};
861ca5b3410SRobert Richter
862bd410233SDuc Dang		/* Do not change dwusb name, coded for backward compatibility */
863bd410233SDuc Dang		usb0: dwusb@19000000 {
864bd410233SDuc Dang			status = "disabled";
865bd410233SDuc Dang			compatible = "snps,dwc3";
866bd410233SDuc Dang			reg =  <0x0 0x19000000 0x0 0x100000>;
867bd410233SDuc Dang			interrupts = <0x0 0x89 0x4>;
868bd410233SDuc Dang			dma-coherent;
869bd410233SDuc Dang			dr_mode = "host";
870bd410233SDuc Dang		};
871bd410233SDuc Dang
872bd410233SDuc Dang		usb1: dwusb@19800000 {
873bd410233SDuc Dang			status = "disabled";
874bd410233SDuc Dang			compatible = "snps,dwc3";
875bd410233SDuc Dang			reg =  <0x0 0x19800000 0x0 0x100000>;
876bd410233SDuc Dang			interrupts = <0x0 0x8a 0x4>;
877bd410233SDuc Dang			dma-coherent;
878bd410233SDuc Dang			dr_mode = "host";
879bd410233SDuc Dang		};
880bd410233SDuc Dang
88193beff2cSDuc Dang		sbgpio: gpio@17001000{
882ea21feb3SY Vo			compatible = "apm,xgene-gpio-sb";
883ea21feb3SY Vo			reg = <0x0 0x17001000 0x0 0x400>;
884ea21feb3SY Vo			#gpio-cells = <2>;
885ea21feb3SY Vo			gpio-controller;
886ea21feb3SY Vo			interrupts = 	<0x0 0x28 0x1>,
887ea21feb3SY Vo					<0x0 0x29 0x1>,
888ea21feb3SY Vo					<0x0 0x2a 0x1>,
889ea21feb3SY Vo					<0x0 0x2b 0x1>,
890ea21feb3SY Vo					<0x0 0x2c 0x1>,
891ea21feb3SY Vo					<0x0 0x2d 0x1>;
892ea21feb3SY Vo		};
893ea21feb3SY Vo
894ca5b3410SRobert Richter		rtc: rtc@10510000 {
895ca5b3410SRobert Richter			compatible = "apm,xgene-rtc";
896ca5b3410SRobert Richter			reg = <0x0 0x10510000 0x0 0x400>;
897ca5b3410SRobert Richter			interrupts = <0x0 0x46 0x4>;
898ca5b3410SRobert Richter			#clock-cells = <1>;
899ca5b3410SRobert Richter			clocks = <&rtcclk 0>;
900ca5b3410SRobert Richter		};
901ca5b3410SRobert Richter
902ca5b3410SRobert Richter		menet: ethernet@17020000 {
903ca5b3410SRobert Richter			compatible = "apm,xgene-enet";
904ca5b3410SRobert Richter			status = "disabled";
905ca5b3410SRobert Richter			reg = <0x0 0x17020000 0x0 0xd100>,
9066c9e9247SLinus Torvalds			      <0x0 0X17030000 0x0 0Xc300>,
907ca5b3410SRobert Richter			      <0x0 0X10000000 0x0 0X200>;
908ca5b3410SRobert Richter			reg-names = "enet_csr", "ring_csr", "ring_cmd";
909ca5b3410SRobert Richter			interrupts = <0x0 0x3c 0x4>;
910ca5b3410SRobert Richter			dma-coherent;
911ca5b3410SRobert Richter			clocks = <&menetclk 0>;
912ca5b3410SRobert Richter			/* mac address will be overwritten by the bootloader */
913ca5b3410SRobert Richter			local-mac-address = [00 00 00 00 00 00];
914ca5b3410SRobert Richter			phy-connection-type = "rgmii";
915ca5b3410SRobert Richter			phy-handle = <&menetphy>;
916ca5b3410SRobert Richter			mdio {
917ca5b3410SRobert Richter				compatible = "apm,xgene-mdio";
918ca5b3410SRobert Richter				#address-cells = <1>;
919ca5b3410SRobert Richter				#size-cells = <0>;
920ca5b3410SRobert Richter				menetphy: menetphy@3 {
921ca5b3410SRobert Richter					compatible = "ethernet-phy-id001c.c915";
922ca5b3410SRobert Richter					reg = <0x3>;
923ca5b3410SRobert Richter				};
924ca5b3410SRobert Richter
925ca5b3410SRobert Richter			};
926ca5b3410SRobert Richter		};
927ca5b3410SRobert Richter
928ca5b3410SRobert Richter		sgenet0: ethernet@1f210000 {
9292a91eb72SIyappan Subramanian			compatible = "apm,xgene1-sgenet";
930ca5b3410SRobert Richter			status = "disabled";
9316c9e9247SLinus Torvalds			reg = <0x0 0x1f210000 0x0 0xd100>,
9326c9e9247SLinus Torvalds			      <0x0 0x1f200000 0x0 0Xc300>,
9336c9e9247SLinus Torvalds			      <0x0 0x1B000000 0x0 0X200>;
934ca5b3410SRobert Richter			reg-names = "enet_csr", "ring_csr", "ring_cmd";
935d3134649SIyappan Subramanian			interrupts = <0x0 0xA0 0x4>,
936d3134649SIyappan Subramanian				     <0x0 0xA1 0x4>;
937ca5b3410SRobert Richter			dma-coherent;
938ca5b3410SRobert Richter			clocks = <&sge0clk 0>;
939ca5b3410SRobert Richter			local-mac-address = [00 00 00 00 00 00];
940ca5b3410SRobert Richter			phy-connection-type = "sgmii";
941ca5b3410SRobert Richter		};
942ca5b3410SRobert Richter
9432d33394eSKeyur Chudgar		sgenet1: ethernet@1f210030 {
9442d33394eSKeyur Chudgar			compatible = "apm,xgene1-sgenet";
9452d33394eSKeyur Chudgar			status = "disabled";
9462d33394eSKeyur Chudgar			reg = <0x0 0x1f210030 0x0 0xd100>,
9472d33394eSKeyur Chudgar			      <0x0 0x1f200000 0x0 0Xc300>,
9482d33394eSKeyur Chudgar			      <0x0 0x1B000000 0x0 0X8000>;
9492d33394eSKeyur Chudgar			reg-names = "enet_csr", "ring_csr", "ring_cmd";
950d3134649SIyappan Subramanian			interrupts = <0x0 0xAC 0x4>,
951d3134649SIyappan Subramanian				     <0x0 0xAD 0x4>;
9522d33394eSKeyur Chudgar			port-id = <1>;
9532d33394eSKeyur Chudgar			dma-coherent;
9542d33394eSKeyur Chudgar			clocks = <&sge1clk 0>;
9552d33394eSKeyur Chudgar			local-mac-address = [00 00 00 00 00 00];
9562d33394eSKeyur Chudgar			phy-connection-type = "sgmii";
9572d33394eSKeyur Chudgar		};
9582d33394eSKeyur Chudgar
959ca5b3410SRobert Richter		xgenet: ethernet@1f610000 {
9602a91eb72SIyappan Subramanian			compatible = "apm,xgene1-xgenet";
961ca5b3410SRobert Richter			status = "disabled";
962ca5b3410SRobert Richter			reg = <0x0 0x1f610000 0x0 0xd100>,
9636c9e9247SLinus Torvalds			      <0x0 0x1f600000 0x0 0Xc300>,
964ca5b3410SRobert Richter			      <0x0 0x18000000 0x0 0X200>;
965ca5b3410SRobert Richter			reg-names = "enet_csr", "ring_csr", "ring_cmd";
966d3134649SIyappan Subramanian			interrupts = <0x0 0x60 0x4>,
967d3134649SIyappan Subramanian				     <0x0 0x61 0x4>;
968ca5b3410SRobert Richter			dma-coherent;
969ca5b3410SRobert Richter			clocks = <&xge0clk 0>;
970ca5b3410SRobert Richter			/* mac address will be overwritten by the bootloader */
971ca5b3410SRobert Richter			local-mac-address = [00 00 00 00 00 00];
972ca5b3410SRobert Richter			phy-connection-type = "xgmii";
973ca5b3410SRobert Richter		};
974ca5b3410SRobert Richter
975e63c7a09SIyappan Subramanian		xgenet1: ethernet@1f620000 {
976e63c7a09SIyappan Subramanian			compatible = "apm,xgene1-xgenet";
977e63c7a09SIyappan Subramanian			status = "disabled";
978e63c7a09SIyappan Subramanian			reg = <0x0 0x1f620000 0x0 0xd100>,
979e63c7a09SIyappan Subramanian			      <0x0 0x1f600000 0x0 0Xc300>,
980e63c7a09SIyappan Subramanian			      <0x0 0x18000000 0x0 0X8000>;
981e63c7a09SIyappan Subramanian			reg-names = "enet_csr", "ring_csr", "ring_cmd";
982e63c7a09SIyappan Subramanian			interrupts = <0x0 0x6C 0x4>,
983e63c7a09SIyappan Subramanian				     <0x0 0x6D 0x4>;
984e63c7a09SIyappan Subramanian			port-id = <1>;
985e63c7a09SIyappan Subramanian			dma-coherent;
986e63c7a09SIyappan Subramanian			clocks = <&xge1clk 0>;
987e63c7a09SIyappan Subramanian			/* mac address will be overwritten by the bootloader */
988e63c7a09SIyappan Subramanian			local-mac-address = [00 00 00 00 00 00];
989e63c7a09SIyappan Subramanian			phy-connection-type = "xgmii";
990e63c7a09SIyappan Subramanian		};
991e63c7a09SIyappan Subramanian
992ca5b3410SRobert Richter		rng: rng@10520000 {
993ca5b3410SRobert Richter			compatible = "apm,xgene-rng";
994ca5b3410SRobert Richter			reg = <0x0 0x10520000 0x0 0x100>;
995ca5b3410SRobert Richter			interrupts = <0x0 0x41 0x4>;
996ca5b3410SRobert Richter			clocks = <&rngpkaclk 0>;
997ca5b3410SRobert Richter		};
99874e353e1SRameshwar Prasad Sahu
99974e353e1SRameshwar Prasad Sahu		dma: dma@1f270000 {
100074e353e1SRameshwar Prasad Sahu			compatible = "apm,xgene-storm-dma";
100174e353e1SRameshwar Prasad Sahu			device_type = "dma";
100274e353e1SRameshwar Prasad Sahu			reg = <0x0 0x1f270000 0x0 0x10000>,
100374e353e1SRameshwar Prasad Sahu			      <0x0 0x1f200000 0x0 0x10000>,
1004cda8e937SRameshwar Prasad Sahu			      <0x0 0x1b000000 0x0 0x400000>,
100574e353e1SRameshwar Prasad Sahu			      <0x0 0x1054a000 0x0 0x100>;
100674e353e1SRameshwar Prasad Sahu			interrupts = <0x0 0x82 0x4>,
100774e353e1SRameshwar Prasad Sahu				     <0x0 0xb8 0x4>,
100874e353e1SRameshwar Prasad Sahu				     <0x0 0xb9 0x4>,
100974e353e1SRameshwar Prasad Sahu				     <0x0 0xba 0x4>,
101074e353e1SRameshwar Prasad Sahu				     <0x0 0xbb 0x4>;
101174e353e1SRameshwar Prasad Sahu			dma-coherent;
101274e353e1SRameshwar Prasad Sahu			clocks = <&dmaclk 0>;
101374e353e1SRameshwar Prasad Sahu		};
1014ca5b3410SRobert Richter	};
1015ca5b3410SRobert Richter};
1016