1// SPDX-License-Identifier: GPL-2.0+
2/*
3 * Freescale ls1021a SOC common device tree source
4 *
5 * Copyright 2013-2015 Freescale Semiconductor, Inc.
6 */
7
8#include "skeleton.dtsi"
9#include <dt-bindings/interrupt-controller/arm-gic.h>
10
11/ {
12	compatible = "fsl,ls1021a";
13	interrupt-parent = <&gic>;
14
15	aliases {
16		serial0 = &lpuart0;
17		serial1 = &lpuart1;
18		serial2 = &lpuart2;
19		serial3 = &lpuart3;
20		serial4 = &lpuart4;
21		serial5 = &lpuart5;
22		sysclk = &sysclk;
23	};
24
25	cpus {
26		#address-cells = <1>;
27		#size-cells = <0>;
28
29		cpu@f00 {
30			compatible = "arm,cortex-a7";
31			device_type = "cpu";
32			reg = <0xf00>;
33			clocks = <&cluster1_clk>;
34		};
35
36		cpu@f01 {
37			compatible = "arm,cortex-a7";
38			device_type = "cpu";
39			reg = <0xf01>;
40			clocks = <&cluster1_clk>;
41		};
42	};
43
44	timer {
45		compatible = "arm,armv7-timer";
46		interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
47			     <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
48			     <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
49			     <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>;
50	};
51
52	pmu {
53		compatible = "arm,cortex-a7-pmu";
54		interrupts = <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>,
55			     <GIC_SPI 139 IRQ_TYPE_LEVEL_HIGH>;
56	};
57
58	soc {
59		compatible = "simple-bus";
60		#address-cells = <1>;
61		#size-cells = <1>;
62		device_type = "soc";
63		interrupt-parent = <&gic>;
64		ranges;
65
66		gic: interrupt-controller@1400000 {
67			compatible = "arm,cortex-a7-gic";
68			#interrupt-cells = <3>;
69			interrupt-controller;
70			reg = <0x1401000 0x1000>,
71			      <0x1402000 0x1000>,
72			      <0x1404000 0x2000>,
73			      <0x1406000 0x2000>;
74			interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_HIGH)>;
75
76		};
77
78		ifc: ifc@1530000 {
79			compatible = "fsl,ifc", "simple-bus";
80			reg = <0x1530000 0x10000>;
81			interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
82		};
83
84		dcfg: dcfg@1ee0000 {
85			compatible = "fsl,ls1021a-dcfg", "syscon";
86			reg = <0x1ee0000 0x10000>;
87			big-endian;
88		};
89
90		esdhc: esdhc@1560000 {
91			compatible = "fsl,esdhc";
92			reg = <0x1560000 0x10000>;
93			interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>;
94			clock-frequency = <0>;
95			voltage-ranges = <1800 1800 3300 3300>;
96			sdhci,auto-cmd12;
97			big-endian;
98			bus-width = <4>;
99		};
100
101		gpio0: gpio@2300000 {
102			compatible = "fsl,ls1021a-gpio", "fsl,qoriq-gpio";
103			reg = <0x2300000 0x10000>;
104			interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
105			gpio-controller;
106			#gpio-cells = <2>;
107			interrupt-controller;
108			#interrupt-cells = <2>;
109		};
110
111		gpio1: gpio@2310000 {
112			compatible = "fsl,ls1021a-gpio", "fsl,qoriq-gpio";
113			reg = <0x2310000 0x10000>;
114			interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>;
115			gpio-controller;
116			#gpio-cells = <2>;
117			interrupt-controller;
118			#interrupt-cells = <2>;
119		};
120
121		gpio2: gpio@2320000 {
122			compatible = "fsl,ls1021a-gpio", "fsl,qoriq-gpio";
123			reg = <0x2320000 0x10000>;
124			interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
125			gpio-controller;
126			#gpio-cells = <2>;
127			interrupt-controller;
128			#interrupt-cells = <2>;
129		};
130
131		gpio3: gpio@2330000 {
132			compatible = "fsl,ls1021a-gpio", "fsl,qoriq-gpio";
133			reg = <0x2330000 0x10000>;
134			interrupts = <GIC_SPI 166 IRQ_TYPE_LEVEL_HIGH>;
135			gpio-controller;
136			#gpio-cells = <2>;
137			interrupt-controller;
138			#interrupt-cells = <2>;
139		};
140
141		scfg: scfg@1570000 {
142			compatible = "fsl,ls1021a-scfg", "syscon";
143			reg = <0x1570000 0x10000>;
144			big-endian;
145		};
146
147		clockgen: clocking@1ee1000 {
148			#address-cells = <1>;
149			#size-cells = <1>;
150			ranges = <0x0 0x1ee1000 0x10000>;
151
152			sysclk: sysclk {
153				compatible = "fixed-clock";
154				#clock-cells = <0>;
155				clock-output-names = "sysclk";
156			};
157
158			cga_pll1: pll@800 {
159				compatible = "fsl,qoriq-core-pll-2.0";
160				#clock-cells = <1>;
161				reg = <0x800 0x10>;
162				clocks = <&sysclk>;
163				clock-output-names = "cga-pll1", "cga-pll1-div2",
164						     "cga-pll1-div4";
165			};
166
167			platform_clk: pll@c00 {
168				compatible = "fsl,qoriq-core-pll-2.0";
169				#clock-cells = <1>;
170				reg = <0xc00 0x10>;
171				clocks = <&sysclk>;
172				clock-output-names = "platform-clk", "platform-clk-div2";
173			};
174
175			cluster1_clk: clk0c0@0 {
176				compatible = "fsl,qoriq-core-mux-2.0";
177				#clock-cells = <0>;
178				reg = <0x0 0x10>;
179				clock-names = "pll1cga", "pll1cga-div2", "pll1cga-div4";
180				clocks = <&cga_pll1 0>, <&cga_pll1 1>, <&cga_pll1 2>;
181				clock-output-names = "cluster1-clk";
182			};
183		};
184
185		dspi0: dspi@2100000 {
186			compatible = "fsl,vf610-dspi";
187			#address-cells = <1>;
188			#size-cells = <0>;
189			reg = <0x2100000 0x10000>;
190			interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
191			clock-names = "dspi";
192			clocks = <&platform_clk 1>;
193			num-cs = <6>;
194			big-endian;
195			status = "disabled";
196		};
197
198		dspi1: dspi@2110000 {
199			compatible = "fsl,vf610-dspi";
200			#address-cells = <1>;
201			#size-cells = <0>;
202			reg = <0x2110000 0x10000>;
203			interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
204			clock-names = "dspi";
205			clocks = <&platform_clk 1>;
206			num-cs = <6>;
207			big-endian;
208			status = "disabled";
209		};
210
211		qspi: quadspi@1550000 {
212			compatible = "fsl,ls1021a-qspi";
213			#address-cells = <1>;
214			#size-cells = <0>;
215			reg = <0x1550000 0x10000>,
216				<0x40000000 0x1000000>;
217			reg-names = "QuadSPI", "QuadSPI-memory";
218			status = "disabled";
219		};
220
221		i2c0: i2c@2180000 {
222			compatible = "fsl,vf610-i2c";
223			#address-cells = <1>;
224			#size-cells = <0>;
225			reg = <0x2180000 0x10000>;
226			interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>;
227			clock-names = "i2c";
228			clocks = <&platform_clk 1>;
229			status = "disabled";
230		};
231
232		i2c1: i2c@2190000 {
233			compatible = "fsl,vf610-i2c";
234			#address-cells = <1>;
235			#size-cells = <0>;
236			reg = <0x2190000 0x10000>;
237			interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
238			clock-names = "i2c";
239			clocks = <&platform_clk 1>;
240			status = "disabled";
241		};
242
243		i2c2: i2c@21a0000 {
244			compatible = "fsl,vf610-i2c";
245			#address-cells = <1>;
246			#size-cells = <0>;
247			reg = <0x21a0000 0x10000>;
248			interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>;
249			clock-names = "i2c";
250			clocks = <&platform_clk 1>;
251			status = "disabled";
252		};
253
254		uart0: serial@21c0500 {
255			compatible = "fsl,16550-FIFO64", "ns16550a";
256			reg = <0x21c0500 0x100>;
257			interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
258			fifo-size = <15>;
259			status = "disabled";
260		};
261
262		uart1: serial@21c0600 {
263			compatible = "fsl,16550-FIFO64", "ns16550a";
264			reg = <0x21c0600 0x100>;
265			interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
266			fifo-size = <15>;
267			status = "disabled";
268		};
269
270		uart2: serial@21d0500 {
271			compatible = "fsl,16550-FIFO64", "ns16550a";
272			reg = <0x21d0500 0x100>;
273			interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
274			fifo-size = <15>;
275			status = "disabled";
276		};
277
278		uart3: serial@21d0600 {
279			compatible = "fsl,16550-FIFO64", "ns16550a";
280			reg = <0x21d0600 0x100>;
281			interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
282			fifo-size = <15>;
283			status = "disabled";
284		};
285
286		lpuart0: serial@2950000 {
287			compatible = "fsl,ls1021a-lpuart";
288			reg = <0x2950000 0x1000>;
289			interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
290			clocks = <&sysclk>;
291			clock-names = "ipg";
292			status = "disabled";
293		};
294
295		lpuart1: serial@2960000 {
296			compatible = "fsl,ls1021a-lpuart";
297			reg = <0x2960000 0x1000>;
298			interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
299			clocks = <&platform_clk 1>;
300			clock-names = "ipg";
301			status = "disabled";
302		};
303
304		lpuart2: serial@2970000 {
305			compatible = "fsl,ls1021a-lpuart";
306			reg = <0x2970000 0x1000>;
307			interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
308			clocks = <&platform_clk 1>;
309			clock-names = "ipg";
310			status = "disabled";
311		};
312
313		lpuart3: serial@2980000 {
314			compatible = "fsl,ls1021a-lpuart";
315			reg = <0x2980000 0x1000>;
316			interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
317			clocks = <&platform_clk 1>;
318			clock-names = "ipg";
319			status = "disabled";
320		};
321
322		lpuart4: serial@2990000 {
323			compatible = "fsl,ls1021a-lpuart";
324			reg = <0x2990000 0x1000>;
325			interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
326			clocks = <&platform_clk 1>;
327			clock-names = "ipg";
328			status = "disabled";
329		};
330
331		lpuart5: serial@29a0000 {
332			compatible = "fsl,ls1021a-lpuart";
333			reg = <0x29a0000 0x1000>;
334			interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
335			clocks = <&platform_clk 1>;
336			clock-names = "ipg";
337			status = "disabled";
338		};
339
340		wdog0: watchdog@2ad0000 {
341			compatible = "fsl,imx21-wdt";
342			reg = <0x2ad0000 0x10000>;
343			interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>;
344			clocks = <&platform_clk 1>;
345			clock-names = "wdog-en";
346			big-endian;
347		};
348
349		sai1: sai@2b50000 {
350			compatible = "fsl,vf610-sai";
351			reg = <0x2b50000 0x10000>;
352			interrupts = <GIC_SPI 132 IRQ_TYPE_LEVEL_HIGH>;
353			clocks = <&platform_clk 1>;
354			clock-names = "sai";
355			dma-names = "tx", "rx";
356			dmas = <&edma0 1 47>,
357			       <&edma0 1 46>;
358			big-endian;
359			status = "disabled";
360		};
361
362		sai2: sai@2b60000 {
363			compatible = "fsl,vf610-sai";
364			reg = <0x2b60000 0x10000>;
365			interrupts = <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>;
366			clocks = <&platform_clk 1>;
367			clock-names = "sai";
368			dma-names = "tx", "rx";
369			dmas = <&edma0 1 45>,
370			       <&edma0 1 44>;
371			big-endian;
372			status = "disabled";
373		};
374
375		edma0: edma@2c00000 {
376			#dma-cells = <2>;
377			compatible = "fsl,vf610-edma";
378			reg = <0x2c00000 0x10000>,
379			      <0x2c10000 0x10000>,
380			      <0x2c20000 0x10000>;
381			interrupts = <GIC_SPI 135 IRQ_TYPE_LEVEL_HIGH>,
382				     <GIC_SPI 135 IRQ_TYPE_LEVEL_HIGH>;
383			interrupt-names = "edma-tx", "edma-err";
384			dma-channels = <32>;
385			big-endian;
386			clock-names = "dmamux0", "dmamux1";
387			clocks = <&platform_clk 1>,
388				 <&platform_clk 1>;
389		};
390
391		enet0: ethernet@2d10000 {
392			compatible = "fsl,etsec2";
393			reg = <0x2d10000 0x1000>;
394			status = "disabled";
395		};
396
397		enet1: ethernet@2d50000 {
398			compatible = "fsl,etsec2";
399			reg = <0x2d50000 0x1000>;
400			status = "disabled";
401		};
402
403		enet2: ethernet@2d90000 {
404			compatible = "fsl,etsec2";
405			reg = <0x2d90000 0x1000>;
406			status = "disabled";
407		};
408
409		mdio0: mdio@2d24000 {
410			compatible = "fsl,etsec2-mdio";
411			reg = <0x2d24000 0x4000>;
412			#address-cells = <1>;
413			#size-cells = <0>;
414		};
415
416		mdio1: mdio@2d64000 {
417			compatible = "fsl,etsec2-mdio";
418			reg = <0x2d64000 0x4000>;
419			#address-cells = <1>;
420			#size-cells = <0>;
421		};
422
423		usb@8600000 {
424			compatible = "fsl-usb2-dr-v2.5", "fsl-usb2-dr";
425			reg = <0x8600000 0x1000>;
426			interrupts = <GIC_SPI 171 IRQ_TYPE_LEVEL_HIGH>;
427			dr_mode = "host";
428			phy_type = "ulpi";
429		};
430
431		usb3@3100000 {
432			compatible = "fsl,layerscape-dwc3";
433			reg = <0x3100000 0x10000>;
434			interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>;
435			dr_mode = "host";
436		};
437
438		pcie@3400000 {
439			compatible = "fsl,ls-pcie", "snps,dw-pcie";
440			reg = <0x03400000 0x20000   /* dbi registers */
441			       0x01570000 0x10000   /* pf controls registers */
442			       0x24000000 0x20000>; /* configuration space */
443			reg-names = "dbi", "ctrl", "config";
444			big-endian;
445			#address-cells = <3>;
446			#size-cells = <2>;
447			device_type = "pci";
448			bus-range = <0x0 0xff>;
449			ranges = <0x81000000 0x0 0x00000000 0x24020000 0x0 0x00010000   /* downstream I/O */
450				  0x82000000 0x0 0x28000000 0x28000000 0x0 0x08000000>; /* non-prefetchable memory */
451		};
452
453		pcie@3500000 {
454			compatible = "fsl,ls-pcie", "snps,dw-pcie";
455			reg = <0x03500000 0x10000    /* dbi registers */
456			       0x01570000 0x10000    /* pf controls registers */
457			       0x34000000 0x20000>;  /* configuration space */
458			reg-names = "dbi", "ctrl", "config";
459			big-endian;
460			#address-cells = <3>;
461			#size-cells = <2>;
462			device_type = "pci";
463			num-lanes = <2>;
464			bus-range = <0x0 0xff>;
465			ranges = <0x81000000 0x0 0x00000000 0x34020000 0x0 0x00010000   /* downstream I/O */
466				  0x82000000 0x0 0x38000000 0x38000000 0x0 0x08000000>; /* non-prefetchable memory */
467		};
468
469		sata: sata@3200000 {
470			compatible = "fsl,ls1021a-ahci";
471			reg = <0x3200000 0x10000 0x20220520 0x4>;
472			reg-names = "sata-base", "ecc-addr";
473			interrupts = <0 101 4>;
474			status = "disabled";
475		};
476	};
477};
478