xref: /openbmc/linux/arch/powerpc/boot/dts/mgcoge.dts (revision fd20b60a)
12874c5fdSThomas Gleixner// SPDX-License-Identifier: GPL-2.0-or-later
263716633SHeiko Schocher/*
363716633SHeiko Schocher * Device Tree for the MGCOGE plattform from keymile
463716633SHeiko Schocher *
563716633SHeiko Schocher * Copyright 2008 DENX Software Engineering GmbH
663716633SHeiko Schocher * Heiko Schocher <hs@denx.de>
763716633SHeiko Schocher */
863716633SHeiko Schocher
963716633SHeiko Schocher/dts-v1/;
1063716633SHeiko Schocher/ {
1163716633SHeiko Schocher	model = "MGCOGE";
12c513e7c9SHolger Brunck	compatible = "keymile,km82xx";
1363716633SHeiko Schocher	#address-cells = <1>;
1463716633SHeiko Schocher	#size-cells = <1>;
1563716633SHeiko Schocher
1663716633SHeiko Schocher	aliases {
1763716633SHeiko Schocher		ethernet0 = &eth0;
1863716633SHeiko Schocher		serial0 = &smc2;
1963716633SHeiko Schocher	};
2063716633SHeiko Schocher
2163716633SHeiko Schocher	cpus {
2263716633SHeiko Schocher		#address-cells = <1>;
2363716633SHeiko Schocher		#size-cells = <0>;
2463716633SHeiko Schocher
2563716633SHeiko Schocher		PowerPC,8247@0 {
2663716633SHeiko Schocher			device_type = "cpu";
2763716633SHeiko Schocher			reg = <0>;
2863716633SHeiko Schocher			d-cache-line-size = <32>;
2963716633SHeiko Schocher			i-cache-line-size = <32>;
3063716633SHeiko Schocher			d-cache-size = <16384>;
3163716633SHeiko Schocher			i-cache-size = <16384>;
3263716633SHeiko Schocher			timebase-frequency = <0>; /* Filled in by U-Boot */
3363716633SHeiko Schocher			clock-frequency = <0>; /* Filled in by U-Boot */
3463716633SHeiko Schocher			bus-frequency = <0>; /* Filled in by U-Boot */
3563716633SHeiko Schocher		};
3663716633SHeiko Schocher	};
3763716633SHeiko Schocher
3863716633SHeiko Schocher	localbus@f0010100 {
3963716633SHeiko Schocher		compatible = "fsl,mpc8247-localbus",
4063716633SHeiko Schocher		             "fsl,pq2-localbus",
4163716633SHeiko Schocher		             "simple-bus";
4263716633SHeiko Schocher		#address-cells = <2>;
4363716633SHeiko Schocher		#size-cells = <1>;
4463716633SHeiko Schocher		reg = <0xf0010100 0x40>;
4563716633SHeiko Schocher
4663716633SHeiko Schocher		ranges = <0 0 0xfe000000 0x00400000
47c513e7c9SHolger Brunck			  1 0 0x30000000 0x00010000
48c513e7c9SHolger Brunck			  2 0 0x40000000 0x00010000
49c513e7c9SHolger Brunck			  5 0 0x50000000 0x04000000
50c513e7c9SHolger Brunck			>;
5163716633SHeiko Schocher
5263716633SHeiko Schocher		flash@0,0 {
5363716633SHeiko Schocher			compatible = "cfi-flash";
5463716633SHeiko Schocher			reg = <0 0x0 0x400000>;
5563716633SHeiko Schocher			#address-cells = <1>;
5663716633SHeiko Schocher			#size-cells = <1>;
5763716633SHeiko Schocher			bank-width = <1>;
5863716633SHeiko Schocher			device-width = <1>;
5963716633SHeiko Schocher			partition@0 {
6063716633SHeiko Schocher				label = "u-boot";
61c513e7c9SHolger Brunck				reg = <0x00000 0xC0000>;
6263716633SHeiko Schocher			};
63c513e7c9SHolger Brunck			partition@1 {
6463716633SHeiko Schocher				label = "env";
65c513e7c9SHolger Brunck				reg = <0xC0000 0x20000>;
6663716633SHeiko Schocher			};
67c513e7c9SHolger Brunck			partition@2 {
68c513e7c9SHolger Brunck				label = "envred";
69c513e7c9SHolger Brunck				reg = <0xE0000 0x20000>;
7063716633SHeiko Schocher			};
71c513e7c9SHolger Brunck			partition@3 {
72c513e7c9SHolger Brunck				label = "free";
73c513e7c9SHolger Brunck				reg = <0x100000 0x300000>;
7463716633SHeiko Schocher			};
7563716633SHeiko Schocher		};
7663716633SHeiko Schocher
7763716633SHeiko Schocher		flash@5,0 {
7863716633SHeiko Schocher			compatible = "cfi-flash";
79c513e7c9SHolger Brunck			reg = <5 0x00000000 0x02000000
80c513e7c9SHolger Brunck			       5 0x02000000 0x02000000>;
8163716633SHeiko Schocher			#address-cells = <1>;
8263716633SHeiko Schocher			#size-cells = <1>;
8363716633SHeiko Schocher			bank-width = <2>;
84c513e7c9SHolger Brunck			partition@app { /* 64 MBytes */
85c513e7c9SHolger Brunck				label = "ubi0";
86c513e7c9SHolger Brunck				reg = <0x00000000 0x04000000>;
8763716633SHeiko Schocher			};
8863716633SHeiko Schocher		};
8963716633SHeiko Schocher	};
9063716633SHeiko Schocher
9163716633SHeiko Schocher	memory {
9263716633SHeiko Schocher		device_type = "memory";
9363716633SHeiko Schocher		reg = <0 0>; /* Filled in by U-Boot */
9463716633SHeiko Schocher	};
9563716633SHeiko Schocher
9663716633SHeiko Schocher	soc@f0000000 {
9763716633SHeiko Schocher		#address-cells = <1>;
9863716633SHeiko Schocher		#size-cells = <1>;
9963716633SHeiko Schocher		compatible = "fsl,mpc8247-immr", "fsl,pq2-soc", "simple-bus";
10063716633SHeiko Schocher		ranges = <0x00000000 0xf0000000 0x00053000>;
10163716633SHeiko Schocher
10263716633SHeiko Schocher		// Temporary until code stops depending on it.
10363716633SHeiko Schocher		device_type = "soc";
10463716633SHeiko Schocher
10563716633SHeiko Schocher		cpm@119c0 {
10663716633SHeiko Schocher			#address-cells = <1>;
10763716633SHeiko Schocher			#size-cells = <1>;
10863716633SHeiko Schocher			#interrupt-cells = <2>;
10963716633SHeiko Schocher			compatible = "fsl,mpc8247-cpm", "fsl,cpm2",
11063716633SHeiko Schocher					"simple-bus";
11163716633SHeiko Schocher			reg = <0x119c0 0x30>;
11263716633SHeiko Schocher			ranges;
11363716633SHeiko Schocher
11463716633SHeiko Schocher			muram {
11563716633SHeiko Schocher				compatible = "fsl,cpm-muram";
11663716633SHeiko Schocher				#address-cells = <1>;
11763716633SHeiko Schocher				#size-cells = <1>;
11863716633SHeiko Schocher				ranges = <0 0 0x10000>;
11963716633SHeiko Schocher
12063716633SHeiko Schocher				data@0 {
12163716633SHeiko Schocher					compatible = "fsl,cpm-muram-data";
12263716633SHeiko Schocher					reg = <0x80 0x1f80 0x9800 0x800>;
12363716633SHeiko Schocher				};
12463716633SHeiko Schocher			};
12563716633SHeiko Schocher
12663716633SHeiko Schocher			brg@119f0 {
12763716633SHeiko Schocher				compatible = "fsl,mpc8247-brg",
12863716633SHeiko Schocher				             "fsl,cpm2-brg",
12963716633SHeiko Schocher				             "fsl,cpm-brg";
13063716633SHeiko Schocher				reg = <0x119f0 0x10 0x115f0 0x10>;
13163716633SHeiko Schocher			};
13263716633SHeiko Schocher
13363716633SHeiko Schocher			/* Monitor port/SMC2 */
13463716633SHeiko Schocher			smc2: serial@11a90 {
13563716633SHeiko Schocher				device_type = "serial";
13663716633SHeiko Schocher				compatible = "fsl,mpc8247-smc-uart",
13763716633SHeiko Schocher				             "fsl,cpm2-smc-uart";
13863716633SHeiko Schocher				reg = <0x11a90 0x20 0x88fc 0x02>;
13963716633SHeiko Schocher				interrupts = <5 8>;
14063716633SHeiko Schocher				interrupt-parent = <&PIC>;
14163716633SHeiko Schocher				fsl,cpm-brg = <2>;
14263716633SHeiko Schocher				fsl,cpm-command = <0x21200000>;
14363716633SHeiko Schocher				current-speed = <0>; /* Filled in by U-Boot */
14463716633SHeiko Schocher			};
14563716633SHeiko Schocher
14663716633SHeiko Schocher			eth0: ethernet@11a60 {
14763716633SHeiko Schocher				device_type = "network";
14863716633SHeiko Schocher				compatible = "fsl,mpc8247-scc-enet",
14963716633SHeiko Schocher				             "fsl,cpm2-scc-enet";
15063716633SHeiko Schocher				reg = <0x11a60 0x20 0x8300 0x100 0x11390 1>;
15163716633SHeiko Schocher				local-mac-address = [ 00 00 00 00 00 00 ]; /* Filled in by U-Boot */
15263716633SHeiko Schocher				interrupts = <43 8>;
15363716633SHeiko Schocher				interrupt-parent = <&PIC>;
15463716633SHeiko Schocher				linux,network-index = <0>;
15563716633SHeiko Schocher				fsl,cpm-command = <0xce00000>;
15663716633SHeiko Schocher				fixed-link = <0 0 10 0 0>;
15763716633SHeiko Schocher			};
15863716633SHeiko Schocher
1599239c89bSHeiko Schocher			i2c@11860 {
1609239c89bSHeiko Schocher				compatible = "fsl,mpc8272-i2c",
1619239c89bSHeiko Schocher					     "fsl,cpm2-i2c";
1629239c89bSHeiko Schocher				reg = <0x11860 0x20 0x8afc 0x2>;
1639239c89bSHeiko Schocher				interrupts = <1 8>;
1649239c89bSHeiko Schocher				interrupt-parent = <&PIC>;
1659239c89bSHeiko Schocher				fsl,cpm-command = <0x29600000>;
1669239c89bSHeiko Schocher				#address-cells = <1>;
1679239c89bSHeiko Schocher				#size-cells = <0>;
1689239c89bSHeiko Schocher			};
1699239c89bSHeiko Schocher
1709239c89bSHeiko Schocher			mdio@10d40 {
1719239c89bSHeiko Schocher				compatible = "fsl,cpm2-mdio-bitbang";
1729239c89bSHeiko Schocher				reg = <0x10d00 0x14>;
1739239c89bSHeiko Schocher				#address-cells = <1>;
1749239c89bSHeiko Schocher				#size-cells = <0>;
1759239c89bSHeiko Schocher				fsl,mdio-pin = <12>;
1769239c89bSHeiko Schocher				fsl,mdc-pin = <13>;
1779239c89bSHeiko Schocher
1789239c89bSHeiko Schocher				phy0: ethernet-phy@0 {
1799239c89bSHeiko Schocher					reg = <0x0>;
1809239c89bSHeiko Schocher				};
1819239c89bSHeiko Schocher
1829239c89bSHeiko Schocher				phy1: ethernet-phy@1 {
1839239c89bSHeiko Schocher					reg = <0x1>;
1849239c89bSHeiko Schocher				};
1859239c89bSHeiko Schocher			};
1869239c89bSHeiko Schocher
1879239c89bSHeiko Schocher			/* FCC1 management to switch */
1889239c89bSHeiko Schocher			ethernet@11300 {
1899239c89bSHeiko Schocher				device_type = "network";
1909239c89bSHeiko Schocher				compatible = "fsl,cpm2-fcc-enet";
1919239c89bSHeiko Schocher				reg = <0x11300 0x20 0x8400 0x100 0x11390 0x1>;
1929239c89bSHeiko Schocher				local-mac-address = [ 00 01 02 03 04 07 ];
1939239c89bSHeiko Schocher				interrupts = <32 8>;
1949239c89bSHeiko Schocher				interrupt-parent = <&PIC>;
1959239c89bSHeiko Schocher				phy-handle = <&phy0>;
1969239c89bSHeiko Schocher				linux,network-index = <1>;
1979239c89bSHeiko Schocher				fsl,cpm-command = <0x12000300>;
1989239c89bSHeiko Schocher			};
1999239c89bSHeiko Schocher
2009239c89bSHeiko Schocher			/* FCC2 to redundant core unit over backplane */
2019239c89bSHeiko Schocher			ethernet@11320 {
2029239c89bSHeiko Schocher				device_type = "network";
2039239c89bSHeiko Schocher				compatible = "fsl,cpm2-fcc-enet";
2049239c89bSHeiko Schocher				reg = <0x11320 0x20 0x8500 0x100 0x113b0 0x1>;
2059239c89bSHeiko Schocher				local-mac-address = [ 00 01 02 03 04 08 ];
2069239c89bSHeiko Schocher				interrupts = <33 8>;
2079239c89bSHeiko Schocher				interrupt-parent = <&PIC>;
2089239c89bSHeiko Schocher				phy-handle = <&phy1>;
2099239c89bSHeiko Schocher				linux,network-index = <2>;
2109239c89bSHeiko Schocher				fsl,cpm-command = <0x16200300>;
2119239c89bSHeiko Schocher			};
2122a05e333SHolger Brunck
2132a05e333SHolger Brunck			usb@11b60 {
2142a05e333SHolger Brunck				compatible = "fsl,mpc8272-cpm-usb";
2152a05e333SHolger Brunck				mode = "peripheral";
2162a05e333SHolger Brunck				reg = <0x11b60 0x40 0x8b00 0x100>;
2172a05e333SHolger Brunck				interrupts = <11 8>;
2182a05e333SHolger Brunck				interrupt-parent = <&PIC>;
2192a05e333SHolger Brunck				usb-clock = <5>;
2202a05e333SHolger Brunck			};
2215d1d67e3SHolger Brunck			spi@11aa0 {
2225d1d67e3SHolger Brunck				cell-index = <0>;
2235d1d67e3SHolger Brunck				compatible = "fsl,spi", "fsl,cpm2-spi";
2245d1d67e3SHolger Brunck				reg = <0x11a80 0x40 0x89fc 0x2>;
2255d1d67e3SHolger Brunck				interrupts = <2 8>;
2265d1d67e3SHolger Brunck				interrupt-parent = <&PIC>;
2278c452a88SChristophe Leroy				cs-gpios = < &cpm2_pio_d 19 0>;
2285d1d67e3SHolger Brunck			};
2295d1d67e3SHolger Brunck
2305d1d67e3SHolger Brunck		};
2315d1d67e3SHolger Brunck
2325d1d67e3SHolger Brunck		cpm2_pio_d: gpio-controller@10d60 {
2335d1d67e3SHolger Brunck			#gpio-cells = <2>;
2345d1d67e3SHolger Brunck			compatible = "fsl,cpm2-pario-bank";
2355d1d67e3SHolger Brunck			reg = <0x10d60 0x14>;
2365d1d67e3SHolger Brunck			gpio-controller;
23763716633SHeiko Schocher		};
23863716633SHeiko Schocher
239c513e7c9SHolger Brunck		cpm2_pio_c: gpio-controller@10d40 {
240c513e7c9SHolger Brunck			#gpio-cells = <2>;
241c513e7c9SHolger Brunck			compatible = "fsl,cpm2-pario-bank";
242c513e7c9SHolger Brunck			reg = <0x10d40 0x14>;
243c513e7c9SHolger Brunck			gpio-controller;
244c513e7c9SHolger Brunck		};
245c513e7c9SHolger Brunck
24663716633SHeiko Schocher		PIC: interrupt-controller@10c00 {
24763716633SHeiko Schocher			#interrupt-cells = <2>;
24863716633SHeiko Schocher			interrupt-controller;
24963716633SHeiko Schocher			reg = <0x10c00 0x80>;
25063716633SHeiko Schocher			compatible = "fsl,mpc8247-pic", "fsl,pq2-pic";
25163716633SHeiko Schocher		};
25263716633SHeiko Schocher	};
25363716633SHeiko Schocher};
254