xref: /OK3568_Linux_fs/kernel/arch/arm64/boot/dts/freescale/fsl-ls1046a.dtsi (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2*4882a593Smuzhiyun/*
3*4882a593Smuzhiyun * Device Tree Include file for NXP Layerscape-1046A family SoC.
4*4882a593Smuzhiyun *
5*4882a593Smuzhiyun * Copyright 2016 Freescale Semiconductor, Inc.
6*4882a593Smuzhiyun * Copyright 2018, 2020 NXP
7*4882a593Smuzhiyun *
8*4882a593Smuzhiyun * Mingkai Hu <mingkai.hu@nxp.com>
9*4882a593Smuzhiyun */
10*4882a593Smuzhiyun
11*4882a593Smuzhiyun#include <dt-bindings/interrupt-controller/arm-gic.h>
12*4882a593Smuzhiyun#include <dt-bindings/thermal/thermal.h>
13*4882a593Smuzhiyun
14*4882a593Smuzhiyun/ {
15*4882a593Smuzhiyun	compatible = "fsl,ls1046a";
16*4882a593Smuzhiyun	interrupt-parent = <&gic>;
17*4882a593Smuzhiyun	#address-cells = <2>;
18*4882a593Smuzhiyun	#size-cells = <2>;
19*4882a593Smuzhiyun
20*4882a593Smuzhiyun	aliases {
21*4882a593Smuzhiyun		crypto = &crypto;
22*4882a593Smuzhiyun		fman0 = &fman0;
23*4882a593Smuzhiyun		ethernet0 = &enet0;
24*4882a593Smuzhiyun		ethernet1 = &enet1;
25*4882a593Smuzhiyun		ethernet2 = &enet2;
26*4882a593Smuzhiyun		ethernet3 = &enet3;
27*4882a593Smuzhiyun		ethernet4 = &enet4;
28*4882a593Smuzhiyun		ethernet5 = &enet5;
29*4882a593Smuzhiyun		ethernet6 = &enet6;
30*4882a593Smuzhiyun		ethernet7 = &enet7;
31*4882a593Smuzhiyun		rtc1 = &ftm_alarm0;
32*4882a593Smuzhiyun	};
33*4882a593Smuzhiyun
34*4882a593Smuzhiyun	cpus {
35*4882a593Smuzhiyun		#address-cells = <1>;
36*4882a593Smuzhiyun		#size-cells = <0>;
37*4882a593Smuzhiyun
38*4882a593Smuzhiyun		cpu0: cpu@0 {
39*4882a593Smuzhiyun			device_type = "cpu";
40*4882a593Smuzhiyun			compatible = "arm,cortex-a72";
41*4882a593Smuzhiyun			reg = <0x0>;
42*4882a593Smuzhiyun			clocks = <&clockgen 1 0>;
43*4882a593Smuzhiyun			next-level-cache = <&l2>;
44*4882a593Smuzhiyun			cpu-idle-states = <&CPU_PH20>;
45*4882a593Smuzhiyun			#cooling-cells = <2>;
46*4882a593Smuzhiyun		};
47*4882a593Smuzhiyun
48*4882a593Smuzhiyun		cpu1: cpu@1 {
49*4882a593Smuzhiyun			device_type = "cpu";
50*4882a593Smuzhiyun			compatible = "arm,cortex-a72";
51*4882a593Smuzhiyun			reg = <0x1>;
52*4882a593Smuzhiyun			clocks = <&clockgen 1 0>;
53*4882a593Smuzhiyun			next-level-cache = <&l2>;
54*4882a593Smuzhiyun			cpu-idle-states = <&CPU_PH20>;
55*4882a593Smuzhiyun			#cooling-cells = <2>;
56*4882a593Smuzhiyun		};
57*4882a593Smuzhiyun
58*4882a593Smuzhiyun		cpu2: cpu@2 {
59*4882a593Smuzhiyun			device_type = "cpu";
60*4882a593Smuzhiyun			compatible = "arm,cortex-a72";
61*4882a593Smuzhiyun			reg = <0x2>;
62*4882a593Smuzhiyun			clocks = <&clockgen 1 0>;
63*4882a593Smuzhiyun			next-level-cache = <&l2>;
64*4882a593Smuzhiyun			cpu-idle-states = <&CPU_PH20>;
65*4882a593Smuzhiyun			#cooling-cells = <2>;
66*4882a593Smuzhiyun		};
67*4882a593Smuzhiyun
68*4882a593Smuzhiyun		cpu3: cpu@3 {
69*4882a593Smuzhiyun			device_type = "cpu";
70*4882a593Smuzhiyun			compatible = "arm,cortex-a72";
71*4882a593Smuzhiyun			reg = <0x3>;
72*4882a593Smuzhiyun			clocks = <&clockgen 1 0>;
73*4882a593Smuzhiyun			next-level-cache = <&l2>;
74*4882a593Smuzhiyun			cpu-idle-states = <&CPU_PH20>;
75*4882a593Smuzhiyun			#cooling-cells = <2>;
76*4882a593Smuzhiyun		};
77*4882a593Smuzhiyun
78*4882a593Smuzhiyun		l2: l2-cache {
79*4882a593Smuzhiyun			compatible = "cache";
80*4882a593Smuzhiyun		};
81*4882a593Smuzhiyun	};
82*4882a593Smuzhiyun
83*4882a593Smuzhiyun	idle-states {
84*4882a593Smuzhiyun		/*
85*4882a593Smuzhiyun		 * PSCI node is not added default, U-boot will add missing
86*4882a593Smuzhiyun		 * parts if it determines to use PSCI.
87*4882a593Smuzhiyun		 */
88*4882a593Smuzhiyun		entry-method = "psci";
89*4882a593Smuzhiyun
90*4882a593Smuzhiyun		CPU_PH20: cpu-ph20 {
91*4882a593Smuzhiyun			compatible = "arm,idle-state";
92*4882a593Smuzhiyun			idle-state-name = "PH20";
93*4882a593Smuzhiyun			arm,psci-suspend-param = <0x0>;
94*4882a593Smuzhiyun			entry-latency-us = <1000>;
95*4882a593Smuzhiyun			exit-latency-us = <1000>;
96*4882a593Smuzhiyun			min-residency-us = <3000>;
97*4882a593Smuzhiyun		};
98*4882a593Smuzhiyun	};
99*4882a593Smuzhiyun
100*4882a593Smuzhiyun	memory@80000000 {
101*4882a593Smuzhiyun		device_type = "memory";
102*4882a593Smuzhiyun		/* Real size will be filled by bootloader */
103*4882a593Smuzhiyun		reg = <0x0 0x80000000 0x0 0x0>;
104*4882a593Smuzhiyun	};
105*4882a593Smuzhiyun
106*4882a593Smuzhiyun	sysclk: sysclk {
107*4882a593Smuzhiyun		compatible = "fixed-clock";
108*4882a593Smuzhiyun		#clock-cells = <0>;
109*4882a593Smuzhiyun		clock-frequency = <100000000>;
110*4882a593Smuzhiyun		clock-output-names = "sysclk";
111*4882a593Smuzhiyun	};
112*4882a593Smuzhiyun
113*4882a593Smuzhiyun	reboot {
114*4882a593Smuzhiyun		compatible ="syscon-reboot";
115*4882a593Smuzhiyun		regmap = <&dcfg>;
116*4882a593Smuzhiyun		offset = <0xb0>;
117*4882a593Smuzhiyun		mask = <0x02>;
118*4882a593Smuzhiyun	};
119*4882a593Smuzhiyun
120*4882a593Smuzhiyun	thermal-zones {
121*4882a593Smuzhiyun		ddr-controller {
122*4882a593Smuzhiyun			polling-delay-passive = <1000>;
123*4882a593Smuzhiyun			polling-delay = <5000>;
124*4882a593Smuzhiyun			thermal-sensors = <&tmu 0>;
125*4882a593Smuzhiyun
126*4882a593Smuzhiyun			trips {
127*4882a593Smuzhiyun				ddr-ctrler-alert {
128*4882a593Smuzhiyun					temperature = <85000>;
129*4882a593Smuzhiyun					hysteresis = <2000>;
130*4882a593Smuzhiyun					type = "passive";
131*4882a593Smuzhiyun				};
132*4882a593Smuzhiyun
133*4882a593Smuzhiyun				ddr-ctrler-crit {
134*4882a593Smuzhiyun					temperature = <95000>;
135*4882a593Smuzhiyun					hysteresis = <2000>;
136*4882a593Smuzhiyun					type = "critical";
137*4882a593Smuzhiyun				};
138*4882a593Smuzhiyun			};
139*4882a593Smuzhiyun		};
140*4882a593Smuzhiyun
141*4882a593Smuzhiyun		serdes {
142*4882a593Smuzhiyun			polling-delay-passive = <1000>;
143*4882a593Smuzhiyun			polling-delay = <5000>;
144*4882a593Smuzhiyun			thermal-sensors = <&tmu 1>;
145*4882a593Smuzhiyun
146*4882a593Smuzhiyun			trips {
147*4882a593Smuzhiyun				serdes-alert {
148*4882a593Smuzhiyun					temperature = <85000>;
149*4882a593Smuzhiyun					hysteresis = <2000>;
150*4882a593Smuzhiyun					type = "passive";
151*4882a593Smuzhiyun				};
152*4882a593Smuzhiyun
153*4882a593Smuzhiyun				serdes-crit {
154*4882a593Smuzhiyun					temperature = <95000>;
155*4882a593Smuzhiyun					hysteresis = <2000>;
156*4882a593Smuzhiyun					type = "critical";
157*4882a593Smuzhiyun				};
158*4882a593Smuzhiyun			};
159*4882a593Smuzhiyun		};
160*4882a593Smuzhiyun
161*4882a593Smuzhiyun		fman {
162*4882a593Smuzhiyun			polling-delay-passive = <1000>;
163*4882a593Smuzhiyun			polling-delay = <5000>;
164*4882a593Smuzhiyun			thermal-sensors = <&tmu 2>;
165*4882a593Smuzhiyun
166*4882a593Smuzhiyun			trips {
167*4882a593Smuzhiyun				fman-alert {
168*4882a593Smuzhiyun					temperature = <85000>;
169*4882a593Smuzhiyun					hysteresis = <2000>;
170*4882a593Smuzhiyun					type = "passive";
171*4882a593Smuzhiyun				};
172*4882a593Smuzhiyun
173*4882a593Smuzhiyun				fman-crit {
174*4882a593Smuzhiyun					temperature = <95000>;
175*4882a593Smuzhiyun					hysteresis = <2000>;
176*4882a593Smuzhiyun					type = "critical";
177*4882a593Smuzhiyun				};
178*4882a593Smuzhiyun			};
179*4882a593Smuzhiyun		};
180*4882a593Smuzhiyun
181*4882a593Smuzhiyun		core-cluster {
182*4882a593Smuzhiyun			polling-delay-passive = <1000>;
183*4882a593Smuzhiyun			polling-delay = <5000>;
184*4882a593Smuzhiyun			thermal-sensors = <&tmu 3>;
185*4882a593Smuzhiyun
186*4882a593Smuzhiyun			trips {
187*4882a593Smuzhiyun				core_cluster_alert: core-cluster-alert {
188*4882a593Smuzhiyun					temperature = <85000>;
189*4882a593Smuzhiyun					hysteresis = <2000>;
190*4882a593Smuzhiyun					type = "passive";
191*4882a593Smuzhiyun				};
192*4882a593Smuzhiyun
193*4882a593Smuzhiyun				core_cluster_crit: core-cluster-crit {
194*4882a593Smuzhiyun					temperature = <95000>;
195*4882a593Smuzhiyun					hysteresis = <2000>;
196*4882a593Smuzhiyun					type = "critical";
197*4882a593Smuzhiyun				};
198*4882a593Smuzhiyun			};
199*4882a593Smuzhiyun
200*4882a593Smuzhiyun			cooling-maps {
201*4882a593Smuzhiyun				map0 {
202*4882a593Smuzhiyun					trip = <&core_cluster_alert>;
203*4882a593Smuzhiyun					cooling-device =
204*4882a593Smuzhiyun						<&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
205*4882a593Smuzhiyun						<&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
206*4882a593Smuzhiyun						<&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
207*4882a593Smuzhiyun						<&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
208*4882a593Smuzhiyun				};
209*4882a593Smuzhiyun			};
210*4882a593Smuzhiyun		};
211*4882a593Smuzhiyun
212*4882a593Smuzhiyun		sec {
213*4882a593Smuzhiyun			polling-delay-passive = <1000>;
214*4882a593Smuzhiyun			polling-delay = <5000>;
215*4882a593Smuzhiyun			thermal-sensors = <&tmu 4>;
216*4882a593Smuzhiyun
217*4882a593Smuzhiyun			trips {
218*4882a593Smuzhiyun				sec-alert {
219*4882a593Smuzhiyun					temperature = <85000>;
220*4882a593Smuzhiyun					hysteresis = <2000>;
221*4882a593Smuzhiyun					type = "passive";
222*4882a593Smuzhiyun				};
223*4882a593Smuzhiyun
224*4882a593Smuzhiyun				sec-crit {
225*4882a593Smuzhiyun					temperature = <95000>;
226*4882a593Smuzhiyun					hysteresis = <2000>;
227*4882a593Smuzhiyun					type = "critical";
228*4882a593Smuzhiyun				};
229*4882a593Smuzhiyun			};
230*4882a593Smuzhiyun		};
231*4882a593Smuzhiyun	};
232*4882a593Smuzhiyun
233*4882a593Smuzhiyun	timer {
234*4882a593Smuzhiyun		compatible = "arm,armv8-timer";
235*4882a593Smuzhiyun		interrupts = <GIC_PPI 13 (GIC_CPU_MASK_RAW(0xf) |
236*4882a593Smuzhiyun					  IRQ_TYPE_LEVEL_LOW)>,
237*4882a593Smuzhiyun			     <GIC_PPI 14 (GIC_CPU_MASK_RAW(0xf) |
238*4882a593Smuzhiyun					  IRQ_TYPE_LEVEL_LOW)>,
239*4882a593Smuzhiyun			     <GIC_PPI 11 (GIC_CPU_MASK_RAW(0xf) |
240*4882a593Smuzhiyun					  IRQ_TYPE_LEVEL_LOW)>,
241*4882a593Smuzhiyun			     <GIC_PPI 10 (GIC_CPU_MASK_RAW(0xf) |
242*4882a593Smuzhiyun					  IRQ_TYPE_LEVEL_LOW)>;
243*4882a593Smuzhiyun	};
244*4882a593Smuzhiyun
245*4882a593Smuzhiyun	pmu {
246*4882a593Smuzhiyun		compatible = "arm,cortex-a72-pmu";
247*4882a593Smuzhiyun		interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>,
248*4882a593Smuzhiyun			     <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>,
249*4882a593Smuzhiyun			     <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>,
250*4882a593Smuzhiyun			     <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
251*4882a593Smuzhiyun		interrupt-affinity = <&cpu0>,
252*4882a593Smuzhiyun				     <&cpu1>,
253*4882a593Smuzhiyun				     <&cpu2>,
254*4882a593Smuzhiyun				     <&cpu3>;
255*4882a593Smuzhiyun	};
256*4882a593Smuzhiyun
257*4882a593Smuzhiyun	gic: interrupt-controller@1400000 {
258*4882a593Smuzhiyun		compatible = "arm,gic-400";
259*4882a593Smuzhiyun		#interrupt-cells = <3>;
260*4882a593Smuzhiyun		interrupt-controller;
261*4882a593Smuzhiyun		reg = <0x0 0x1410000 0 0x10000>, /* GICD */
262*4882a593Smuzhiyun		      <0x0 0x1420000 0 0x20000>, /* GICC */
263*4882a593Smuzhiyun		      <0x0 0x1440000 0 0x20000>, /* GICH */
264*4882a593Smuzhiyun		      <0x0 0x1460000 0 0x20000>; /* GICV */
265*4882a593Smuzhiyun		interrupts = <GIC_PPI 9 (GIC_CPU_MASK_RAW(0xf) |
266*4882a593Smuzhiyun					 IRQ_TYPE_LEVEL_LOW)>;
267*4882a593Smuzhiyun	};
268*4882a593Smuzhiyun
269*4882a593Smuzhiyun	soc: soc {
270*4882a593Smuzhiyun		compatible = "simple-bus";
271*4882a593Smuzhiyun		#address-cells = <2>;
272*4882a593Smuzhiyun		#size-cells = <2>;
273*4882a593Smuzhiyun		ranges;
274*4882a593Smuzhiyun
275*4882a593Smuzhiyun		ddr: memory-controller@1080000 {
276*4882a593Smuzhiyun			compatible = "fsl,qoriq-memory-controller";
277*4882a593Smuzhiyun			reg = <0x0 0x1080000 0x0 0x1000>;
278*4882a593Smuzhiyun			interrupts = <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>;
279*4882a593Smuzhiyun			big-endian;
280*4882a593Smuzhiyun		};
281*4882a593Smuzhiyun
282*4882a593Smuzhiyun		ifc: ifc@1530000 {
283*4882a593Smuzhiyun			compatible = "fsl,ifc", "simple-bus";
284*4882a593Smuzhiyun			reg = <0x0 0x1530000 0x0 0x10000>;
285*4882a593Smuzhiyun			interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>;
286*4882a593Smuzhiyun			status = "disabled";
287*4882a593Smuzhiyun		};
288*4882a593Smuzhiyun
289*4882a593Smuzhiyun		qspi: spi@1550000 {
290*4882a593Smuzhiyun			compatible = "fsl,ls1021a-qspi";
291*4882a593Smuzhiyun			#address-cells = <1>;
292*4882a593Smuzhiyun			#size-cells = <0>;
293*4882a593Smuzhiyun			reg = <0x0 0x1550000 0x0 0x10000>,
294*4882a593Smuzhiyun				<0x0 0x40000000 0x0 0x10000000>;
295*4882a593Smuzhiyun			reg-names = "QuadSPI", "QuadSPI-memory";
296*4882a593Smuzhiyun			interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>;
297*4882a593Smuzhiyun			clock-names = "qspi_en", "qspi";
298*4882a593Smuzhiyun			clocks = <&clockgen 4 1>, <&clockgen 4 1>;
299*4882a593Smuzhiyun			status = "disabled";
300*4882a593Smuzhiyun		};
301*4882a593Smuzhiyun
302*4882a593Smuzhiyun		esdhc: esdhc@1560000 {
303*4882a593Smuzhiyun			compatible = "fsl,ls1046a-esdhc", "fsl,esdhc";
304*4882a593Smuzhiyun			reg = <0x0 0x1560000 0x0 0x10000>;
305*4882a593Smuzhiyun			interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>;
306*4882a593Smuzhiyun			clocks = <&clockgen 2 1>;
307*4882a593Smuzhiyun			voltage-ranges = <1800 1800 3300 3300>;
308*4882a593Smuzhiyun			sdhci,auto-cmd12;
309*4882a593Smuzhiyun			big-endian;
310*4882a593Smuzhiyun			bus-width = <4>;
311*4882a593Smuzhiyun		};
312*4882a593Smuzhiyun
313*4882a593Smuzhiyun		scfg: scfg@1570000 {
314*4882a593Smuzhiyun			compatible = "fsl,ls1046a-scfg", "syscon";
315*4882a593Smuzhiyun			reg = <0x0 0x1570000 0x0 0x10000>;
316*4882a593Smuzhiyun			big-endian;
317*4882a593Smuzhiyun		};
318*4882a593Smuzhiyun
319*4882a593Smuzhiyun		crypto: crypto@1700000 {
320*4882a593Smuzhiyun			compatible = "fsl,sec-v5.4", "fsl,sec-v5.0",
321*4882a593Smuzhiyun				     "fsl,sec-v4.0";
322*4882a593Smuzhiyun			fsl,sec-era = <8>;
323*4882a593Smuzhiyun			#address-cells = <1>;
324*4882a593Smuzhiyun			#size-cells = <1>;
325*4882a593Smuzhiyun			ranges = <0x0 0x00 0x1700000 0x100000>;
326*4882a593Smuzhiyun			reg = <0x00 0x1700000 0x0 0x100000>;
327*4882a593Smuzhiyun			interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
328*4882a593Smuzhiyun			dma-coherent;
329*4882a593Smuzhiyun
330*4882a593Smuzhiyun			sec_jr0: jr@10000 {
331*4882a593Smuzhiyun				compatible = "fsl,sec-v5.4-job-ring",
332*4882a593Smuzhiyun					     "fsl,sec-v5.0-job-ring",
333*4882a593Smuzhiyun					     "fsl,sec-v4.0-job-ring";
334*4882a593Smuzhiyun				reg	   = <0x10000 0x10000>;
335*4882a593Smuzhiyun				interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
336*4882a593Smuzhiyun			};
337*4882a593Smuzhiyun
338*4882a593Smuzhiyun			sec_jr1: jr@20000 {
339*4882a593Smuzhiyun				compatible = "fsl,sec-v5.4-job-ring",
340*4882a593Smuzhiyun					     "fsl,sec-v5.0-job-ring",
341*4882a593Smuzhiyun					     "fsl,sec-v4.0-job-ring";
342*4882a593Smuzhiyun				reg	   = <0x20000 0x10000>;
343*4882a593Smuzhiyun				interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
344*4882a593Smuzhiyun			};
345*4882a593Smuzhiyun
346*4882a593Smuzhiyun			sec_jr2: jr@30000 {
347*4882a593Smuzhiyun				compatible = "fsl,sec-v5.4-job-ring",
348*4882a593Smuzhiyun					     "fsl,sec-v5.0-job-ring",
349*4882a593Smuzhiyun					     "fsl,sec-v4.0-job-ring";
350*4882a593Smuzhiyun				reg	   = <0x30000 0x10000>;
351*4882a593Smuzhiyun				interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
352*4882a593Smuzhiyun			};
353*4882a593Smuzhiyun
354*4882a593Smuzhiyun			sec_jr3: jr@40000 {
355*4882a593Smuzhiyun				compatible = "fsl,sec-v5.4-job-ring",
356*4882a593Smuzhiyun					     "fsl,sec-v5.0-job-ring",
357*4882a593Smuzhiyun					     "fsl,sec-v4.0-job-ring";
358*4882a593Smuzhiyun				reg	   = <0x40000 0x10000>;
359*4882a593Smuzhiyun				interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
360*4882a593Smuzhiyun			};
361*4882a593Smuzhiyun		};
362*4882a593Smuzhiyun
363*4882a593Smuzhiyun		qman: qman@1880000 {
364*4882a593Smuzhiyun			compatible = "fsl,qman";
365*4882a593Smuzhiyun			reg = <0x0 0x1880000 0x0 0x10000>;
366*4882a593Smuzhiyun			interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
367*4882a593Smuzhiyun			memory-region = <&qman_fqd &qman_pfdr>;
368*4882a593Smuzhiyun
369*4882a593Smuzhiyun		};
370*4882a593Smuzhiyun
371*4882a593Smuzhiyun		bman: bman@1890000 {
372*4882a593Smuzhiyun			compatible = "fsl,bman";
373*4882a593Smuzhiyun			reg = <0x0 0x1890000 0x0 0x10000>;
374*4882a593Smuzhiyun			interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
375*4882a593Smuzhiyun			memory-region = <&bman_fbpr>;
376*4882a593Smuzhiyun
377*4882a593Smuzhiyun		};
378*4882a593Smuzhiyun
379*4882a593Smuzhiyun		qportals: qman-portals@500000000 {
380*4882a593Smuzhiyun			ranges = <0x0 0x5 0x00000000 0x8000000>;
381*4882a593Smuzhiyun		};
382*4882a593Smuzhiyun
383*4882a593Smuzhiyun		bportals: bman-portals@508000000 {
384*4882a593Smuzhiyun			ranges = <0x0 0x5 0x08000000 0x8000000>;
385*4882a593Smuzhiyun		};
386*4882a593Smuzhiyun
387*4882a593Smuzhiyun		dcfg: dcfg@1ee0000 {
388*4882a593Smuzhiyun			compatible = "fsl,ls1046a-dcfg", "syscon";
389*4882a593Smuzhiyun			reg = <0x0 0x1ee0000 0x0 0x1000>;
390*4882a593Smuzhiyun			big-endian;
391*4882a593Smuzhiyun		};
392*4882a593Smuzhiyun
393*4882a593Smuzhiyun		clockgen: clocking@1ee1000 {
394*4882a593Smuzhiyun			compatible = "fsl,ls1046a-clockgen";
395*4882a593Smuzhiyun			reg = <0x0 0x1ee1000 0x0 0x1000>;
396*4882a593Smuzhiyun			#clock-cells = <2>;
397*4882a593Smuzhiyun			clocks = <&sysclk>;
398*4882a593Smuzhiyun		};
399*4882a593Smuzhiyun
400*4882a593Smuzhiyun		tmu: tmu@1f00000 {
401*4882a593Smuzhiyun			compatible = "fsl,qoriq-tmu";
402*4882a593Smuzhiyun			reg = <0x0 0x1f00000 0x0 0x10000>;
403*4882a593Smuzhiyun			interrupts = <0 33 0x4>;
404*4882a593Smuzhiyun			fsl,tmu-range = <0xb0000 0x9002a 0x6004c 0x30062>;
405*4882a593Smuzhiyun			fsl,tmu-calibration =
406*4882a593Smuzhiyun				/* Calibration data group 1 */
407*4882a593Smuzhiyun				<0x00000000 0x00000026
408*4882a593Smuzhiyun				0x00000001 0x0000002d
409*4882a593Smuzhiyun				0x00000002 0x00000032
410*4882a593Smuzhiyun				0x00000003 0x00000039
411*4882a593Smuzhiyun				0x00000004 0x0000003f
412*4882a593Smuzhiyun				0x00000005 0x00000046
413*4882a593Smuzhiyun				0x00000006 0x0000004d
414*4882a593Smuzhiyun				0x00000007 0x00000054
415*4882a593Smuzhiyun				0x00000008 0x0000005a
416*4882a593Smuzhiyun				0x00000009 0x00000061
417*4882a593Smuzhiyun				0x0000000a 0x0000006a
418*4882a593Smuzhiyun				0x0000000b 0x00000071
419*4882a593Smuzhiyun				/* Calibration data group 2 */
420*4882a593Smuzhiyun				0x00010000 0x00000025
421*4882a593Smuzhiyun				0x00010001 0x0000002c
422*4882a593Smuzhiyun				0x00010002 0x00000035
423*4882a593Smuzhiyun				0x00010003 0x0000003d
424*4882a593Smuzhiyun				0x00010004 0x00000045
425*4882a593Smuzhiyun				0x00010005 0x0000004e
426*4882a593Smuzhiyun				0x00010006 0x00000057
427*4882a593Smuzhiyun				0x00010007 0x00000061
428*4882a593Smuzhiyun				0x00010008 0x0000006b
429*4882a593Smuzhiyun				0x00010009 0x00000076
430*4882a593Smuzhiyun				/* Calibration data group 3 */
431*4882a593Smuzhiyun				0x00020000 0x00000029
432*4882a593Smuzhiyun				0x00020001 0x00000033
433*4882a593Smuzhiyun				0x00020002 0x0000003d
434*4882a593Smuzhiyun				0x00020003 0x00000049
435*4882a593Smuzhiyun				0x00020004 0x00000056
436*4882a593Smuzhiyun				0x00020005 0x00000061
437*4882a593Smuzhiyun				0x00020006 0x0000006d
438*4882a593Smuzhiyun				/* Calibration data group 4 */
439*4882a593Smuzhiyun				0x00030000 0x00000021
440*4882a593Smuzhiyun				0x00030001 0x0000002a
441*4882a593Smuzhiyun				0x00030002 0x0000003c
442*4882a593Smuzhiyun				0x00030003 0x0000004e>;
443*4882a593Smuzhiyun			big-endian;
444*4882a593Smuzhiyun			#thermal-sensor-cells = <1>;
445*4882a593Smuzhiyun		};
446*4882a593Smuzhiyun
447*4882a593Smuzhiyun		dspi: spi@2100000 {
448*4882a593Smuzhiyun			compatible = "fsl,ls1021a-v1.0-dspi";
449*4882a593Smuzhiyun			#address-cells = <1>;
450*4882a593Smuzhiyun			#size-cells = <0>;
451*4882a593Smuzhiyun			reg = <0x0 0x2100000 0x0 0x10000>;
452*4882a593Smuzhiyun			interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>;
453*4882a593Smuzhiyun			clock-names = "dspi";
454*4882a593Smuzhiyun			clocks = <&clockgen 4 1>;
455*4882a593Smuzhiyun			spi-num-chipselects = <5>;
456*4882a593Smuzhiyun			big-endian;
457*4882a593Smuzhiyun			status = "disabled";
458*4882a593Smuzhiyun		};
459*4882a593Smuzhiyun
460*4882a593Smuzhiyun		i2c0: i2c@2180000 {
461*4882a593Smuzhiyun			compatible = "fsl,vf610-i2c";
462*4882a593Smuzhiyun			#address-cells = <1>;
463*4882a593Smuzhiyun			#size-cells = <0>;
464*4882a593Smuzhiyun			reg = <0x0 0x2180000 0x0 0x10000>;
465*4882a593Smuzhiyun			interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>;
466*4882a593Smuzhiyun			clocks = <&clockgen 4 1>;
467*4882a593Smuzhiyun			dmas = <&edma0 1 39>,
468*4882a593Smuzhiyun			       <&edma0 1 38>;
469*4882a593Smuzhiyun			dma-names = "tx", "rx";
470*4882a593Smuzhiyun			status = "disabled";
471*4882a593Smuzhiyun		};
472*4882a593Smuzhiyun
473*4882a593Smuzhiyun		i2c1: i2c@2190000 {
474*4882a593Smuzhiyun			compatible = "fsl,vf610-i2c";
475*4882a593Smuzhiyun			#address-cells = <1>;
476*4882a593Smuzhiyun			#size-cells = <0>;
477*4882a593Smuzhiyun			reg = <0x0 0x2190000 0x0 0x10000>;
478*4882a593Smuzhiyun			interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>;
479*4882a593Smuzhiyun			clocks = <&clockgen 4 1>;
480*4882a593Smuzhiyun			status = "disabled";
481*4882a593Smuzhiyun		};
482*4882a593Smuzhiyun
483*4882a593Smuzhiyun		i2c2: i2c@21a0000 {
484*4882a593Smuzhiyun			compatible = "fsl,vf610-i2c";
485*4882a593Smuzhiyun			#address-cells = <1>;
486*4882a593Smuzhiyun			#size-cells = <0>;
487*4882a593Smuzhiyun			reg = <0x0 0x21a0000 0x0 0x10000>;
488*4882a593Smuzhiyun			interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>;
489*4882a593Smuzhiyun			clocks = <&clockgen 4 1>;
490*4882a593Smuzhiyun			status = "disabled";
491*4882a593Smuzhiyun		};
492*4882a593Smuzhiyun
493*4882a593Smuzhiyun		i2c3: i2c@21b0000 {
494*4882a593Smuzhiyun			compatible = "fsl,vf610-i2c";
495*4882a593Smuzhiyun			#address-cells = <1>;
496*4882a593Smuzhiyun			#size-cells = <0>;
497*4882a593Smuzhiyun			reg = <0x0 0x21b0000 0x0 0x10000>;
498*4882a593Smuzhiyun			interrupts = <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>;
499*4882a593Smuzhiyun			clocks = <&clockgen 4 1>;
500*4882a593Smuzhiyun			status = "disabled";
501*4882a593Smuzhiyun		};
502*4882a593Smuzhiyun
503*4882a593Smuzhiyun		duart0: serial@21c0500 {
504*4882a593Smuzhiyun			compatible = "fsl,ns16550", "ns16550a";
505*4882a593Smuzhiyun			reg = <0x00 0x21c0500 0x0 0x100>;
506*4882a593Smuzhiyun			interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>;
507*4882a593Smuzhiyun			clocks = <&clockgen 4 1>;
508*4882a593Smuzhiyun			status = "disabled";
509*4882a593Smuzhiyun		};
510*4882a593Smuzhiyun
511*4882a593Smuzhiyun		duart1: serial@21c0600 {
512*4882a593Smuzhiyun			compatible = "fsl,ns16550", "ns16550a";
513*4882a593Smuzhiyun			reg = <0x00 0x21c0600 0x0 0x100>;
514*4882a593Smuzhiyun			interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>;
515*4882a593Smuzhiyun			clocks = <&clockgen 4 1>;
516*4882a593Smuzhiyun			status = "disabled";
517*4882a593Smuzhiyun		};
518*4882a593Smuzhiyun
519*4882a593Smuzhiyun		duart2: serial@21d0500 {
520*4882a593Smuzhiyun			compatible = "fsl,ns16550", "ns16550a";
521*4882a593Smuzhiyun			reg = <0x0 0x21d0500 0x0 0x100>;
522*4882a593Smuzhiyun			interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>;
523*4882a593Smuzhiyun			clocks = <&clockgen 4 1>;
524*4882a593Smuzhiyun			status = "disabled";
525*4882a593Smuzhiyun		};
526*4882a593Smuzhiyun
527*4882a593Smuzhiyun		duart3: serial@21d0600 {
528*4882a593Smuzhiyun			compatible = "fsl,ns16550", "ns16550a";
529*4882a593Smuzhiyun			reg = <0x0 0x21d0600 0x0 0x100>;
530*4882a593Smuzhiyun			interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>;
531*4882a593Smuzhiyun			clocks = <&clockgen 4 1>;
532*4882a593Smuzhiyun			status = "disabled";
533*4882a593Smuzhiyun		};
534*4882a593Smuzhiyun
535*4882a593Smuzhiyun		gpio0: gpio@2300000 {
536*4882a593Smuzhiyun			compatible = "fsl,qoriq-gpio";
537*4882a593Smuzhiyun			reg = <0x0 0x2300000 0x0 0x10000>;
538*4882a593Smuzhiyun			interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>;
539*4882a593Smuzhiyun			gpio-controller;
540*4882a593Smuzhiyun			#gpio-cells = <2>;
541*4882a593Smuzhiyun			interrupt-controller;
542*4882a593Smuzhiyun			#interrupt-cells = <2>;
543*4882a593Smuzhiyun		};
544*4882a593Smuzhiyun
545*4882a593Smuzhiyun		gpio1: gpio@2310000 {
546*4882a593Smuzhiyun			compatible = "fsl,qoriq-gpio";
547*4882a593Smuzhiyun			reg = <0x0 0x2310000 0x0 0x10000>;
548*4882a593Smuzhiyun			interrupts = <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>;
549*4882a593Smuzhiyun			gpio-controller;
550*4882a593Smuzhiyun			#gpio-cells = <2>;
551*4882a593Smuzhiyun			interrupt-controller;
552*4882a593Smuzhiyun			#interrupt-cells = <2>;
553*4882a593Smuzhiyun		};
554*4882a593Smuzhiyun
555*4882a593Smuzhiyun		gpio2: gpio@2320000 {
556*4882a593Smuzhiyun			compatible = "fsl,qoriq-gpio";
557*4882a593Smuzhiyun			reg = <0x0 0x2320000 0x0 0x10000>;
558*4882a593Smuzhiyun			interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>;
559*4882a593Smuzhiyun			gpio-controller;
560*4882a593Smuzhiyun			#gpio-cells = <2>;
561*4882a593Smuzhiyun			interrupt-controller;
562*4882a593Smuzhiyun			#interrupt-cells = <2>;
563*4882a593Smuzhiyun		};
564*4882a593Smuzhiyun
565*4882a593Smuzhiyun		gpio3: gpio@2330000 {
566*4882a593Smuzhiyun			compatible = "fsl,qoriq-gpio";
567*4882a593Smuzhiyun			reg = <0x0 0x2330000 0x0 0x10000>;
568*4882a593Smuzhiyun			interrupts = <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>;
569*4882a593Smuzhiyun			gpio-controller;
570*4882a593Smuzhiyun			#gpio-cells = <2>;
571*4882a593Smuzhiyun			interrupt-controller;
572*4882a593Smuzhiyun			#interrupt-cells = <2>;
573*4882a593Smuzhiyun		};
574*4882a593Smuzhiyun
575*4882a593Smuzhiyun		lpuart0: serial@2950000 {
576*4882a593Smuzhiyun			compatible = "fsl,ls1021a-lpuart";
577*4882a593Smuzhiyun			reg = <0x0 0x2950000 0x0 0x1000>;
578*4882a593Smuzhiyun			interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>;
579*4882a593Smuzhiyun			clocks = <&clockgen 4 0>;
580*4882a593Smuzhiyun			clock-names = "ipg";
581*4882a593Smuzhiyun			status = "disabled";
582*4882a593Smuzhiyun		};
583*4882a593Smuzhiyun
584*4882a593Smuzhiyun		lpuart1: serial@2960000 {
585*4882a593Smuzhiyun			compatible = "fsl,ls1021a-lpuart";
586*4882a593Smuzhiyun			reg = <0x0 0x2960000 0x0 0x1000>;
587*4882a593Smuzhiyun			interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
588*4882a593Smuzhiyun			clocks = <&clockgen 4 1>;
589*4882a593Smuzhiyun			clock-names = "ipg";
590*4882a593Smuzhiyun			status = "disabled";
591*4882a593Smuzhiyun		};
592*4882a593Smuzhiyun
593*4882a593Smuzhiyun		lpuart2: serial@2970000 {
594*4882a593Smuzhiyun			compatible = "fsl,ls1021a-lpuart";
595*4882a593Smuzhiyun			reg = <0x0 0x2970000 0x0 0x1000>;
596*4882a593Smuzhiyun			interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
597*4882a593Smuzhiyun			clocks = <&clockgen 4 1>;
598*4882a593Smuzhiyun			clock-names = "ipg";
599*4882a593Smuzhiyun			status = "disabled";
600*4882a593Smuzhiyun		};
601*4882a593Smuzhiyun
602*4882a593Smuzhiyun		lpuart3: serial@2980000 {
603*4882a593Smuzhiyun			compatible = "fsl,ls1021a-lpuart";
604*4882a593Smuzhiyun			reg = <0x0 0x2980000 0x0 0x1000>;
605*4882a593Smuzhiyun			interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
606*4882a593Smuzhiyun			clocks = <&clockgen 4 1>;
607*4882a593Smuzhiyun			clock-names = "ipg";
608*4882a593Smuzhiyun			status = "disabled";
609*4882a593Smuzhiyun		};
610*4882a593Smuzhiyun
611*4882a593Smuzhiyun		lpuart4: serial@2990000 {
612*4882a593Smuzhiyun			compatible = "fsl,ls1021a-lpuart";
613*4882a593Smuzhiyun			reg = <0x0 0x2990000 0x0 0x1000>;
614*4882a593Smuzhiyun			interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
615*4882a593Smuzhiyun			clocks = <&clockgen 4 1>;
616*4882a593Smuzhiyun			clock-names = "ipg";
617*4882a593Smuzhiyun			status = "disabled";
618*4882a593Smuzhiyun		};
619*4882a593Smuzhiyun
620*4882a593Smuzhiyun		lpuart5: serial@29a0000 {
621*4882a593Smuzhiyun			compatible = "fsl,ls1021a-lpuart";
622*4882a593Smuzhiyun			reg = <0x0 0x29a0000 0x0 0x1000>;
623*4882a593Smuzhiyun			interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>;
624*4882a593Smuzhiyun			clocks = <&clockgen 4 1>;
625*4882a593Smuzhiyun			clock-names = "ipg";
626*4882a593Smuzhiyun			status = "disabled";
627*4882a593Smuzhiyun		};
628*4882a593Smuzhiyun
629*4882a593Smuzhiyun		wdog0: watchdog@2ad0000 {
630*4882a593Smuzhiyun			compatible = "fsl,imx21-wdt";
631*4882a593Smuzhiyun			reg = <0x0 0x2ad0000 0x0 0x10000>;
632*4882a593Smuzhiyun			interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
633*4882a593Smuzhiyun			clocks = <&clockgen 4 1>;
634*4882a593Smuzhiyun			big-endian;
635*4882a593Smuzhiyun		};
636*4882a593Smuzhiyun
637*4882a593Smuzhiyun		edma0: edma@2c00000 {
638*4882a593Smuzhiyun			#dma-cells = <2>;
639*4882a593Smuzhiyun			compatible = "fsl,vf610-edma";
640*4882a593Smuzhiyun			reg = <0x0 0x2c00000 0x0 0x10000>,
641*4882a593Smuzhiyun			      <0x0 0x2c10000 0x0 0x10000>,
642*4882a593Smuzhiyun			      <0x0 0x2c20000 0x0 0x10000>;
643*4882a593Smuzhiyun			interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>,
644*4882a593Smuzhiyun				     <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
645*4882a593Smuzhiyun			interrupt-names = "edma-tx", "edma-err";
646*4882a593Smuzhiyun			dma-channels = <32>;
647*4882a593Smuzhiyun			big-endian;
648*4882a593Smuzhiyun			clock-names = "dmamux0", "dmamux1";
649*4882a593Smuzhiyun			clocks = <&clockgen 4 1>,
650*4882a593Smuzhiyun				 <&clockgen 4 1>;
651*4882a593Smuzhiyun		};
652*4882a593Smuzhiyun
653*4882a593Smuzhiyun		usb0: usb@2f00000 {
654*4882a593Smuzhiyun			compatible = "snps,dwc3";
655*4882a593Smuzhiyun			reg = <0x0 0x2f00000 0x0 0x10000>;
656*4882a593Smuzhiyun			interrupts = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>;
657*4882a593Smuzhiyun			dr_mode = "host";
658*4882a593Smuzhiyun			snps,quirk-frame-length-adjustment = <0x20>;
659*4882a593Smuzhiyun			snps,dis_rxdet_inp3_quirk;
660*4882a593Smuzhiyun			snps,incr-burst-type-adjustment = <1>, <4>, <8>, <16>;
661*4882a593Smuzhiyun		};
662*4882a593Smuzhiyun
663*4882a593Smuzhiyun		usb1: usb@3000000 {
664*4882a593Smuzhiyun			compatible = "snps,dwc3";
665*4882a593Smuzhiyun			reg = <0x0 0x3000000 0x0 0x10000>;
666*4882a593Smuzhiyun			interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>;
667*4882a593Smuzhiyun			dr_mode = "host";
668*4882a593Smuzhiyun			snps,quirk-frame-length-adjustment = <0x20>;
669*4882a593Smuzhiyun			snps,dis_rxdet_inp3_quirk;
670*4882a593Smuzhiyun			snps,incr-burst-type-adjustment = <1>, <4>, <8>, <16>;
671*4882a593Smuzhiyun		};
672*4882a593Smuzhiyun
673*4882a593Smuzhiyun		usb2: usb@3100000 {
674*4882a593Smuzhiyun			compatible = "snps,dwc3";
675*4882a593Smuzhiyun			reg = <0x0 0x3100000 0x0 0x10000>;
676*4882a593Smuzhiyun			interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>;
677*4882a593Smuzhiyun			dr_mode = "host";
678*4882a593Smuzhiyun			snps,quirk-frame-length-adjustment = <0x20>;
679*4882a593Smuzhiyun			snps,dis_rxdet_inp3_quirk;
680*4882a593Smuzhiyun			snps,incr-burst-type-adjustment = <1>, <4>, <8>, <16>;
681*4882a593Smuzhiyun		};
682*4882a593Smuzhiyun
683*4882a593Smuzhiyun		sata: sata@3200000 {
684*4882a593Smuzhiyun			compatible = "fsl,ls1046a-ahci";
685*4882a593Smuzhiyun			reg = <0x0 0x3200000 0x0 0x10000>,
686*4882a593Smuzhiyun				<0x0 0x20140520 0x0 0x4>;
687*4882a593Smuzhiyun			reg-names = "ahci", "sata-ecc";
688*4882a593Smuzhiyun			interrupts = <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>;
689*4882a593Smuzhiyun			clocks = <&clockgen 4 1>;
690*4882a593Smuzhiyun		};
691*4882a593Smuzhiyun
692*4882a593Smuzhiyun		msi1: msi-controller@1580000 {
693*4882a593Smuzhiyun			compatible = "fsl,ls1046a-msi";
694*4882a593Smuzhiyun			msi-controller;
695*4882a593Smuzhiyun			reg = <0x0 0x1580000 0x0 0x10000>;
696*4882a593Smuzhiyun			interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>,
697*4882a593Smuzhiyun				     <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>,
698*4882a593Smuzhiyun				     <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>,
699*4882a593Smuzhiyun				     <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>;
700*4882a593Smuzhiyun		};
701*4882a593Smuzhiyun
702*4882a593Smuzhiyun		msi2: msi-controller@1590000 {
703*4882a593Smuzhiyun			compatible = "fsl,ls1046a-msi";
704*4882a593Smuzhiyun			msi-controller;
705*4882a593Smuzhiyun			reg = <0x0 0x1590000 0x0 0x10000>;
706*4882a593Smuzhiyun			interrupts = <GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>,
707*4882a593Smuzhiyun				     <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>,
708*4882a593Smuzhiyun				     <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>,
709*4882a593Smuzhiyun				     <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>;
710*4882a593Smuzhiyun		};
711*4882a593Smuzhiyun
712*4882a593Smuzhiyun		msi3: msi-controller@15a0000 {
713*4882a593Smuzhiyun			compatible = "fsl,ls1046a-msi";
714*4882a593Smuzhiyun			msi-controller;
715*4882a593Smuzhiyun			reg = <0x0 0x15a0000 0x0 0x10000>;
716*4882a593Smuzhiyun			interrupts = <GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>,
717*4882a593Smuzhiyun				     <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>,
718*4882a593Smuzhiyun				     <GIC_SPI 156 IRQ_TYPE_LEVEL_HIGH>,
719*4882a593Smuzhiyun				     <GIC_SPI 157 IRQ_TYPE_LEVEL_HIGH>;
720*4882a593Smuzhiyun		};
721*4882a593Smuzhiyun
722*4882a593Smuzhiyun		pcie1: pcie@3400000 {
723*4882a593Smuzhiyun			compatible = "fsl,ls1046a-pcie";
724*4882a593Smuzhiyun			reg = <0x00 0x03400000 0x0 0x00100000   /* controller registers */
725*4882a593Smuzhiyun			       0x40 0x00000000 0x0 0x00002000>; /* configuration space */
726*4882a593Smuzhiyun			reg-names = "regs", "config";
727*4882a593Smuzhiyun			interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>, /* controller interrupt */
728*4882a593Smuzhiyun				     <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>; /* PME interrupt */
729*4882a593Smuzhiyun			interrupt-names = "aer", "pme";
730*4882a593Smuzhiyun			#address-cells = <3>;
731*4882a593Smuzhiyun			#size-cells = <2>;
732*4882a593Smuzhiyun			device_type = "pci";
733*4882a593Smuzhiyun			dma-coherent;
734*4882a593Smuzhiyun			num-viewport = <8>;
735*4882a593Smuzhiyun			bus-range = <0x0 0xff>;
736*4882a593Smuzhiyun			ranges = <0x81000000 0x0 0x00000000 0x40 0x00010000 0x0 0x00010000   /* downstream I/O */
737*4882a593Smuzhiyun				  0x82000000 0x0 0x40000000 0x40 0x40000000 0x0 0x40000000>; /* non-prefetchable memory */
738*4882a593Smuzhiyun			msi-parent = <&msi1>, <&msi2>, <&msi3>;
739*4882a593Smuzhiyun			#interrupt-cells = <1>;
740*4882a593Smuzhiyun			interrupt-map-mask = <0 0 0 7>;
741*4882a593Smuzhiyun			interrupt-map = <0000 0 0 1 &gic GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>,
742*4882a593Smuzhiyun					<0000 0 0 2 &gic GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>,
743*4882a593Smuzhiyun					<0000 0 0 3 &gic GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>,
744*4882a593Smuzhiyun					<0000 0 0 4 &gic GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;
745*4882a593Smuzhiyun			status = "disabled";
746*4882a593Smuzhiyun		};
747*4882a593Smuzhiyun
748*4882a593Smuzhiyun		pcie_ep1: pcie_ep@3400000 {
749*4882a593Smuzhiyun			compatible = "fsl,ls1046a-pcie-ep","fsl,ls-pcie-ep";
750*4882a593Smuzhiyun			reg = <0x00 0x03400000 0x0 0x00100000
751*4882a593Smuzhiyun				0x40 0x00000000 0x8 0x00000000>;
752*4882a593Smuzhiyun			reg-names = "regs", "addr_space";
753*4882a593Smuzhiyun			num-ib-windows = <6>;
754*4882a593Smuzhiyun			num-ob-windows = <8>;
755*4882a593Smuzhiyun			status = "disabled";
756*4882a593Smuzhiyun		};
757*4882a593Smuzhiyun
758*4882a593Smuzhiyun		pcie2: pcie@3500000 {
759*4882a593Smuzhiyun			compatible = "fsl,ls1046a-pcie";
760*4882a593Smuzhiyun			reg = <0x00 0x03500000 0x0 0x00100000   /* controller registers */
761*4882a593Smuzhiyun			       0x48 0x00000000 0x0 0x00002000>; /* configuration space */
762*4882a593Smuzhiyun			reg-names = "regs", "config";
763*4882a593Smuzhiyun			interrupts = <GIC_SPI 128 IRQ_TYPE_LEVEL_HIGH>, /* controller interrupt */
764*4882a593Smuzhiyun				     <GIC_SPI 127 IRQ_TYPE_LEVEL_HIGH>; /* PME interrupt */
765*4882a593Smuzhiyun			interrupt-names = "aer", "pme";
766*4882a593Smuzhiyun			#address-cells = <3>;
767*4882a593Smuzhiyun			#size-cells = <2>;
768*4882a593Smuzhiyun			device_type = "pci";
769*4882a593Smuzhiyun			dma-coherent;
770*4882a593Smuzhiyun			num-viewport = <8>;
771*4882a593Smuzhiyun			bus-range = <0x0 0xff>;
772*4882a593Smuzhiyun			ranges = <0x81000000 0x0 0x00000000 0x48 0x00010000 0x0 0x00010000   /* downstream I/O */
773*4882a593Smuzhiyun				  0x82000000 0x0 0x40000000 0x48 0x40000000 0x0 0x40000000>; /* non-prefetchable memory */
774*4882a593Smuzhiyun			msi-parent = <&msi2>, <&msi3>, <&msi1>;
775*4882a593Smuzhiyun			#interrupt-cells = <1>;
776*4882a593Smuzhiyun			interrupt-map-mask = <0 0 0 7>;
777*4882a593Smuzhiyun			interrupt-map = <0000 0 0 1 &gic GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>,
778*4882a593Smuzhiyun					<0000 0 0 2 &gic GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>,
779*4882a593Smuzhiyun					<0000 0 0 3 &gic GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>,
780*4882a593Smuzhiyun					<0000 0 0 4 &gic GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>;
781*4882a593Smuzhiyun			status = "disabled";
782*4882a593Smuzhiyun		};
783*4882a593Smuzhiyun
784*4882a593Smuzhiyun		pcie_ep2: pcie_ep@3500000 {
785*4882a593Smuzhiyun			compatible = "fsl,ls1046a-pcie-ep","fsl,ls-pcie-ep";
786*4882a593Smuzhiyun			reg = <0x00 0x03500000 0x0 0x00100000
787*4882a593Smuzhiyun				0x48 0x00000000 0x8 0x00000000>;
788*4882a593Smuzhiyun			reg-names = "regs", "addr_space";
789*4882a593Smuzhiyun			num-ib-windows = <6>;
790*4882a593Smuzhiyun			num-ob-windows = <8>;
791*4882a593Smuzhiyun			status = "disabled";
792*4882a593Smuzhiyun		};
793*4882a593Smuzhiyun
794*4882a593Smuzhiyun		pcie3: pcie@3600000 {
795*4882a593Smuzhiyun			compatible = "fsl,ls1046a-pcie";
796*4882a593Smuzhiyun			reg = <0x00 0x03600000 0x0 0x00100000   /* controller registers */
797*4882a593Smuzhiyun			       0x50 0x00000000 0x0 0x00002000>; /* configuration space */
798*4882a593Smuzhiyun			reg-names = "regs", "config";
799*4882a593Smuzhiyun			interrupts = <GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>, /* controller interrupt */
800*4882a593Smuzhiyun				     <GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>; /* PME interrupt */
801*4882a593Smuzhiyun			interrupt-names = "aer", "pme";
802*4882a593Smuzhiyun			#address-cells = <3>;
803*4882a593Smuzhiyun			#size-cells = <2>;
804*4882a593Smuzhiyun			device_type = "pci";
805*4882a593Smuzhiyun			dma-coherent;
806*4882a593Smuzhiyun			num-viewport = <8>;
807*4882a593Smuzhiyun			bus-range = <0x0 0xff>;
808*4882a593Smuzhiyun			ranges = <0x81000000 0x0 0x00000000 0x50 0x00010000 0x0 0x00010000   /* downstream I/O */
809*4882a593Smuzhiyun				  0x82000000 0x0 0x40000000 0x50 0x40000000 0x0 0x40000000>; /* non-prefetchable memory */
810*4882a593Smuzhiyun			msi-parent = <&msi3>, <&msi1>, <&msi2>;
811*4882a593Smuzhiyun			#interrupt-cells = <1>;
812*4882a593Smuzhiyun			interrupt-map-mask = <0 0 0 7>;
813*4882a593Smuzhiyun			interrupt-map = <0000 0 0 1 &gic GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>,
814*4882a593Smuzhiyun					<0000 0 0 2 &gic GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>,
815*4882a593Smuzhiyun					<0000 0 0 3 &gic GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>,
816*4882a593Smuzhiyun					<0000 0 0 4 &gic GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>;
817*4882a593Smuzhiyun			status = "disabled";
818*4882a593Smuzhiyun		};
819*4882a593Smuzhiyun
820*4882a593Smuzhiyun		pcie_ep3: pcie_ep@3600000 {
821*4882a593Smuzhiyun			compatible = "fsl,ls1046a-pcie-ep", "fsl,ls-pcie-ep";
822*4882a593Smuzhiyun			reg = <0x00 0x03600000 0x0 0x00100000
823*4882a593Smuzhiyun				0x50 0x00000000 0x8 0x00000000>;
824*4882a593Smuzhiyun			reg-names = "regs", "addr_space";
825*4882a593Smuzhiyun			num-ib-windows = <6>;
826*4882a593Smuzhiyun			num-ob-windows = <8>;
827*4882a593Smuzhiyun			status = "disabled";
828*4882a593Smuzhiyun		};
829*4882a593Smuzhiyun
830*4882a593Smuzhiyun		qdma: dma-controller@8380000 {
831*4882a593Smuzhiyun			compatible = "fsl,ls1046a-qdma", "fsl,ls1021a-qdma";
832*4882a593Smuzhiyun			reg = <0x0 0x8380000 0x0 0x1000>, /* Controller regs */
833*4882a593Smuzhiyun			      <0x0 0x8390000 0x0 0x10000>, /* Status regs */
834*4882a593Smuzhiyun			      <0x0 0x83a0000 0x0 0x40000>; /* Block regs */
835*4882a593Smuzhiyun			interrupts = <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>,
836*4882a593Smuzhiyun				     <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>,
837*4882a593Smuzhiyun				     <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>,
838*4882a593Smuzhiyun				     <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>,
839*4882a593Smuzhiyun				     <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>;
840*4882a593Smuzhiyun			interrupt-names = "qdma-error", "qdma-queue0",
841*4882a593Smuzhiyun				"qdma-queue1", "qdma-queue2", "qdma-queue3";
842*4882a593Smuzhiyun			dma-channels = <8>;
843*4882a593Smuzhiyun			block-number = <1>;
844*4882a593Smuzhiyun			block-offset = <0x10000>;
845*4882a593Smuzhiyun			fsl,dma-queues = <2>;
846*4882a593Smuzhiyun			status-sizes = <64>;
847*4882a593Smuzhiyun			queue-sizes = <64 64>;
848*4882a593Smuzhiyun			big-endian;
849*4882a593Smuzhiyun		};
850*4882a593Smuzhiyun
851*4882a593Smuzhiyun		rcpm: power-controller@1ee2140 {
852*4882a593Smuzhiyun			compatible = "fsl,ls1046a-rcpm", "fsl,qoriq-rcpm-2.1+";
853*4882a593Smuzhiyun			reg = <0x0 0x1ee2140 0x0 0x4>;
854*4882a593Smuzhiyun			#fsl,rcpm-wakeup-cells = <1>;
855*4882a593Smuzhiyun		};
856*4882a593Smuzhiyun
857*4882a593Smuzhiyun		ftm_alarm0: timer@29d0000 {
858*4882a593Smuzhiyun			compatible = "fsl,ls1046a-ftm-alarm";
859*4882a593Smuzhiyun			reg = <0x0 0x29d0000 0x0 0x10000>;
860*4882a593Smuzhiyun			fsl,rcpm-wakeup = <&rcpm 0x20000>;
861*4882a593Smuzhiyun			interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
862*4882a593Smuzhiyun			big-endian;
863*4882a593Smuzhiyun		};
864*4882a593Smuzhiyun	};
865*4882a593Smuzhiyun
866*4882a593Smuzhiyun	reserved-memory {
867*4882a593Smuzhiyun		#address-cells = <2>;
868*4882a593Smuzhiyun		#size-cells = <2>;
869*4882a593Smuzhiyun		ranges;
870*4882a593Smuzhiyun
871*4882a593Smuzhiyun		bman_fbpr: bman-fbpr {
872*4882a593Smuzhiyun			compatible = "shared-dma-pool";
873*4882a593Smuzhiyun			size = <0 0x1000000>;
874*4882a593Smuzhiyun			alignment = <0 0x1000000>;
875*4882a593Smuzhiyun			no-map;
876*4882a593Smuzhiyun		};
877*4882a593Smuzhiyun
878*4882a593Smuzhiyun		qman_fqd: qman-fqd {
879*4882a593Smuzhiyun			compatible = "shared-dma-pool";
880*4882a593Smuzhiyun			size = <0 0x800000>;
881*4882a593Smuzhiyun			alignment = <0 0x800000>;
882*4882a593Smuzhiyun			no-map;
883*4882a593Smuzhiyun		};
884*4882a593Smuzhiyun
885*4882a593Smuzhiyun		qman_pfdr: qman-pfdr {
886*4882a593Smuzhiyun			compatible = "shared-dma-pool";
887*4882a593Smuzhiyun			size = <0 0x2000000>;
888*4882a593Smuzhiyun			alignment = <0 0x2000000>;
889*4882a593Smuzhiyun			no-map;
890*4882a593Smuzhiyun		};
891*4882a593Smuzhiyun	};
892*4882a593Smuzhiyun
893*4882a593Smuzhiyun	firmware {
894*4882a593Smuzhiyun		optee {
895*4882a593Smuzhiyun			compatible = "linaro,optee-tz";
896*4882a593Smuzhiyun			method = "smc";
897*4882a593Smuzhiyun		};
898*4882a593Smuzhiyun	};
899*4882a593Smuzhiyun};
900*4882a593Smuzhiyun
901*4882a593Smuzhiyun#include "qoriq-qman-portals.dtsi"
902*4882a593Smuzhiyun#include "qoriq-bman-portals.dtsi"
903