163716633SHeiko Schocher/*
263716633SHeiko Schocher * Device Tree for the MGCOGE plattform from keymile
363716633SHeiko Schocher *
463716633SHeiko Schocher * Copyright 2008 DENX Software Engineering GmbH
563716633SHeiko Schocher * Heiko Schocher <hs@denx.de>
663716633SHeiko Schocher *
763716633SHeiko Schocher * This program is free software; you can redistribute  it and/or modify it
863716633SHeiko Schocher * under  the terms of  the GNU General  Public License as published by the
963716633SHeiko Schocher * Free Software Foundation;  either version 2 of the  License, or (at your
1063716633SHeiko Schocher * option) any later version.
1163716633SHeiko Schocher */
1263716633SHeiko Schocher
1363716633SHeiko Schocher/dts-v1/;
1463716633SHeiko Schocher/ {
1563716633SHeiko Schocher	model = "MGCOGE";
16c513e7c9SHolger Brunck	compatible = "keymile,km82xx";
1763716633SHeiko Schocher	#address-cells = <1>;
1863716633SHeiko Schocher	#size-cells = <1>;
1963716633SHeiko Schocher
2063716633SHeiko Schocher	aliases {
2163716633SHeiko Schocher		ethernet0 = &eth0;
2263716633SHeiko Schocher		serial0 = &smc2;
2363716633SHeiko Schocher	};
2463716633SHeiko Schocher
2563716633SHeiko Schocher	cpus {
2663716633SHeiko Schocher		#address-cells = <1>;
2763716633SHeiko Schocher		#size-cells = <0>;
2863716633SHeiko Schocher
2963716633SHeiko Schocher		PowerPC,8247@0 {
3063716633SHeiko Schocher			device_type = "cpu";
3163716633SHeiko Schocher			reg = <0>;
3263716633SHeiko Schocher			d-cache-line-size = <32>;
3363716633SHeiko Schocher			i-cache-line-size = <32>;
3463716633SHeiko Schocher			d-cache-size = <16384>;
3563716633SHeiko Schocher			i-cache-size = <16384>;
3663716633SHeiko Schocher			timebase-frequency = <0>; /* Filled in by U-Boot */
3763716633SHeiko Schocher			clock-frequency = <0>; /* Filled in by U-Boot */
3863716633SHeiko Schocher			bus-frequency = <0>; /* Filled in by U-Boot */
3963716633SHeiko Schocher		};
4063716633SHeiko Schocher	};
4163716633SHeiko Schocher
4263716633SHeiko Schocher	localbus@f0010100 {
4363716633SHeiko Schocher		compatible = "fsl,mpc8247-localbus",
4463716633SHeiko Schocher		             "fsl,pq2-localbus",
4563716633SHeiko Schocher		             "simple-bus";
4663716633SHeiko Schocher		#address-cells = <2>;
4763716633SHeiko Schocher		#size-cells = <1>;
4863716633SHeiko Schocher		reg = <0xf0010100 0x40>;
4963716633SHeiko Schocher
5063716633SHeiko Schocher		ranges = <0 0 0xfe000000 0x00400000
51c513e7c9SHolger Brunck			  1 0 0x30000000 0x00010000
52c513e7c9SHolger Brunck			  2 0 0x40000000 0x00010000
53c513e7c9SHolger Brunck			  5 0 0x50000000 0x04000000
54c513e7c9SHolger Brunck			>;
5563716633SHeiko Schocher
5663716633SHeiko Schocher		flash@0,0 {
5763716633SHeiko Schocher			compatible = "cfi-flash";
5863716633SHeiko Schocher			reg = <0 0x0 0x400000>;
5963716633SHeiko Schocher			#address-cells = <1>;
6063716633SHeiko Schocher			#size-cells = <1>;
6163716633SHeiko Schocher			bank-width = <1>;
6263716633SHeiko Schocher			device-width = <1>;
6363716633SHeiko Schocher			partition@0 {
6463716633SHeiko Schocher				label = "u-boot";
65c513e7c9SHolger Brunck				reg = <0x00000 0xC0000>;
6663716633SHeiko Schocher			};
67c513e7c9SHolger Brunck			partition@1 {
6863716633SHeiko Schocher				label = "env";
69c513e7c9SHolger Brunck				reg = <0xC0000 0x20000>;
7063716633SHeiko Schocher			};
71c513e7c9SHolger Brunck			partition@2 {
72c513e7c9SHolger Brunck				label = "envred";
73c513e7c9SHolger Brunck				reg = <0xE0000 0x20000>;
7463716633SHeiko Schocher			};
75c513e7c9SHolger Brunck			partition@3 {
76c513e7c9SHolger Brunck				label = "free";
77c513e7c9SHolger Brunck				reg = <0x100000 0x300000>;
7863716633SHeiko Schocher			};
7963716633SHeiko Schocher		};
8063716633SHeiko Schocher
8163716633SHeiko Schocher		flash@5,0 {
8263716633SHeiko Schocher			compatible = "cfi-flash";
83c513e7c9SHolger Brunck			reg = <5 0x00000000 0x02000000
84c513e7c9SHolger Brunck			       5 0x02000000 0x02000000>;
8563716633SHeiko Schocher			#address-cells = <1>;
8663716633SHeiko Schocher			#size-cells = <1>;
8763716633SHeiko Schocher			bank-width = <2>;
88c513e7c9SHolger Brunck			partition@app { /* 64 MBytes */
89c513e7c9SHolger Brunck				label = "ubi0";
90c513e7c9SHolger Brunck				reg = <0x00000000 0x04000000>;
9163716633SHeiko Schocher			};
9263716633SHeiko Schocher		};
9363716633SHeiko Schocher	};
9463716633SHeiko Schocher
9563716633SHeiko Schocher	memory {
9663716633SHeiko Schocher		device_type = "memory";
9763716633SHeiko Schocher		reg = <0 0>; /* Filled in by U-Boot */
9863716633SHeiko Schocher	};
9963716633SHeiko Schocher
10063716633SHeiko Schocher	soc@f0000000 {
10163716633SHeiko Schocher		#address-cells = <1>;
10263716633SHeiko Schocher		#size-cells = <1>;
10363716633SHeiko Schocher		compatible = "fsl,mpc8247-immr", "fsl,pq2-soc", "simple-bus";
10463716633SHeiko Schocher		ranges = <0x00000000 0xf0000000 0x00053000>;
10563716633SHeiko Schocher
10663716633SHeiko Schocher		// Temporary until code stops depending on it.
10763716633SHeiko Schocher		device_type = "soc";
10863716633SHeiko Schocher
10963716633SHeiko Schocher		cpm@119c0 {
11063716633SHeiko Schocher			#address-cells = <1>;
11163716633SHeiko Schocher			#size-cells = <1>;
11263716633SHeiko Schocher			#interrupt-cells = <2>;
11363716633SHeiko Schocher			compatible = "fsl,mpc8247-cpm", "fsl,cpm2",
11463716633SHeiko Schocher					"simple-bus";
11563716633SHeiko Schocher			reg = <0x119c0 0x30>;
11663716633SHeiko Schocher			ranges;
11763716633SHeiko Schocher
11863716633SHeiko Schocher			muram {
11963716633SHeiko Schocher				compatible = "fsl,cpm-muram";
12063716633SHeiko Schocher				#address-cells = <1>;
12163716633SHeiko Schocher				#size-cells = <1>;
12263716633SHeiko Schocher				ranges = <0 0 0x10000>;
12363716633SHeiko Schocher
12463716633SHeiko Schocher				data@0 {
12563716633SHeiko Schocher					compatible = "fsl,cpm-muram-data";
12663716633SHeiko Schocher					reg = <0x80 0x1f80 0x9800 0x800>;
12763716633SHeiko Schocher				};
12863716633SHeiko Schocher			};
12963716633SHeiko Schocher
13063716633SHeiko Schocher			brg@119f0 {
13163716633SHeiko Schocher				compatible = "fsl,mpc8247-brg",
13263716633SHeiko Schocher				             "fsl,cpm2-brg",
13363716633SHeiko Schocher				             "fsl,cpm-brg";
13463716633SHeiko Schocher				reg = <0x119f0 0x10 0x115f0 0x10>;
13563716633SHeiko Schocher			};
13663716633SHeiko Schocher
13763716633SHeiko Schocher			/* Monitor port/SMC2 */
13863716633SHeiko Schocher			smc2: serial@11a90 {
13963716633SHeiko Schocher				device_type = "serial";
14063716633SHeiko Schocher				compatible = "fsl,mpc8247-smc-uart",
14163716633SHeiko Schocher				             "fsl,cpm2-smc-uart";
14263716633SHeiko Schocher				reg = <0x11a90 0x20 0x88fc 0x02>;
14363716633SHeiko Schocher				interrupts = <5 8>;
14463716633SHeiko Schocher				interrupt-parent = <&PIC>;
14563716633SHeiko Schocher				fsl,cpm-brg = <2>;
14663716633SHeiko Schocher				fsl,cpm-command = <0x21200000>;
14763716633SHeiko Schocher				current-speed = <0>; /* Filled in by U-Boot */
14863716633SHeiko Schocher			};
14963716633SHeiko Schocher
15063716633SHeiko Schocher			eth0: ethernet@11a60 {
15163716633SHeiko Schocher				device_type = "network";
15263716633SHeiko Schocher				compatible = "fsl,mpc8247-scc-enet",
15363716633SHeiko Schocher				             "fsl,cpm2-scc-enet";
15463716633SHeiko Schocher				reg = <0x11a60 0x20 0x8300 0x100 0x11390 1>;
15563716633SHeiko Schocher				local-mac-address = [ 00 00 00 00 00 00 ]; /* Filled in by U-Boot */
15663716633SHeiko Schocher				interrupts = <43 8>;
15763716633SHeiko Schocher				interrupt-parent = <&PIC>;
15863716633SHeiko Schocher				linux,network-index = <0>;
15963716633SHeiko Schocher				fsl,cpm-command = <0xce00000>;
16063716633SHeiko Schocher				fixed-link = <0 0 10 0 0>;
16163716633SHeiko Schocher			};
16263716633SHeiko Schocher
1639239c89bSHeiko Schocher			i2c@11860 {
1649239c89bSHeiko Schocher				compatible = "fsl,mpc8272-i2c",
1659239c89bSHeiko Schocher					     "fsl,cpm2-i2c";
1669239c89bSHeiko Schocher				reg = <0x11860 0x20 0x8afc 0x2>;
1679239c89bSHeiko Schocher				interrupts = <1 8>;
1689239c89bSHeiko Schocher				interrupt-parent = <&PIC>;
1699239c89bSHeiko Schocher				fsl,cpm-command = <0x29600000>;
1709239c89bSHeiko Schocher				#address-cells = <1>;
1719239c89bSHeiko Schocher				#size-cells = <0>;
1729239c89bSHeiko Schocher			};
1739239c89bSHeiko Schocher
1749239c89bSHeiko Schocher			mdio@10d40 {
1759239c89bSHeiko Schocher				compatible = "fsl,cpm2-mdio-bitbang";
1769239c89bSHeiko Schocher				reg = <0x10d00 0x14>;
1779239c89bSHeiko Schocher				#address-cells = <1>;
1789239c89bSHeiko Schocher				#size-cells = <0>;
1799239c89bSHeiko Schocher				fsl,mdio-pin = <12>;
1809239c89bSHeiko Schocher				fsl,mdc-pin = <13>;
1819239c89bSHeiko Schocher
1829239c89bSHeiko Schocher				phy0: ethernet-phy@0 {
1839239c89bSHeiko Schocher					reg = <0x0>;
1849239c89bSHeiko Schocher				};
1859239c89bSHeiko Schocher
1869239c89bSHeiko Schocher				phy1: ethernet-phy@1 {
1879239c89bSHeiko Schocher					reg = <0x1>;
1889239c89bSHeiko Schocher				};
1899239c89bSHeiko Schocher			};
1909239c89bSHeiko Schocher
1919239c89bSHeiko Schocher			/* FCC1 management to switch */
1929239c89bSHeiko Schocher			ethernet@11300 {
1939239c89bSHeiko Schocher				device_type = "network";
1949239c89bSHeiko Schocher				compatible = "fsl,cpm2-fcc-enet";
1959239c89bSHeiko Schocher				reg = <0x11300 0x20 0x8400 0x100 0x11390 0x1>;
1969239c89bSHeiko Schocher				local-mac-address = [ 00 01 02 03 04 07 ];
1979239c89bSHeiko Schocher				interrupts = <32 8>;
1989239c89bSHeiko Schocher				interrupt-parent = <&PIC>;
1999239c89bSHeiko Schocher				phy-handle = <&phy0>;
2009239c89bSHeiko Schocher				linux,network-index = <1>;
2019239c89bSHeiko Schocher				fsl,cpm-command = <0x12000300>;
2029239c89bSHeiko Schocher			};
2039239c89bSHeiko Schocher
2049239c89bSHeiko Schocher			/* FCC2 to redundant core unit over backplane */
2059239c89bSHeiko Schocher			ethernet@11320 {
2069239c89bSHeiko Schocher				device_type = "network";
2079239c89bSHeiko Schocher				compatible = "fsl,cpm2-fcc-enet";
2089239c89bSHeiko Schocher				reg = <0x11320 0x20 0x8500 0x100 0x113b0 0x1>;
2099239c89bSHeiko Schocher				local-mac-address = [ 00 01 02 03 04 08 ];
2109239c89bSHeiko Schocher				interrupts = <33 8>;
2119239c89bSHeiko Schocher				interrupt-parent = <&PIC>;
2129239c89bSHeiko Schocher				phy-handle = <&phy1>;
2139239c89bSHeiko Schocher				linux,network-index = <2>;
2149239c89bSHeiko Schocher				fsl,cpm-command = <0x16200300>;
2159239c89bSHeiko Schocher			};
21663716633SHeiko Schocher		};
21763716633SHeiko Schocher
218c513e7c9SHolger Brunck		cpm2_pio_c: gpio-controller@10d40 {
219c513e7c9SHolger Brunck			#gpio-cells = <2>;
220c513e7c9SHolger Brunck			compatible = "fsl,cpm2-pario-bank";
221c513e7c9SHolger Brunck			reg = <0x10d40 0x14>;
222c513e7c9SHolger Brunck			gpio-controller;
223c513e7c9SHolger Brunck		};
224c513e7c9SHolger Brunck
22563716633SHeiko Schocher		PIC: interrupt-controller@10c00 {
22663716633SHeiko Schocher			#interrupt-cells = <2>;
22763716633SHeiko Schocher			interrupt-controller;
22863716633SHeiko Schocher			reg = <0x10c00 0x80>;
22963716633SHeiko Schocher			compatible = "fsl,mpc8247-pic", "fsl,pq2-pic";
23063716633SHeiko Schocher		};
23163716633SHeiko Schocher	};
23263716633SHeiko Schocher};
233