1/*
2 * Device Tree Include file for Freescale Layerscape-1046A family SoC.
3 *
4 * Copyright 2016 Freescale Semiconductor, Inc.
5 *
6 * Mingkai Hu <mingkai.hu@nxp.com>
7 *
8 * This file is dual-licensed: you can use it either under the terms
9 * of the GPLv2 or the X11 license, at your option. Note that this dual
10 * licensing only applies to this file, and not this project as a
11 * whole.
12 *
13 *  a) This library is free software; you can redistribute it and/or
14 *     modify it under the terms of the GNU General Public License as
15 *     published by the Free Software Foundation; either version 2 of the
16 *     License, or (at your option) any later version.
17 *
18 *     This library is distributed in the hope that it will be useful,
19 *     but WITHOUT ANY WARRANTY; without even the implied warranty of
20 *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
21 *     GNU General Public License for more details.
22 *
23 * Or, alternatively,
24 *
25 *  b) Permission is hereby granted, free of charge, to any person
26 *     obtaining a copy of this software and associated documentation
27 *     files (the "Software"), to deal in the Software without
28 *     restriction, including without limitation the rights to use,
29 *     copy, modify, merge, publish, distribute, sublicense, and/or
30 *     sell copies of the Software, and to permit persons to whom the
31 *     Software is furnished to do so, subject to the following
32 *     conditions:
33 *
34 *     The above copyright notice and this permission notice shall be
35 *     included in all copies or substantial portions of the Software.
36 *
37 *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
38 *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
39 *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
40 *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
41 *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
42 *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
43 *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
44 *     OTHER DEALINGS IN THE SOFTWARE.
45 */
46
47#include <dt-bindings/interrupt-controller/arm-gic.h>
48#include <dt-bindings/thermal/thermal.h>
49
50/ {
51	compatible = "fsl,ls1046a";
52	interrupt-parent = <&gic>;
53	#address-cells = <2>;
54	#size-cells = <2>;
55
56	aliases {
57		crypto = &crypto;
58		fman0 = &fman0;
59		ethernet0 = &enet0;
60		ethernet1 = &enet1;
61		ethernet2 = &enet2;
62		ethernet3 = &enet3;
63		ethernet4 = &enet4;
64		ethernet5 = &enet5;
65		ethernet6 = &enet6;
66		ethernet7 = &enet7;
67	};
68
69	cpus {
70		#address-cells = <1>;
71		#size-cells = <0>;
72
73		cpu0: cpu@0 {
74			device_type = "cpu";
75			compatible = "arm,cortex-a72";
76			reg = <0x0>;
77			clocks = <&clockgen 1 0>;
78			next-level-cache = <&l2>;
79			cpu-idle-states = <&CPU_PH20>;
80			#cooling-cells = <2>;
81		};
82
83		cpu1: cpu@1 {
84			device_type = "cpu";
85			compatible = "arm,cortex-a72";
86			reg = <0x1>;
87			clocks = <&clockgen 1 0>;
88			next-level-cache = <&l2>;
89			cpu-idle-states = <&CPU_PH20>;
90		};
91
92		cpu2: cpu@2 {
93			device_type = "cpu";
94			compatible = "arm,cortex-a72";
95			reg = <0x2>;
96			clocks = <&clockgen 1 0>;
97			next-level-cache = <&l2>;
98			cpu-idle-states = <&CPU_PH20>;
99		};
100
101		cpu3: cpu@3 {
102			device_type = "cpu";
103			compatible = "arm,cortex-a72";
104			reg = <0x3>;
105			clocks = <&clockgen 1 0>;
106			next-level-cache = <&l2>;
107			cpu-idle-states = <&CPU_PH20>;
108		};
109
110		l2: l2-cache {
111			compatible = "cache";
112		};
113	};
114
115	idle-states {
116		/*
117		 * PSCI node is not added default, U-boot will add missing
118		 * parts if it determines to use PSCI.
119		 */
120		entry-method = "arm,psci";
121
122		CPU_PH20: cpu-ph20 {
123			compatible = "arm,idle-state";
124			idle-state-name = "PH20";
125			arm,psci-suspend-param = <0x0>;
126			entry-latency-us = <1000>;
127			exit-latency-us = <1000>;
128			min-residency-us = <3000>;
129		};
130	};
131
132	memory@80000000 {
133		device_type = "memory";
134		/* Real size will be filled by bootloader */
135		reg = <0x0 0x80000000 0x0 0x0>;
136	};
137
138	sysclk: sysclk {
139		compatible = "fixed-clock";
140		#clock-cells = <0>;
141		clock-frequency = <100000000>;
142		clock-output-names = "sysclk";
143	};
144
145	reboot {
146		compatible ="syscon-reboot";
147		regmap = <&dcfg>;
148		offset = <0xb0>;
149		mask = <0x02>;
150	};
151
152	thermal-zones {
153		cpu_thermal: cpu-thermal {
154			polling-delay-passive = <1000>;
155			polling-delay = <5000>;
156			thermal-sensors = <&tmu 3>;
157
158			trips {
159				cpu_alert: cpu-alert {
160					temperature = <85000>;
161					hysteresis = <2000>;
162					type = "passive";
163				};
164
165				cpu_crit: cpu-crit {
166					temperature = <95000>;
167					hysteresis = <2000>;
168					type = "critical";
169				};
170			};
171
172			cooling-maps {
173				map0 {
174					trip = <&cpu_alert>;
175					cooling-device =
176						<&cpu0 THERMAL_NO_LIMIT
177						THERMAL_NO_LIMIT>;
178				};
179			};
180		};
181	};
182
183	timer {
184		compatible = "arm,armv8-timer";
185		interrupts = <GIC_PPI 13 (GIC_CPU_MASK_RAW(0xf) |
186					  IRQ_TYPE_LEVEL_LOW)>,
187			     <GIC_PPI 14 (GIC_CPU_MASK_RAW(0xf) |
188					  IRQ_TYPE_LEVEL_LOW)>,
189			     <GIC_PPI 11 (GIC_CPU_MASK_RAW(0xf) |
190					  IRQ_TYPE_LEVEL_LOW)>,
191			     <GIC_PPI 10 (GIC_CPU_MASK_RAW(0xf) |
192					  IRQ_TYPE_LEVEL_LOW)>;
193	};
194
195	pmu {
196		compatible = "arm,cortex-a72-pmu";
197		interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>,
198			     <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>,
199			     <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>,
200			     <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
201		interrupt-affinity = <&cpu0>,
202				     <&cpu1>,
203				     <&cpu2>,
204				     <&cpu3>;
205	};
206
207	gic: interrupt-controller@1400000 {
208		compatible = "arm,gic-400";
209		#interrupt-cells = <3>;
210		interrupt-controller;
211		reg = <0x0 0x1410000 0 0x10000>, /* GICD */
212		      <0x0 0x1420000 0 0x20000>, /* GICC */
213		      <0x0 0x1440000 0 0x20000>, /* GICH */
214		      <0x0 0x1460000 0 0x20000>; /* GICV */
215		interrupts = <GIC_PPI 9 (GIC_CPU_MASK_RAW(0xf) |
216					 IRQ_TYPE_LEVEL_LOW)>;
217	};
218
219	soc: soc {
220		compatible = "simple-bus";
221		#address-cells = <2>;
222		#size-cells = <2>;
223		ranges;
224
225		ddr: memory-controller@1080000 {
226			compatible = "fsl,qoriq-memory-controller";
227			reg = <0x0 0x1080000 0x0 0x1000>;
228			interrupts = <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>;
229			big-endian;
230		};
231
232		ifc: ifc@1530000 {
233			compatible = "fsl,ifc", "simple-bus";
234			reg = <0x0 0x1530000 0x0 0x10000>;
235			big-endian;
236			interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>;
237		};
238
239		qspi: quadspi@1550000 {
240			compatible = "fsl,ls1021a-qspi";
241			#address-cells = <1>;
242			#size-cells = <0>;
243			reg = <0x0 0x1550000 0x0 0x10000>,
244				<0x0 0x40000000 0x0 0x10000000>;
245			reg-names = "QuadSPI", "QuadSPI-memory";
246			interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>;
247			clock-names = "qspi_en", "qspi";
248			clocks = <&clockgen 4 1>, <&clockgen 4 1>;
249			big-endian;
250			fsl,qspi-has-second-chip;
251			status = "disabled";
252		};
253
254		esdhc: esdhc@1560000 {
255			compatible = "fsl,ls1046a-esdhc", "fsl,esdhc";
256			reg = <0x0 0x1560000 0x0 0x10000>;
257			interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>;
258			clocks = <&clockgen 2 1>;
259			voltage-ranges = <1800 1800 3300 3300>;
260			sdhci,auto-cmd12;
261			big-endian;
262			bus-width = <4>;
263		};
264
265		scfg: scfg@1570000 {
266			compatible = "fsl,ls1046a-scfg", "syscon";
267			reg = <0x0 0x1570000 0x0 0x10000>;
268			big-endian;
269		};
270
271		crypto: crypto@1700000 {
272			compatible = "fsl,sec-v5.4", "fsl,sec-v5.0",
273				     "fsl,sec-v4.0";
274			fsl,sec-era = <8>;
275			#address-cells = <1>;
276			#size-cells = <1>;
277			ranges = <0x0 0x00 0x1700000 0x100000>;
278			reg = <0x00 0x1700000 0x0 0x100000>;
279			interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
280
281			sec_jr0: jr@10000 {
282				compatible = "fsl,sec-v5.4-job-ring",
283					     "fsl,sec-v5.0-job-ring",
284					     "fsl,sec-v4.0-job-ring";
285				reg	   = <0x10000 0x10000>;
286				interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
287			};
288
289			sec_jr1: jr@20000 {
290				compatible = "fsl,sec-v5.4-job-ring",
291					     "fsl,sec-v5.0-job-ring",
292					     "fsl,sec-v4.0-job-ring";
293				reg	   = <0x20000 0x10000>;
294				interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
295			};
296
297			sec_jr2: jr@30000 {
298				compatible = "fsl,sec-v5.4-job-ring",
299					     "fsl,sec-v5.0-job-ring",
300					     "fsl,sec-v4.0-job-ring";
301				reg	   = <0x30000 0x10000>;
302				interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
303			};
304
305			sec_jr3: jr@40000 {
306				compatible = "fsl,sec-v5.4-job-ring",
307					     "fsl,sec-v5.0-job-ring",
308					     "fsl,sec-v4.0-job-ring";
309				reg	   = <0x40000 0x10000>;
310				interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
311			};
312		};
313
314		qman: qman@1880000 {
315			compatible = "fsl,qman";
316			reg = <0x0 0x1880000 0x0 0x10000>;
317			interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
318			memory-region = <&qman_fqd &qman_pfdr>;
319
320		};
321
322		bman: bman@1890000 {
323			compatible = "fsl,bman";
324			reg = <0x0 0x1890000 0x0 0x10000>;
325			interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
326			memory-region = <&bman_fbpr>;
327
328		};
329
330		qportals: qman-portals@500000000 {
331			ranges = <0x0 0x5 0x00000000 0x8000000>;
332		};
333
334		bportals: bman-portals@508000000 {
335			ranges = <0x0 0x5 0x08000000 0x8000000>;
336		};
337
338		dcfg: dcfg@1ee0000 {
339			compatible = "fsl,ls1046a-dcfg", "syscon";
340			reg = <0x0 0x1ee0000 0x0 0x10000>;
341			big-endian;
342		};
343
344		clockgen: clocking@1ee1000 {
345			compatible = "fsl,ls1046a-clockgen";
346			reg = <0x0 0x1ee1000 0x0 0x1000>;
347			#clock-cells = <2>;
348			clocks = <&sysclk>;
349		};
350
351		tmu: tmu@1f00000 {
352			compatible = "fsl,qoriq-tmu";
353			reg = <0x0 0x1f00000 0x0 0x10000>;
354			interrupts = <0 33 0x4>;
355			fsl,tmu-range = <0xb0000 0x9002a 0x6004c 0x30062>;
356			fsl,tmu-calibration =
357				/* Calibration data group 1 */
358				<0x00000000 0x00000026
359				0x00000001 0x0000002d
360				0x00000002 0x00000032
361				0x00000003 0x00000039
362				0x00000004 0x0000003f
363				0x00000005 0x00000046
364				0x00000006 0x0000004d
365				0x00000007 0x00000054
366				0x00000008 0x0000005a
367				0x00000009 0x00000061
368				0x0000000a 0x0000006a
369				0x0000000b 0x00000071
370				/* Calibration data group 2 */
371				0x00010000 0x00000025
372				0x00010001 0x0000002c
373				0x00010002 0x00000035
374				0x00010003 0x0000003d
375				0x00010004 0x00000045
376				0x00010005 0x0000004e
377				0x00010006 0x00000057
378				0x00010007 0x00000061
379				0x00010008 0x0000006b
380				0x00010009 0x00000076
381				/* Calibration data group 3 */
382				0x00020000 0x00000029
383				0x00020001 0x00000033
384				0x00020002 0x0000003d
385				0x00020003 0x00000049
386				0x00020004 0x00000056
387				0x00020005 0x00000061
388				0x00020006 0x0000006d
389				/* Calibration data group 4 */
390				0x00030000 0x00000021
391				0x00030001 0x0000002a
392				0x00030002 0x0000003c
393				0x00030003 0x0000004e>;
394			big-endian;
395			#thermal-sensor-cells = <1>;
396		};
397
398		dspi: dspi@2100000 {
399			compatible = "fsl,ls1021a-v1.0-dspi";
400			#address-cells = <1>;
401			#size-cells = <0>;
402			reg = <0x0 0x2100000 0x0 0x10000>;
403			interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>;
404			clock-names = "dspi";
405			clocks = <&clockgen 4 1>;
406			spi-num-chipselects = <5>;
407			big-endian;
408			status = "disabled";
409		};
410
411		i2c0: i2c@2180000 {
412			compatible = "fsl,vf610-i2c";
413			#address-cells = <1>;
414			#size-cells = <0>;
415			reg = <0x0 0x2180000 0x0 0x10000>;
416			interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>;
417			clocks = <&clockgen 4 1>;
418			dmas = <&edma0 1 39>,
419			       <&edma0 1 38>;
420			dma-names = "tx", "rx";
421			status = "disabled";
422		};
423
424		i2c1: i2c@2190000 {
425			compatible = "fsl,vf610-i2c";
426			#address-cells = <1>;
427			#size-cells = <0>;
428			reg = <0x0 0x2190000 0x0 0x10000>;
429			interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>;
430			clocks = <&clockgen 4 1>;
431			status = "disabled";
432		};
433
434		i2c2: i2c@21a0000 {
435			compatible = "fsl,vf610-i2c";
436			#address-cells = <1>;
437			#size-cells = <0>;
438			reg = <0x0 0x21a0000 0x0 0x10000>;
439			interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>;
440			clocks = <&clockgen 4 1>;
441			status = "disabled";
442		};
443
444		i2c3: i2c@21b0000 {
445			compatible = "fsl,vf610-i2c";
446			#address-cells = <1>;
447			#size-cells = <0>;
448			reg = <0x0 0x21b0000 0x0 0x10000>;
449			interrupts = <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>;
450			clocks = <&clockgen 4 1>;
451			status = "disabled";
452		};
453
454		duart0: serial@21c0500 {
455			compatible = "fsl,ns16550", "ns16550a";
456			reg = <0x00 0x21c0500 0x0 0x100>;
457			interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>;
458			clocks = <&clockgen 4 1>;
459		};
460
461		duart1: serial@21c0600 {
462			compatible = "fsl,ns16550", "ns16550a";
463			reg = <0x00 0x21c0600 0x0 0x100>;
464			interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>;
465			clocks = <&clockgen 4 1>;
466		};
467
468		duart2: serial@21d0500 {
469			compatible = "fsl,ns16550", "ns16550a";
470			reg = <0x0 0x21d0500 0x0 0x100>;
471			interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>;
472			clocks = <&clockgen 4 1>;
473		};
474
475		duart3: serial@21d0600 {
476			compatible = "fsl,ns16550", "ns16550a";
477			reg = <0x0 0x21d0600 0x0 0x100>;
478			interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>;
479			clocks = <&clockgen 4 1>;
480		};
481
482		gpio0: gpio@2300000 {
483			compatible = "fsl,qoriq-gpio";
484			reg = <0x0 0x2300000 0x0 0x10000>;
485			interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>;
486			gpio-controller;
487			#gpio-cells = <2>;
488			interrupt-controller;
489			#interrupt-cells = <2>;
490		};
491
492		gpio1: gpio@2310000 {
493			compatible = "fsl,qoriq-gpio";
494			reg = <0x0 0x2310000 0x0 0x10000>;
495			interrupts = <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>;
496			gpio-controller;
497			#gpio-cells = <2>;
498			interrupt-controller;
499			#interrupt-cells = <2>;
500		};
501
502		gpio2: gpio@2320000 {
503			compatible = "fsl,qoriq-gpio";
504			reg = <0x0 0x2320000 0x0 0x10000>;
505			interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>;
506			gpio-controller;
507			#gpio-cells = <2>;
508			interrupt-controller;
509			#interrupt-cells = <2>;
510		};
511
512		gpio3: gpio@2330000 {
513			compatible = "fsl,qoriq-gpio";
514			reg = <0x0 0x2330000 0x0 0x10000>;
515			interrupts = <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>;
516			gpio-controller;
517			#gpio-cells = <2>;
518			interrupt-controller;
519			#interrupt-cells = <2>;
520		};
521
522		lpuart0: serial@2950000 {
523			compatible = "fsl,ls1021a-lpuart";
524			reg = <0x0 0x2950000 0x0 0x1000>;
525			interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>;
526			clocks = <&clockgen 4 0>;
527			clock-names = "ipg";
528			status = "disabled";
529		};
530
531		lpuart1: serial@2960000 {
532			compatible = "fsl,ls1021a-lpuart";
533			reg = <0x0 0x2960000 0x0 0x1000>;
534			interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
535			clocks = <&clockgen 4 1>;
536			clock-names = "ipg";
537			status = "disabled";
538		};
539
540		lpuart2: serial@2970000 {
541			compatible = "fsl,ls1021a-lpuart";
542			reg = <0x0 0x2970000 0x0 0x1000>;
543			interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
544			clocks = <&clockgen 4 1>;
545			clock-names = "ipg";
546			status = "disabled";
547		};
548
549		lpuart3: serial@2980000 {
550			compatible = "fsl,ls1021a-lpuart";
551			reg = <0x0 0x2980000 0x0 0x1000>;
552			interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
553			clocks = <&clockgen 4 1>;
554			clock-names = "ipg";
555			status = "disabled";
556		};
557
558		lpuart4: serial@2990000 {
559			compatible = "fsl,ls1021a-lpuart";
560			reg = <0x0 0x2990000 0x0 0x1000>;
561			interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
562			clocks = <&clockgen 4 1>;
563			clock-names = "ipg";
564			status = "disabled";
565		};
566
567		lpuart5: serial@29a0000 {
568			compatible = "fsl,ls1021a-lpuart";
569			reg = <0x0 0x29a0000 0x0 0x1000>;
570			interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>;
571			clocks = <&clockgen 4 1>;
572			clock-names = "ipg";
573			status = "disabled";
574		};
575
576		wdog0: watchdog@2ad0000 {
577			compatible = "fsl,imx21-wdt";
578			reg = <0x0 0x2ad0000 0x0 0x10000>;
579			interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
580			clocks = <&clockgen 4 1>;
581			big-endian;
582		};
583
584		edma0: edma@2c00000 {
585			#dma-cells = <2>;
586			compatible = "fsl,vf610-edma";
587			reg = <0x0 0x2c00000 0x0 0x10000>,
588			      <0x0 0x2c10000 0x0 0x10000>,
589			      <0x0 0x2c20000 0x0 0x10000>;
590			interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>,
591				     <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
592			interrupt-names = "edma-tx", "edma-err";
593			dma-channels = <32>;
594			big-endian;
595			clock-names = "dmamux0", "dmamux1";
596			clocks = <&clockgen 4 1>,
597				 <&clockgen 4 1>;
598		};
599
600		usb0: usb@2f00000 {
601			compatible = "snps,dwc3";
602			reg = <0x0 0x2f00000 0x0 0x10000>;
603			interrupts = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>;
604			dr_mode = "host";
605			snps,quirk-frame-length-adjustment = <0x20>;
606			snps,dis_rxdet_inp3_quirk;
607		};
608
609		usb1: usb@3000000 {
610			compatible = "snps,dwc3";
611			reg = <0x0 0x3000000 0x0 0x10000>;
612			interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>;
613			dr_mode = "host";
614			snps,quirk-frame-length-adjustment = <0x20>;
615			snps,dis_rxdet_inp3_quirk;
616		};
617
618		usb2: usb@3100000 {
619			compatible = "snps,dwc3";
620			reg = <0x0 0x3100000 0x0 0x10000>;
621			interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>;
622			dr_mode = "host";
623			snps,quirk-frame-length-adjustment = <0x20>;
624			snps,dis_rxdet_inp3_quirk;
625		};
626
627		sata: sata@3200000 {
628			compatible = "fsl,ls1046a-ahci";
629			reg = <0x0 0x3200000 0x0 0x10000>,
630				<0x0 0x20140520 0x0 0x4>;
631			reg-names = "ahci", "sata-ecc";
632			interrupts = <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>;
633			clocks = <&clockgen 4 1>;
634		};
635
636		msi1: msi-controller@1580000 {
637			compatible = "fsl,ls1046a-msi";
638			msi-controller;
639			reg = <0x0 0x1580000 0x0 0x10000>;
640			interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>,
641				     <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>,
642				     <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>,
643				     <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>;
644		};
645
646		msi2: msi-controller@1590000 {
647			compatible = "fsl,ls1046a-msi";
648			msi-controller;
649			reg = <0x0 0x1590000 0x0 0x10000>;
650			interrupts = <GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>,
651				     <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>,
652				     <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>,
653				     <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>;
654		};
655
656		msi3: msi-controller@15a0000 {
657			compatible = "fsl,ls1046a-msi";
658			msi-controller;
659			reg = <0x0 0x15a0000 0x0 0x10000>;
660			interrupts = <GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>,
661				     <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>,
662				     <GIC_SPI 156 IRQ_TYPE_LEVEL_HIGH>,
663				     <GIC_SPI 157 IRQ_TYPE_LEVEL_HIGH>;
664		};
665
666		pcie@3400000 {
667			compatible = "fsl,ls1046a-pcie", "snps,dw-pcie";
668			reg = <0x00 0x03400000 0x0 0x00100000   /* controller registers */
669			       0x40 0x00000000 0x0 0x00002000>; /* configuration space */
670			reg-names = "regs", "config";
671			interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>, /* controller interrupt */
672				     <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>; /* PME interrupt */
673			interrupt-names = "aer", "pme";
674			#address-cells = <3>;
675			#size-cells = <2>;
676			device_type = "pci";
677			dma-coherent;
678			num-lanes = <4>;
679			bus-range = <0x0 0xff>;
680			ranges = <0x81000000 0x0 0x00000000 0x40 0x00010000 0x0 0x00010000   /* downstream I/O */
681				  0x82000000 0x0 0x40000000 0x40 0x40000000 0x0 0x40000000>; /* non-prefetchable memory */
682			msi-parent = <&msi1>, <&msi2>, <&msi3>;
683			#interrupt-cells = <1>;
684			interrupt-map-mask = <0 0 0 7>;
685			interrupt-map = <0000 0 0 1 &gic GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>,
686					<0000 0 0 2 &gic GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>,
687					<0000 0 0 3 &gic GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>,
688					<0000 0 0 4 &gic GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;
689		};
690
691		pcie@3500000 {
692			compatible = "fsl,ls1046a-pcie", "snps,dw-pcie";
693			reg = <0x00 0x03500000 0x0 0x00100000   /* controller registers */
694			       0x48 0x00000000 0x0 0x00002000>; /* configuration space */
695			reg-names = "regs", "config";
696			interrupts = <GIC_SPI 128 IRQ_TYPE_LEVEL_HIGH>, /* controller interrupt */
697				     <GIC_SPI 127 IRQ_TYPE_LEVEL_HIGH>; /* PME interrupt */
698			interrupt-names = "aer", "pme";
699			#address-cells = <3>;
700			#size-cells = <2>;
701			device_type = "pci";
702			dma-coherent;
703			num-lanes = <2>;
704			bus-range = <0x0 0xff>;
705			ranges = <0x81000000 0x0 0x00000000 0x48 0x00010000 0x0 0x00010000   /* downstream I/O */
706				  0x82000000 0x0 0x40000000 0x48 0x40000000 0x0 0x40000000>; /* non-prefetchable memory */
707			msi-parent = <&msi2>, <&msi3>, <&msi1>;
708			#interrupt-cells = <1>;
709			interrupt-map-mask = <0 0 0 7>;
710			interrupt-map = <0000 0 0 1 &gic GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>,
711					<0000 0 0 2 &gic GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>,
712					<0000 0 0 3 &gic GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>,
713					<0000 0 0 4 &gic GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>;
714		};
715
716		pcie@3600000 {
717			compatible = "fsl,ls1046a-pcie", "snps,dw-pcie";
718			reg = <0x00 0x03600000 0x0 0x00100000   /* controller registers */
719			       0x50 0x00000000 0x0 0x00002000>; /* configuration space */
720			reg-names = "regs", "config";
721			interrupts = <GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>, /* controller interrupt */
722				     <GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>; /* PME interrupt */
723			interrupt-names = "aer", "pme";
724			#address-cells = <3>;
725			#size-cells = <2>;
726			device_type = "pci";
727			dma-coherent;
728			num-lanes = <2>;
729			bus-range = <0x0 0xff>;
730			ranges = <0x81000000 0x0 0x00000000 0x50 0x00010000 0x0 0x00010000   /* downstream I/O */
731				  0x82000000 0x0 0x40000000 0x50 0x40000000 0x0 0x40000000>; /* non-prefetchable memory */
732			msi-parent = <&msi3>, <&msi1>, <&msi2>;
733			#interrupt-cells = <1>;
734			interrupt-map-mask = <0 0 0 7>;
735			interrupt-map = <0000 0 0 1 &gic GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>,
736					<0000 0 0 2 &gic GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>,
737					<0000 0 0 3 &gic GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>,
738					<0000 0 0 4 &gic GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>;
739		};
740
741	};
742
743	reserved-memory {
744		#address-cells = <2>;
745		#size-cells = <2>;
746		ranges;
747
748		bman_fbpr: bman-fbpr {
749			compatible = "shared-dma-pool";
750			size = <0 0x1000000>;
751			alignment = <0 0x1000000>;
752			no-map;
753		};
754
755		qman_fqd: qman-fqd {
756			compatible = "shared-dma-pool";
757			size = <0 0x800000>;
758			alignment = <0 0x800000>;
759			no-map;
760		};
761
762		qman_pfdr: qman-pfdr {
763			compatible = "shared-dma-pool";
764			size = <0 0x2000000>;
765			alignment = <0 0x2000000>;
766			no-map;
767		};
768	};
769
770	firmware {
771		optee {
772			compatible = "linaro,optee-tz";
773			method = "smc";
774		};
775	};
776};
777
778#include "qoriq-qman-portals.dtsi"
779#include "qoriq-bman-portals.dtsi"
780