Linux Audio

Check our new training course

Yocto / OpenEmbedded training

Feb 10-13, 2025
Register
Loading...
v6.2
  1// SPDX-License-Identifier: GPL-2.0-only
  2/*
  3 * Copyright (C) 2008 Extreme Engineering Solutions, Inc.
  4 * Based on MPC8572DS device tree from Freescale Semiconductor, Inc.
  5 *
  6 * XPedite5330 3U CompactPCI module based on MPC8572E
 
 
 
 
  7 */
  8
  9/dts-v1/;
 10/ {
 11	model = "xes,xpedite5330";
 12	compatible = "xes,xpedite5330", "xes,MPC8572";
 13	#address-cells = <2>;
 14	#size-cells = <2>;
 15	form-factor = "3U CompactPCI";
 16	boot-bank = <0x0>;	/* 0: Primary flash, 1: Secondary flash */
 17
 18	aliases {
 19		ethernet0 = &enet0;
 20		ethernet1 = &enet1;
 21		serial0 = &serial0;
 22		serial1 = &serial1;
 23		pci0 = &pci0;
 24		pci1 = &pci1;
 25		pci2 = &pci2;
 26	};
 27
 28	pmcslots {
 29		#address-cells = <1>;
 30		#size-cells = <0>;
 31
 32		pmcslot@0 {
 33			cell-index = <0>;
 34			/*
 35			 * boolean properties (true if defined):
 36			 *     monarch;
 37			 *     module-present;
 38			 */
 39		};
 40	};
 41
 42	xmcslots {
 43		#address-cells = <1>;
 44		#size-cells = <0>;
 45
 46		xmcslot@0 {
 47			cell-index = <0>;
 48			/*
 49			 * boolean properties (true if defined):
 50			 *     module-present;
 51			 */
 52		};
 53	};
 54
 55	cpci {
 56		/*
 57		 * boolean properties (true if defined):
 58		 *     system-controller;
 59		 */
 60		system-controller;
 61	};
 62
 63	cpus {
 64		#address-cells = <1>;
 65		#size-cells = <0>;
 66
 67		PowerPC,8572@0 {
 68			device_type = "cpu";
 69			reg = <0x0>;
 70			d-cache-line-size = <32>;	// 32 bytes
 71			i-cache-line-size = <32>;	// 32 bytes
 72			d-cache-size = <0x8000>;		// L1, 32K
 73			i-cache-size = <0x8000>;		// L1, 32K
 74			timebase-frequency = <0>;
 75			bus-frequency = <0>;
 76			clock-frequency = <0>;
 77			next-level-cache = <&L2>;
 78		};
 79
 80		PowerPC,8572@1 {
 81			device_type = "cpu";
 82			reg = <0x1>;
 83			d-cache-line-size = <32>;	// 32 bytes
 84			i-cache-line-size = <32>;	// 32 bytes
 85			d-cache-size = <0x8000>;		// L1, 32K
 86			i-cache-size = <0x8000>;		// L1, 32K
 87			timebase-frequency = <0>;
 88			bus-frequency = <0>;
 89			clock-frequency = <0>;
 90			next-level-cache = <&L2>;
 91		};
 92	};
 93
 94	memory {
 95		device_type = "memory";
 96		reg = <0x0 0x0 0x0 0x0>;	// Filled in by U-Boot
 97	};
 98
 99	localbus@ef005000 {
100		#address-cells = <2>;
101		#size-cells = <1>;
102		compatible = "fsl,mpc8572-elbc", "fsl,elbc", "simple-bus";
103		reg = <0 0xef005000 0 0x1000>;
104		interrupts = <19 2>;
105		interrupt-parent = <&mpic>;
106		/* Local bus region mappings */
107		ranges = <0 0 0 0xf8000000 0x8000000 /* CS0: Boot flash */
108			  1 0 0 0xf0000000 0x8000000 /* CS1: Alternate flash */
109			  2 0 0 0xef800000 0x40000   /* CS2: NAND CE1 */
110			  3 0 0 0xef840000 0x40000>; /* CS3: NAND CE2 */
111
112		nor-boot@0,0 {
113			compatible = "amd,s29gl01gp", "cfi-flash";
114			bank-width = <2>;
115			reg = <0 0 0x8000000>; /* 128MB */
116			#address-cells = <1>;
117			#size-cells = <1>;
118			partition@0 {
119				label = "Primary user space";
120				reg = <0x00000000 0x6f00000>; /* 111 MB */
121			};
122			partition@6f00000 {
123				label = "Primary kernel";
124				reg = <0x6f00000 0x1000000>; /* 16 MB */
125			};
126			partition@7f00000 {
127				label = "Primary DTB";
128				reg = <0x7f00000 0x40000>; /* 256 KB */
129			};
130			partition@7f40000 {
131				label = "Primary U-Boot environment";
132				reg = <0x7f40000 0x40000>; /* 256 KB */
133			};
134			partition@7f80000 {
135				label = "Primary U-Boot";
136				reg = <0x7f80000 0x80000>; /* 512 KB */
137				read-only;
138			};
139		};
140
141		nor-alternate@1,0 {
142			compatible = "amd,s29gl01gp", "cfi-flash";
143			bank-width = <2>;
144			//reg = <0xf0000000 0x08000000>; /* 128MB */
145			reg = <1 0 0x8000000>; /* 128MB */
146			#address-cells = <1>;
147			#size-cells = <1>;
148			partition@0 {
149				label = "Secondary user space";
150				reg = <0x00000000 0x6f00000>; /* 111 MB */
151			};
152			partition@6f00000 {
153				label = "Secondary kernel";
154				reg = <0x6f00000 0x1000000>; /* 16 MB */
155			};
156			partition@7f00000 {
157				label = "Secondary DTB";
158				reg = <0x7f00000 0x40000>; /* 256 KB */
159			};
160			partition@7f40000 {
161				label = "Secondary U-Boot environment";
162				reg = <0x7f40000 0x40000>; /* 256 KB */
163			};
164			partition@7f80000 {
165				label = "Secondary U-Boot";
166				reg = <0x7f80000 0x80000>; /* 512 KB */
167				read-only;
168			};
169		};
170
171		nand@2,0 {
172			#address-cells = <1>;
173			#size-cells = <1>;
174			/*
175			 * Actual part could be ST Micro NAND08GW3B2A (1 GB),
176			 * Micron MT29F8G08DAA (2x 512 MB), or Micron
177			 * MT29F16G08FAA (2x 1 GB), depending on the build
178			 * configuration
179			 */
180			compatible = "fsl,mpc8572-fcm-nand",
181				     "fsl,elbc-fcm-nand";
182			reg = <2 0 0x40000>;
183			/* U-Boot should fix this up if chip size > 1 GB */
184			partition@0 {
185				label = "NAND Filesystem";
186				reg = <0 0x40000000>;
187			};
188		};
189
190	};
191
192	soc8572@ef000000 {
193		#address-cells = <1>;
194		#size-cells = <1>;
195		device_type = "soc";
196		compatible = "fsl,mpc8572-immr", "simple-bus";
197		ranges = <0x0 0 0xef000000 0x100000>;
198		bus-frequency = <0>;		// Filled out by uboot.
199
200		ecm-law@0 {
201			compatible = "fsl,ecm-law";
202			reg = <0x0 0x1000>;
203			fsl,num-laws = <12>;
204		};
205
206		ecm@1000 {
207			compatible = "fsl,mpc8572-ecm", "fsl,ecm";
208			reg = <0x1000 0x1000>;
209			interrupts = <17 2>;
210			interrupt-parent = <&mpic>;
211		};
212
213		memory-controller@2000 {
214			compatible = "fsl,mpc8572-memory-controller";
215			reg = <0x2000 0x1000>;
216			interrupt-parent = <&mpic>;
217			interrupts = <18 2>;
218		};
219
220		memory-controller@6000 {
221			compatible = "fsl,mpc8572-memory-controller";
222			reg = <0x6000 0x1000>;
223			interrupt-parent = <&mpic>;
224			interrupts = <18 2>;
225		};
226
227		L2: l2-cache-controller@20000 {
228			compatible = "fsl,mpc8572-l2-cache-controller";
229			reg = <0x20000 0x1000>;
230			cache-line-size = <32>;	// 32 bytes
231			cache-size = <0x100000>; // L2, 1M
232			interrupt-parent = <&mpic>;
233			interrupts = <16 2>;
234		};
235
236		i2c@3000 {
237			#address-cells = <1>;
238			#size-cells = <0>;
239			cell-index = <0>;
240			compatible = "fsl-i2c";
241			reg = <0x3000 0x100>;
242			interrupts = <43 2>;
243			interrupt-parent = <&mpic>;
244			dfsrr;
245
246			temp-sensor@48 {
247				compatible = "dallas,ds1631", "dallas,ds1621";
248				reg = <0x48>;
249			};
250
251			temp-sensor@4c {
252				compatible = "adi,adt7461";
253				reg = <0x4c>;
254			};
255
256			cpu-supervisor@51 {
257				compatible = "dallas,ds4510";
258				reg = <0x51>;
259			};
260
261			eeprom@54 {
262				compatible = "atmel,at24c128b";
263				reg = <0x54>;
264			};
265
266			rtc@68 {
267				compatible = "st,m41t00",
268				             "dallas,ds1338";
269				reg = <0x68>;
270			};
271
272			pcie-switch@70 {
273				compatible = "plx,pex8518";
274				reg = <0x70>;
275			};
276
277			gpio1: gpio@18 {
278				compatible = "nxp,pca9557";
279				reg = <0x18>;
280				#gpio-cells = <2>;
281				gpio-controller;
282				polarity = <0x00>;
283			};
284
285			gpio2: gpio@1c {
286				compatible = "nxp,pca9557";
287				reg = <0x1c>;
288				#gpio-cells = <2>;
289				gpio-controller;
290				polarity = <0x00>;
291			};
292
293			gpio3: gpio@1e {
294				compatible = "nxp,pca9557";
295				reg = <0x1e>;
296				#gpio-cells = <2>;
297				gpio-controller;
298				polarity = <0x00>;
299			};
300
301			gpio4: gpio@1f {
302				compatible = "nxp,pca9557";
303				reg = <0x1f>;
304				#gpio-cells = <2>;
305				gpio-controller;
306				polarity = <0x00>;
307			};
308		};
309
310		i2c@3100 {
311			#address-cells = <1>;
312			#size-cells = <0>;
313			cell-index = <1>;
314			compatible = "fsl-i2c";
315			reg = <0x3100 0x100>;
316			interrupts = <43 2>;
317			interrupt-parent = <&mpic>;
318			dfsrr;
319		};
320
321		dma@c300 {
322			#address-cells = <1>;
323			#size-cells = <1>;
324			compatible = "fsl,mpc8572-dma", "fsl,eloplus-dma";
325			reg = <0xc300 0x4>;
326			ranges = <0x0 0xc100 0x200>;
327			cell-index = <1>;
328			dma-channel@0 {
329				compatible = "fsl,mpc8572-dma-channel",
330						"fsl,eloplus-dma-channel";
331				reg = <0x0 0x80>;
332				cell-index = <0>;
333				interrupt-parent = <&mpic>;
334				interrupts = <76 2>;
335			};
336			dma-channel@80 {
337				compatible = "fsl,mpc8572-dma-channel",
338						"fsl,eloplus-dma-channel";
339				reg = <0x80 0x80>;
340				cell-index = <1>;
341				interrupt-parent = <&mpic>;
342				interrupts = <77 2>;
343			};
344			dma-channel@100 {
345				compatible = "fsl,mpc8572-dma-channel",
346						"fsl,eloplus-dma-channel";
347				reg = <0x100 0x80>;
348				cell-index = <2>;
349				interrupt-parent = <&mpic>;
350				interrupts = <78 2>;
351			};
352			dma-channel@180 {
353				compatible = "fsl,mpc8572-dma-channel",
354						"fsl,eloplus-dma-channel";
355				reg = <0x180 0x80>;
356				cell-index = <3>;
357				interrupt-parent = <&mpic>;
358				interrupts = <79 2>;
359			};
360		};
361
362		dma@21300 {
363			#address-cells = <1>;
364			#size-cells = <1>;
365			compatible = "fsl,mpc8572-dma", "fsl,eloplus-dma";
366			reg = <0x21300 0x4>;
367			ranges = <0x0 0x21100 0x200>;
368			cell-index = <0>;
369			dma-channel@0 {
370				compatible = "fsl,mpc8572-dma-channel",
371						"fsl,eloplus-dma-channel";
372				reg = <0x0 0x80>;
373				cell-index = <0>;
374				interrupt-parent = <&mpic>;
375				interrupts = <20 2>;
376			};
377			dma-channel@80 {
378				compatible = "fsl,mpc8572-dma-channel",
379						"fsl,eloplus-dma-channel";
380				reg = <0x80 0x80>;
381				cell-index = <1>;
382				interrupt-parent = <&mpic>;
383				interrupts = <21 2>;
384			};
385			dma-channel@100 {
386				compatible = "fsl,mpc8572-dma-channel",
387						"fsl,eloplus-dma-channel";
388				reg = <0x100 0x80>;
389				cell-index = <2>;
390				interrupt-parent = <&mpic>;
391				interrupts = <22 2>;
392			};
393			dma-channel@180 {
394				compatible = "fsl,mpc8572-dma-channel",
395						"fsl,eloplus-dma-channel";
396				reg = <0x180 0x80>;
397				cell-index = <3>;
398				interrupt-parent = <&mpic>;
399				interrupts = <23 2>;
400			};
401		};
402
403		/* eTSEC 1 */
404		enet0: ethernet@24000 {
405			#address-cells = <1>;
406			#size-cells = <1>;
407			cell-index = <0>;
408			device_type = "network";
409			model = "eTSEC";
410			compatible = "gianfar";
411			reg = <0x24000 0x1000>;
412			ranges = <0x0 0x24000 0x1000>;
413			local-mac-address = [ 00 00 00 00 00 00 ];
414			interrupts = <29 2 30 2 34 2>;
415			interrupt-parent = <&mpic>;
416			tbi-handle = <&tbi0>;
417			phy-handle = <&phy0>;
418			phy-connection-type = "sgmii";
419
420			mdio@520 {
421				#address-cells = <1>;
422				#size-cells = <0>;
423				compatible = "fsl,gianfar-mdio";
424				reg = <0x520 0x20>;
425
426				phy0: ethernet-phy@1 {
427					interrupt-parent = <&mpic>;
428					interrupts = <8 1>;
429					reg = <0x1>;
430				};
431				phy1: ethernet-phy@2 {
432					interrupt-parent = <&mpic>;
433					interrupts = <8 1>;
434					reg = <0x2>;
435				};
436				tbi0: tbi-phy@11 {
437					reg = <0x11>;
438					device_type = "tbi-phy";
439				};
440			};
441		};
442
443		/* eTSEC 2 */
444		enet1: ethernet@25000 {
445			#address-cells = <1>;
446			#size-cells = <1>;
447			cell-index = <1>;
448			device_type = "network";
449			model = "eTSEC";
450			compatible = "gianfar";
451			reg = <0x25000 0x1000>;
452			ranges = <0x0 0x25000 0x1000>;
453			local-mac-address = [ 00 00 00 00 00 00 ];
454			interrupts = <35 2 36 2 40 2>;
455			interrupt-parent = <&mpic>;
456			tbi-handle = <&tbi1>;
457			phy-handle = <&phy1>;
458			phy-connection-type = "sgmii";
459
460			mdio@520 {
461				#address-cells = <1>;
462				#size-cells = <0>;
463				compatible = "fsl,gianfar-tbi";
464				reg = <0x520 0x20>;
465
466				tbi1: tbi-phy@11 {
467					reg = <0x11>;
468					device_type = "tbi-phy";
469				};
470			};
471		};
472
473		/* UART0 */
474		serial0: serial@4500 {
475			cell-index = <0>;
476			device_type = "serial";
477			compatible = "fsl,ns16550", "ns16550";
478			reg = <0x4500 0x100>;
479			clock-frequency = <0>;
480			interrupts = <42 2>;
481			interrupt-parent = <&mpic>;
482		};
483
484		/* UART1 */
485		serial1: serial@4600 {
486			cell-index = <1>;
487			device_type = "serial";
488			compatible = "fsl,ns16550", "ns16550";
489			reg = <0x4600 0x100>;
490			clock-frequency = <0>;
491			interrupts = <42 2>;
492			interrupt-parent = <&mpic>;
493		};
494
495		global-utilities@e0000 {	//global utilities block
496			compatible = "fsl,mpc8572-guts";
497			reg = <0xe0000 0x1000>;
498			fsl,has-rstcr;
499		};
500
501		msi@41600 {
502			compatible = "fsl,mpc8572-msi", "fsl,mpic-msi";
503			reg = <0x41600 0x80>;
504			msi-available-ranges = <0 0x100>;
505			interrupts = <
506				0xe0 0
507				0xe1 0
508				0xe2 0
509				0xe3 0
510				0xe4 0
511				0xe5 0
512				0xe6 0
513				0xe7 0>;
514			interrupt-parent = <&mpic>;
515		};
516
517		crypto@30000 {
518			compatible = "fsl,sec3.0", "fsl,sec2.4", "fsl,sec2.2",
519				     "fsl,sec2.1", "fsl,sec2.0";
520			reg = <0x30000 0x10000>;
521			interrupts = <45 2 58 2>;
522			interrupt-parent = <&mpic>;
523			fsl,num-channels = <4>;
524			fsl,channel-fifo-len = <24>;
525			fsl,exec-units-mask = <0x9fe>;
526			fsl,descriptor-types-mask = <0x3ab0ebf>;
527		};
528
529		mpic: pic@40000 {
530			interrupt-controller;
531			#address-cells = <0>;
532			#interrupt-cells = <2>;
533			reg = <0x40000 0x40000>;
534			compatible = "chrp,open-pic";
535			device_type = "open-pic";
536		};
537
538		gpio0: gpio@f000 {
539			compatible = "fsl,mpc8572-gpio";
540			reg = <0xf000 0x1000>;
541			interrupts = <47 2>;
542			interrupt-parent = <&mpic>;
543			#gpio-cells = <2>;
544			gpio-controller;
545		};
546
547		gpio-leds {
548			compatible = "gpio-leds";
549
550			heartbeat {
551				label = "Heartbeat";
552				gpios = <&gpio0 4 1>;
553				linux,default-trigger = "heartbeat";
554			};
555
556			yellow {
557				label = "Yellow";
558				gpios = <&gpio0 5 1>;
559			};
560
561			red {
562				label = "Red";
563				gpios = <&gpio0 6 1>;
564			};
565
566			green {
567				label = "Green";
568				gpios = <&gpio0 7 1>;
569			};
570		};
571
572		/* PME (pattern-matcher) */
573		pme@10000 {
574			compatible = "fsl,mpc8572-pme", "pme8572";
575			reg = <0x10000 0x5000>;
576			interrupts = <57 2 64 2 65 2 66 2 67 2>;
577			interrupt-parent = <&mpic>;
578		};
579
580		tlu@2f000 {
581			compatible = "fsl,mpc8572-tlu", "fsl_tlu";
582			reg = <0x2f000 0x1000>;
583			interrupts = <61 2>;
584			interrupt-parent = <&mpic>;
585		};
586
587		tlu@15000 {
588			compatible = "fsl,mpc8572-tlu", "fsl_tlu";
589			reg = <0x15000 0x1000>;
590			interrupts = <75 2>;
591			interrupt-parent = <&mpic>;
592		};
593	};
594
595	/* PCI Express controller 3 - CompactPCI bus via PEX8112 bridge */
596	pci0: pcie@ef008000 {
597		compatible = "fsl,mpc8548-pcie";
598		device_type = "pci";
599		#interrupt-cells = <1>;
600		#size-cells = <2>;
601		#address-cells = <3>;
602		reg = <0 0xef008000 0 0x1000>;
603		bus-range = <0 255>;
604		ranges = <0x2000000 0x0 0xe0000000 0 0xe0000000 0x0 0x10000000
605			  0x1000000 0x0 0x00000000 0 0xe9000000 0x0 0x10000>;
606		clock-frequency = <33333333>;
607		interrupt-parent = <&mpic>;
608		interrupts = <24 2>;
609		interrupt-map-mask = <0xff00 0x0 0x0 0x7>;
610		interrupt-map = <
611			0x0 0x0 0x0 0x1 &mpic 0x0 0x1
612			0x0 0x0 0x0 0x2 &mpic 0x1 0x1
613			0x0 0x0 0x0 0x3 &mpic 0x2 0x1
614			0x0 0x0 0x0 0x4 &mpic 0x3 0x1
615			>;
616		pcie@0 {
617			reg = <0x0 0x0 0x0 0x0 0x0>;
618			#size-cells = <2>;
619			#address-cells = <3>;
620			device_type = "pci";
621			ranges = <0x02000000 0x0 0xe0000000
622				  0x02000000 0x0 0xe0000000
623				  0x0 0x10000000
624
625				  0x01000000 0x0 0x0
626				  0x01000000 0x0 0x0
627				  0x0 0x100000>;
628		};
629	};
630
631	/* PCI Express controller 2, PMC module via PEX8112 bridge */
632	pci1: pcie@ef009000 {
633		compatible = "fsl,mpc8548-pcie";
634		device_type = "pci";
635		#interrupt-cells = <1>;
636		#size-cells = <2>;
637		#address-cells = <3>;
638		reg = <0 0xef009000 0 0x1000>;
639		bus-range = <0 255>;
640		ranges = <0x2000000 0x0 0xc0000000 0 0xc0000000 0x0 0x10000000
641			  0x1000000 0x0 0x00000000 0 0xe8800000 0x0 0x10000>;
642		clock-frequency = <33333333>;
643		interrupt-parent = <&mpic>;
644		interrupts = <25 2>;
645		interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
646		interrupt-map = <
647			/* IDSEL 0x0 */
648			0x0 0x0 0x0 0x1 &mpic 0x4 0x1
649			0x0 0x0 0x0 0x2 &mpic 0x5 0x1
650			0x0 0x0 0x0 0x3 &mpic 0x6 0x1
651			0x0 0x0 0x0 0x4 &mpic 0x7 0x1
652			>;
653		pcie@0 {
654			reg = <0x0 0x0 0x0 0x0 0x0>;
655			#size-cells = <2>;
656			#address-cells = <3>;
657			device_type = "pci";
658			ranges = <0x2000000 0x0 0xc0000000
659				  0x2000000 0x0 0xc0000000
660				  0x0 0x10000000
661
662				  0x1000000 0x0 0x0
663				  0x1000000 0x0 0x0
664				  0x0 0x100000>;
665		};
666	};
667
668	/* PCI Express controller 1, XMC P15 */
669	pci2: pcie@ef00a000 {
670		compatible = "fsl,mpc8548-pcie";
671		device_type = "pci";
672		#interrupt-cells = <1>;
673		#size-cells = <2>;
674		#address-cells = <3>;
675		reg = <0 0xef00a000 0 0x1000>;
676		bus-range = <0 255>;
677		ranges = <0x2000000 0x0 0x80000000 0 0x80000000 0x0 0x40000000
678			  0x1000000 0x0 0x00000000 0 0xe8000000 0x0 0x10000>;
679		clock-frequency = <33333333>;
680		interrupt-parent = <&mpic>;
681		interrupts = <26 2>;
682		interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
683		interrupt-map = <
684			/* IDSEL 0x0 */
685			0x0 0x0 0x0 0x1 &mpic 0x0 0x1
686			0x0 0x0 0x0 0x2 &mpic 0x1 0x1
687			0x0 0x0 0x0 0x3 &mpic 0x2 0x1
688			0x0 0x0 0x0 0x4 &mpic 0x3 0x1
689			>;
690		pcie@0 {
691			reg = <0x0 0x0 0x0 0x0 0x0>;
692			#size-cells = <2>;
693			#address-cells = <3>;
694			device_type = "pci";
695			ranges = <0x2000000 0x0 0x80000000
696				  0x2000000 0x0 0x80000000
697				  0x0 0x40000000
698
699				  0x1000000 0x0 0x0
700				  0x1000000 0x0 0x0
701				  0x0 0x100000>;
702		};
703	};
704};
v4.6
 
  1/*
  2 * Copyright (C) 2008 Extreme Engineering Solutions, Inc.
  3 * Based on MPC8572DS device tree from Freescale Semiconductor, Inc.
  4 *
  5 * XPedite5330 3U CompactPCI module based on MPC8572E
  6 *
  7 * This is free software; you can redistribute it and/or modify
  8 * it under the terms of the GNU General Public License version 2 as
  9 * published by the Free Software Foundation.
 10 */
 11
 12/dts-v1/;
 13/ {
 14	model = "xes,xpedite5330";
 15	compatible = "xes,xpedite5330", "xes,MPC8572";
 16	#address-cells = <2>;
 17	#size-cells = <2>;
 18	form-factor = "3U CompactPCI";
 19	boot-bank = <0x0>;	/* 0: Primary flash, 1: Secondary flash */
 20
 21	aliases {
 22		ethernet0 = &enet0;
 23		ethernet1 = &enet1;
 24		serial0 = &serial0;
 25		serial1 = &serial1;
 26		pci0 = &pci0;
 27		pci1 = &pci1;
 28		pci2 = &pci2;
 29	};
 30
 31	pmcslots {
 32		#address-cells = <1>;
 33		#size-cells = <0>;
 34
 35		pmcslot@0 {
 36			cell-index = <0>;
 37			/*
 38			 * boolean properties (true if defined):
 39			 *     monarch;
 40			 *     module-present;
 41			 */
 42		};
 43	};
 44
 45	xmcslots {
 46		#address-cells = <1>;
 47		#size-cells = <0>;
 48
 49		xmcslot@0 {
 50			cell-index = <0>;
 51			/*
 52			 * boolean properties (true if defined):
 53			 *     module-present;
 54			 */
 55		};
 56	};
 57
 58	cpci {
 59		/*
 60		 * boolean properties (true if defined):
 61		 *     system-controller;
 62		 */
 63		system-controller;
 64	};
 65
 66	cpus {
 67		#address-cells = <1>;
 68		#size-cells = <0>;
 69
 70		PowerPC,8572@0 {
 71			device_type = "cpu";
 72			reg = <0x0>;
 73			d-cache-line-size = <32>;	// 32 bytes
 74			i-cache-line-size = <32>;	// 32 bytes
 75			d-cache-size = <0x8000>;		// L1, 32K
 76			i-cache-size = <0x8000>;		// L1, 32K
 77			timebase-frequency = <0>;
 78			bus-frequency = <0>;
 79			clock-frequency = <0>;
 80			next-level-cache = <&L2>;
 81		};
 82
 83		PowerPC,8572@1 {
 84			device_type = "cpu";
 85			reg = <0x1>;
 86			d-cache-line-size = <32>;	// 32 bytes
 87			i-cache-line-size = <32>;	// 32 bytes
 88			d-cache-size = <0x8000>;		// L1, 32K
 89			i-cache-size = <0x8000>;		// L1, 32K
 90			timebase-frequency = <0>;
 91			bus-frequency = <0>;
 92			clock-frequency = <0>;
 93			next-level-cache = <&L2>;
 94		};
 95	};
 96
 97	memory {
 98		device_type = "memory";
 99		reg = <0x0 0x0 0x0 0x0>;	// Filled in by U-Boot
100	};
101
102	localbus@ef005000 {
103		#address-cells = <2>;
104		#size-cells = <1>;
105		compatible = "fsl,mpc8572-elbc", "fsl,elbc", "simple-bus";
106		reg = <0 0xef005000 0 0x1000>;
107		interrupts = <19 2>;
108		interrupt-parent = <&mpic>;
109		/* Local bus region mappings */
110		ranges = <0 0 0 0xf8000000 0x8000000 /* CS0: Boot flash */
111			  1 0 0 0xf0000000 0x8000000 /* CS1: Alternate flash */
112			  2 0 0 0xef800000 0x40000   /* CS2: NAND CE1 */
113			  3 0 0 0xef840000 0x40000>; /* CS3: NAND CE2 */
114
115		nor-boot@0,0 {
116			compatible = "amd,s29gl01gp", "cfi-flash";
117			bank-width = <2>;
118			reg = <0 0 0x8000000>; /* 128MB */
119			#address-cells = <1>;
120			#size-cells = <1>;
121			partition@0 {
122				label = "Primary user space";
123				reg = <0x00000000 0x6f00000>; /* 111 MB */
124			};
125			partition@6f00000 {
126				label = "Primary kernel";
127				reg = <0x6f00000 0x1000000>; /* 16 MB */
128			};
129			partition@7f00000 {
130				label = "Primary DTB";
131				reg = <0x7f00000 0x40000>; /* 256 KB */
132			};
133			partition@7f40000 {
134				label = "Primary U-Boot environment";
135				reg = <0x7f40000 0x40000>; /* 256 KB */
136			};
137			partition@7f80000 {
138				label = "Primary U-Boot";
139				reg = <0x7f80000 0x80000>; /* 512 KB */
140				read-only;
141			};
142		};
143
144		nor-alternate@1,0 {
145			compatible = "amd,s29gl01gp", "cfi-flash";
146			bank-width = <2>;
147			//reg = <0xf0000000 0x08000000>; /* 128MB */
148			reg = <1 0 0x8000000>; /* 128MB */
149			#address-cells = <1>;
150			#size-cells = <1>;
151			partition@0 {
152				label = "Secondary user space";
153				reg = <0x00000000 0x6f00000>; /* 111 MB */
154			};
155			partition@6f00000 {
156				label = "Secondary kernel";
157				reg = <0x6f00000 0x1000000>; /* 16 MB */
158			};
159			partition@7f00000 {
160				label = "Secondary DTB";
161				reg = <0x7f00000 0x40000>; /* 256 KB */
162			};
163			partition@7f40000 {
164				label = "Secondary U-Boot environment";
165				reg = <0x7f40000 0x40000>; /* 256 KB */
166			};
167			partition@7f80000 {
168				label = "Secondary U-Boot";
169				reg = <0x7f80000 0x80000>; /* 512 KB */
170				read-only;
171			};
172		};
173
174		nand@2,0 {
175			#address-cells = <1>;
176			#size-cells = <1>;
177			/*
178			 * Actual part could be ST Micro NAND08GW3B2A (1 GB),
179			 * Micron MT29F8G08DAA (2x 512 MB), or Micron
180			 * MT29F16G08FAA (2x 1 GB), depending on the build
181			 * configuration
182			 */
183			compatible = "fsl,mpc8572-fcm-nand",
184				     "fsl,elbc-fcm-nand";
185			reg = <2 0 0x40000>;
186			/* U-Boot should fix this up if chip size > 1 GB */
187			partition@0 {
188				label = "NAND Filesystem";
189				reg = <0 0x40000000>;
190			};
191		};
192
193	};
194
195	soc8572@ef000000 {
196		#address-cells = <1>;
197		#size-cells = <1>;
198		device_type = "soc";
199		compatible = "fsl,mpc8572-immr", "simple-bus";
200		ranges = <0x0 0 0xef000000 0x100000>;
201		bus-frequency = <0>;		// Filled out by uboot.
202
203		ecm-law@0 {
204			compatible = "fsl,ecm-law";
205			reg = <0x0 0x1000>;
206			fsl,num-laws = <12>;
207		};
208
209		ecm@1000 {
210			compatible = "fsl,mpc8572-ecm", "fsl,ecm";
211			reg = <0x1000 0x1000>;
212			interrupts = <17 2>;
213			interrupt-parent = <&mpic>;
214		};
215
216		memory-controller@2000 {
217			compatible = "fsl,mpc8572-memory-controller";
218			reg = <0x2000 0x1000>;
219			interrupt-parent = <&mpic>;
220			interrupts = <18 2>;
221		};
222
223		memory-controller@6000 {
224			compatible = "fsl,mpc8572-memory-controller";
225			reg = <0x6000 0x1000>;
226			interrupt-parent = <&mpic>;
227			interrupts = <18 2>;
228		};
229
230		L2: l2-cache-controller@20000 {
231			compatible = "fsl,mpc8572-l2-cache-controller";
232			reg = <0x20000 0x1000>;
233			cache-line-size = <32>;	// 32 bytes
234			cache-size = <0x100000>; // L2, 1M
235			interrupt-parent = <&mpic>;
236			interrupts = <16 2>;
237		};
238
239		i2c@3000 {
240			#address-cells = <1>;
241			#size-cells = <0>;
242			cell-index = <0>;
243			compatible = "fsl-i2c";
244			reg = <0x3000 0x100>;
245			interrupts = <43 2>;
246			interrupt-parent = <&mpic>;
247			dfsrr;
248
249			temp-sensor@48 {
250				compatible = "dallas,ds1631", "dallas,ds1621";
251				reg = <0x48>;
252			};
253
254			temp-sensor@4c {
255				compatible = "adi,adt7461";
256				reg = <0x4c>;
257			};
258
259			cpu-supervisor@51 {
260				compatible = "dallas,ds4510";
261				reg = <0x51>;
262			};
263
264			eeprom@54 {
265				compatible = "atmel,at24c128b";
266				reg = <0x54>;
267			};
268
269			rtc@68 {
270				compatible = "stm,m41t00",
271				             "dallas,ds1338";
272				reg = <0x68>;
273			};
274
275			pcie-switch@70 {
276				compatible = "plx,pex8518";
277				reg = <0x70>;
278			};
279
280			gpio1: gpio@18 {
281				compatible = "nxp,pca9557";
282				reg = <0x18>;
283				#gpio-cells = <2>;
284				gpio-controller;
285				polarity = <0x00>;
286			};
287
288			gpio2: gpio@1c {
289				compatible = "nxp,pca9557";
290				reg = <0x1c>;
291				#gpio-cells = <2>;
292				gpio-controller;
293				polarity = <0x00>;
294			};
295
296			gpio3: gpio@1e {
297				compatible = "nxp,pca9557";
298				reg = <0x1e>;
299				#gpio-cells = <2>;
300				gpio-controller;
301				polarity = <0x00>;
302			};
303
304			gpio4: gpio@1f {
305				compatible = "nxp,pca9557";
306				reg = <0x1f>;
307				#gpio-cells = <2>;
308				gpio-controller;
309				polarity = <0x00>;
310			};
311		};
312
313		i2c@3100 {
314			#address-cells = <1>;
315			#size-cells = <0>;
316			cell-index = <1>;
317			compatible = "fsl-i2c";
318			reg = <0x3100 0x100>;
319			interrupts = <43 2>;
320			interrupt-parent = <&mpic>;
321			dfsrr;
322		};
323
324		dma@c300 {
325			#address-cells = <1>;
326			#size-cells = <1>;
327			compatible = "fsl,mpc8572-dma", "fsl,eloplus-dma";
328			reg = <0xc300 0x4>;
329			ranges = <0x0 0xc100 0x200>;
330			cell-index = <1>;
331			dma-channel@0 {
332				compatible = "fsl,mpc8572-dma-channel",
333						"fsl,eloplus-dma-channel";
334				reg = <0x0 0x80>;
335				cell-index = <0>;
336				interrupt-parent = <&mpic>;
337				interrupts = <76 2>;
338			};
339			dma-channel@80 {
340				compatible = "fsl,mpc8572-dma-channel",
341						"fsl,eloplus-dma-channel";
342				reg = <0x80 0x80>;
343				cell-index = <1>;
344				interrupt-parent = <&mpic>;
345				interrupts = <77 2>;
346			};
347			dma-channel@100 {
348				compatible = "fsl,mpc8572-dma-channel",
349						"fsl,eloplus-dma-channel";
350				reg = <0x100 0x80>;
351				cell-index = <2>;
352				interrupt-parent = <&mpic>;
353				interrupts = <78 2>;
354			};
355			dma-channel@180 {
356				compatible = "fsl,mpc8572-dma-channel",
357						"fsl,eloplus-dma-channel";
358				reg = <0x180 0x80>;
359				cell-index = <3>;
360				interrupt-parent = <&mpic>;
361				interrupts = <79 2>;
362			};
363		};
364
365		dma@21300 {
366			#address-cells = <1>;
367			#size-cells = <1>;
368			compatible = "fsl,mpc8572-dma", "fsl,eloplus-dma";
369			reg = <0x21300 0x4>;
370			ranges = <0x0 0x21100 0x200>;
371			cell-index = <0>;
372			dma-channel@0 {
373				compatible = "fsl,mpc8572-dma-channel",
374						"fsl,eloplus-dma-channel";
375				reg = <0x0 0x80>;
376				cell-index = <0>;
377				interrupt-parent = <&mpic>;
378				interrupts = <20 2>;
379			};
380			dma-channel@80 {
381				compatible = "fsl,mpc8572-dma-channel",
382						"fsl,eloplus-dma-channel";
383				reg = <0x80 0x80>;
384				cell-index = <1>;
385				interrupt-parent = <&mpic>;
386				interrupts = <21 2>;
387			};
388			dma-channel@100 {
389				compatible = "fsl,mpc8572-dma-channel",
390						"fsl,eloplus-dma-channel";
391				reg = <0x100 0x80>;
392				cell-index = <2>;
393				interrupt-parent = <&mpic>;
394				interrupts = <22 2>;
395			};
396			dma-channel@180 {
397				compatible = "fsl,mpc8572-dma-channel",
398						"fsl,eloplus-dma-channel";
399				reg = <0x180 0x80>;
400				cell-index = <3>;
401				interrupt-parent = <&mpic>;
402				interrupts = <23 2>;
403			};
404		};
405
406		/* eTSEC 1 */
407		enet0: ethernet@24000 {
408			#address-cells = <1>;
409			#size-cells = <1>;
410			cell-index = <0>;
411			device_type = "network";
412			model = "eTSEC";
413			compatible = "gianfar";
414			reg = <0x24000 0x1000>;
415			ranges = <0x0 0x24000 0x1000>;
416			local-mac-address = [ 00 00 00 00 00 00 ];
417			interrupts = <29 2 30 2 34 2>;
418			interrupt-parent = <&mpic>;
419			tbi-handle = <&tbi0>;
420			phy-handle = <&phy0>;
421			phy-connection-type = "sgmii";
422
423			mdio@520 {
424				#address-cells = <1>;
425				#size-cells = <0>;
426				compatible = "fsl,gianfar-mdio";
427				reg = <0x520 0x20>;
428
429				phy0: ethernet-phy@1 {
430					interrupt-parent = <&mpic>;
431					interrupts = <8 1>;
432					reg = <0x1>;
433				};
434				phy1: ethernet-phy@2 {
435					interrupt-parent = <&mpic>;
436					interrupts = <8 1>;
437					reg = <0x2>;
438				};
439				tbi0: tbi-phy@11 {
440					reg = <0x11>;
441					device_type = "tbi-phy";
442				};
443			};
444		};
445
446		/* eTSEC 2 */
447		enet1: ethernet@25000 {
448			#address-cells = <1>;
449			#size-cells = <1>;
450			cell-index = <1>;
451			device_type = "network";
452			model = "eTSEC";
453			compatible = "gianfar";
454			reg = <0x25000 0x1000>;
455			ranges = <0x0 0x25000 0x1000>;
456			local-mac-address = [ 00 00 00 00 00 00 ];
457			interrupts = <35 2 36 2 40 2>;
458			interrupt-parent = <&mpic>;
459			tbi-handle = <&tbi1>;
460			phy-handle = <&phy1>;
461			phy-connection-type = "sgmii";
462
463			mdio@520 {
464				#address-cells = <1>;
465				#size-cells = <0>;
466				compatible = "fsl,gianfar-tbi";
467				reg = <0x520 0x20>;
468
469				tbi1: tbi-phy@11 {
470					reg = <0x11>;
471					device_type = "tbi-phy";
472				};
473			};
474		};
475
476		/* UART0 */
477		serial0: serial@4500 {
478			cell-index = <0>;
479			device_type = "serial";
480			compatible = "fsl,ns16550", "ns16550";
481			reg = <0x4500 0x100>;
482			clock-frequency = <0>;
483			interrupts = <42 2>;
484			interrupt-parent = <&mpic>;
485		};
486
487		/* UART1 */
488		serial1: serial@4600 {
489			cell-index = <1>;
490			device_type = "serial";
491			compatible = "fsl,ns16550", "ns16550";
492			reg = <0x4600 0x100>;
493			clock-frequency = <0>;
494			interrupts = <42 2>;
495			interrupt-parent = <&mpic>;
496		};
497
498		global-utilities@e0000 {	//global utilities block
499			compatible = "fsl,mpc8572-guts";
500			reg = <0xe0000 0x1000>;
501			fsl,has-rstcr;
502		};
503
504		msi@41600 {
505			compatible = "fsl,mpc8572-msi", "fsl,mpic-msi";
506			reg = <0x41600 0x80>;
507			msi-available-ranges = <0 0x100>;
508			interrupts = <
509				0xe0 0
510				0xe1 0
511				0xe2 0
512				0xe3 0
513				0xe4 0
514				0xe5 0
515				0xe6 0
516				0xe7 0>;
517			interrupt-parent = <&mpic>;
518		};
519
520		crypto@30000 {
521			compatible = "fsl,sec3.0", "fsl,sec2.4", "fsl,sec2.2",
522				     "fsl,sec2.1", "fsl,sec2.0";
523			reg = <0x30000 0x10000>;
524			interrupts = <45 2 58 2>;
525			interrupt-parent = <&mpic>;
526			fsl,num-channels = <4>;
527			fsl,channel-fifo-len = <24>;
528			fsl,exec-units-mask = <0x9fe>;
529			fsl,descriptor-types-mask = <0x3ab0ebf>;
530		};
531
532		mpic: pic@40000 {
533			interrupt-controller;
534			#address-cells = <0>;
535			#interrupt-cells = <2>;
536			reg = <0x40000 0x40000>;
537			compatible = "chrp,open-pic";
538			device_type = "open-pic";
539		};
540
541		gpio0: gpio@f000 {
542			compatible = "fsl,mpc8572-gpio";
543			reg = <0xf000 0x1000>;
544			interrupts = <47 2>;
545			interrupt-parent = <&mpic>;
546			#gpio-cells = <2>;
547			gpio-controller;
548		};
549
550		gpio-leds {
551			compatible = "gpio-leds";
552
553			heartbeat {
554				label = "Heartbeat";
555				gpios = <&gpio0 4 1>;
556				linux,default-trigger = "heartbeat";
557			};
558
559			yellow {
560				label = "Yellow";
561				gpios = <&gpio0 5 1>;
562			};
563
564			red {
565				label = "Red";
566				gpios = <&gpio0 6 1>;
567			};
568
569			green {
570				label = "Green";
571				gpios = <&gpio0 7 1>;
572			};
573		};
574
575		/* PME (pattern-matcher) */
576		pme@10000 {
577			compatible = "fsl,mpc8572-pme", "pme8572";
578			reg = <0x10000 0x5000>;
579			interrupts = <57 2 64 2 65 2 66 2 67 2>;
580			interrupt-parent = <&mpic>;
581		};
582
583		tlu@2f000 {
584			compatible = "fsl,mpc8572-tlu", "fsl_tlu";
585			reg = <0x2f000 0x1000>;
586			interrupts = <61 2>;
587			interrupt-parent = <&mpic>;
588		};
589
590		tlu@15000 {
591			compatible = "fsl,mpc8572-tlu", "fsl_tlu";
592			reg = <0x15000 0x1000>;
593			interrupts = <75 2>;
594			interrupt-parent = <&mpic>;
595		};
596	};
597
598	/* PCI Express controller 3 - CompactPCI bus via PEX8112 bridge */
599	pci0: pcie@ef008000 {
600		compatible = "fsl,mpc8548-pcie";
601		device_type = "pci";
602		#interrupt-cells = <1>;
603		#size-cells = <2>;
604		#address-cells = <3>;
605		reg = <0 0xef008000 0 0x1000>;
606		bus-range = <0 255>;
607		ranges = <0x2000000 0x0 0xe0000000 0 0xe0000000 0x0 0x10000000
608			  0x1000000 0x0 0x00000000 0 0xe9000000 0x0 0x10000>;
609		clock-frequency = <33333333>;
610		interrupt-parent = <&mpic>;
611		interrupts = <24 2>;
612		interrupt-map-mask = <0xff00 0x0 0x0 0x7>;
613		interrupt-map = <
614			0x0 0x0 0x0 0x1 &mpic 0x0 0x1
615			0x0 0x0 0x0 0x2 &mpic 0x1 0x1
616			0x0 0x0 0x0 0x3 &mpic 0x2 0x1
617			0x0 0x0 0x0 0x4 &mpic 0x3 0x1
618			>;
619		pcie@0 {
620			reg = <0x0 0x0 0x0 0x0 0x0>;
621			#size-cells = <2>;
622			#address-cells = <3>;
623			device_type = "pci";
624			ranges = <0x02000000 0x0 0xe0000000
625				  0x02000000 0x0 0xe0000000
626				  0x0 0x10000000
627
628				  0x01000000 0x0 0x0
629				  0x01000000 0x0 0x0
630				  0x0 0x100000>;
631		};
632	};
633
634	/* PCI Express controller 2, PMC module via PEX8112 bridge */
635	pci1: pcie@ef009000 {
636		compatible = "fsl,mpc8548-pcie";
637		device_type = "pci";
638		#interrupt-cells = <1>;
639		#size-cells = <2>;
640		#address-cells = <3>;
641		reg = <0 0xef009000 0 0x1000>;
642		bus-range = <0 255>;
643		ranges = <0x2000000 0x0 0xc0000000 0 0xc0000000 0x0 0x10000000
644			  0x1000000 0x0 0x00000000 0 0xe8800000 0x0 0x10000>;
645		clock-frequency = <33333333>;
646		interrupt-parent = <&mpic>;
647		interrupts = <25 2>;
648		interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
649		interrupt-map = <
650			/* IDSEL 0x0 */
651			0x0 0x0 0x0 0x1 &mpic 0x4 0x1
652			0x0 0x0 0x0 0x2 &mpic 0x5 0x1
653			0x0 0x0 0x0 0x3 &mpic 0x6 0x1
654			0x0 0x0 0x0 0x4 &mpic 0x7 0x1
655			>;
656		pcie@0 {
657			reg = <0x0 0x0 0x0 0x0 0x0>;
658			#size-cells = <2>;
659			#address-cells = <3>;
660			device_type = "pci";
661			ranges = <0x2000000 0x0 0xc0000000
662				  0x2000000 0x0 0xc0000000
663				  0x0 0x10000000
664
665				  0x1000000 0x0 0x0
666				  0x1000000 0x0 0x0
667				  0x0 0x100000>;
668		};
669	};
670
671	/* PCI Express controller 1, XMC P15 */
672	pci2: pcie@ef00a000 {
673		compatible = "fsl,mpc8548-pcie";
674		device_type = "pci";
675		#interrupt-cells = <1>;
676		#size-cells = <2>;
677		#address-cells = <3>;
678		reg = <0 0xef00a000 0 0x1000>;
679		bus-range = <0 255>;
680		ranges = <0x2000000 0x0 0x80000000 0 0x80000000 0x0 0x40000000
681			  0x1000000 0x0 0x00000000 0 0xe8000000 0x0 0x10000>;
682		clock-frequency = <33333333>;
683		interrupt-parent = <&mpic>;
684		interrupts = <26 2>;
685		interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
686		interrupt-map = <
687			/* IDSEL 0x0 */
688			0x0 0x0 0x0 0x1 &mpic 0x0 0x1
689			0x0 0x0 0x0 0x2 &mpic 0x1 0x1
690			0x0 0x0 0x0 0x3 &mpic 0x2 0x1
691			0x0 0x0 0x0 0x4 &mpic 0x3 0x1
692			>;
693		pcie@0 {
694			reg = <0x0 0x0 0x0 0x0 0x0>;
695			#size-cells = <2>;
696			#address-cells = <3>;
697			device_type = "pci";
698			ranges = <0x2000000 0x0 0x80000000
699				  0x2000000 0x0 0x80000000
700				  0x0 0x40000000
701
702				  0x1000000 0x0 0x0
703				  0x1000000 0x0 0x0
704				  0x0 0x100000>;
705		};
706	};
707};