/*
 * GE PPC9A Device Tree Source
 *
 * Copyright 2008 GE Intelligent Platforms Embedded Systems, Inc.
 *
 * This program is free software; you can redistribute  it and/or modify it
 * under  the terms of  the GNU General  Public License as published by the
 * Free Software Foundation;  either version 2 of the  License, or (at your
 * option) any later version.
 *
 * Based on: SBS CM6 Device Tree Source
 * Copyright 2007 SBS Technologies GmbH & Co. KG
 * And: mpc8641_hpcn.dts (MPC8641 HPCN Device Tree Source)
 * Copyright 2006 Freescale Semiconductor Inc.
 */

/*
 * Compiled with dtc -I dts -O dtb -o gef_ppc9a.dtb gef_ppc9a.dts
 */

/include/ "mpc8641si-pre.dtsi"

/ {
	model = "GEF_PPC9A";
	compatible = "gef,ppc9a";

	memory {
		device_type = "memory";
		reg = <0x0 0x40000000>;	// set by uboot
	};

	lbc: localbus@fef05000 {
		reg = <0xfef05000 0x1000>;

		ranges = <0 0 0xff000000 0x01000000	// 16MB Boot flash
			  1 0 0xe8000000 0x08000000	// Paged Flash 0
			  2 0 0xe0000000 0x08000000	// Paged Flash 1
			  3 0 0xfc100000 0x00020000	// NVRAM
			  4 0 0xfc000000 0x00008000	// FPGA
			  5 0 0xfc008000 0x00008000	// AFIX FPGA
			  6 0 0xfd000000 0x00800000	// IO FPGA (8-bit)
			  7 0 0xfd800000 0x00800000>;	// IO FPGA (32-bit)

		/* flash@0,0 is a mirror of part of the memory in flash@1,0
		flash@0,0 {
			compatible = "gef,ppc9a-firmware-mirror", "cfi-flash";
			reg = <0x0 0x0 0x1000000>;
			bank-width = <4>;
			device-width = <2>;
			#address-cells = <1>;
			#size-cells = <1>;
			partition@0 {
				label = "firmware";
				reg = <0x0 0x1000000>;
				read-only;
			};
		};
		*/

		flash@1,0 {
			compatible = "gef,ppc9a-paged-flash", "cfi-flash";
			reg = <0x1 0x0 0x8000000>;
			bank-width = <4>;
			device-width = <2>;
			#address-cells = <1>;
			#size-cells = <1>;
			partition@0 {
				label = "user";
				reg = <0x0 0x7800000>;
			};
			partition@7800000 {
				label = "firmware";
				reg = <0x7800000 0x800000>;
				read-only;
			};
		};

		nvram@3,0 {
			device_type = "nvram";
			compatible = "simtek,stk14ca8";
			reg = <0x3 0x0 0x20000>;
		};

		fpga@4,0 {
			compatible = "gef,ppc9a-fpga-regs";
			reg = <0x4 0x0 0x40>;
		};

		wdt@4,2000 {
			compatible = "gef,ppc9a-fpga-wdt", "gef,fpga-wdt-1.00",
				"gef,fpga-wdt";
			reg = <0x4 0x2000 0x8>;
			interrupts = <0x1a 0x4>;
			interrupt-parent = <&gef_pic>;
		};
		/* Second watchdog available, driver currently supports one.
		wdt@4,2010 {
			compatible = "gef,ppc9a-fpga-wdt", "gef,fpga-wdt-1.00",
				"gef,fpga-wdt";
			reg = <0x4 0x2010 0x8>;
			interrupts = <0x1b 0x4>;
			interrupt-parent = <&gef_pic>;
		};
		*/
		gef_pic: pic@4,4000 {
			#interrupt-cells = <1>;
			interrupt-controller;
			compatible = "gef,ppc9a-fpga-pic", "gef,fpga-pic-1.00";
			reg = <0x4 0x4000 0x20>;
			interrupts = <0x8 0x9 0 0>;

		};
		gef_gpio: gpio@7,14000 {
			#gpio-cells = <2>;
			compatible = "gef,ppc9a-gpio", "gef,sbc610-gpio";
			reg = <0x7 0x14000 0x24>;
			gpio-controller;
		};
	};

	soc: soc@fef00000 {
		ranges = <0x0 0xfef00000 0x00100000>;

		i2c@3000 {
			hwmon@48 {
				compatible = "national,lm92";
				reg = <0x48>;
			};

			hwmon@4c {
				compatible = "adi,adt7461";
				reg = <0x4c>;
			};

			rtc@51 {
				compatible = "epson,rx8581";
				reg = <0x00000051>;
			};

			eti@6b {
				compatible = "dallas,ds1682";
				reg = <0x6b>;
			};
		};

		enet0: ethernet@24000 {
			tbi-handle = <&tbi0>;
			phy-handle = <&phy0>;
			phy-connection-type = "gmii";
		};

		mdio@24520 {
			phy0: ethernet-phy@0 {
				interrupt-parent = <&gef_pic>;
				interrupts = <0x9 0x4>;
				reg = <1>;
			};
			phy2: ethernet-phy@2 {
				interrupt-parent = <&gef_pic>;
				interrupts = <0x8 0x4>;
				reg = <3>;
			};
			tbi0: tbi-phy@11 {
				reg = <0x11>;
				device_type = "tbi-phy";
			};
		};

		enet1: ethernet@26000 {
			tbi-handle = <&tbi2>;
			phy-handle = <&phy2>;
			phy-connection-type = "gmii";
		};

		mdio@26520 {
			tbi2: tbi-phy@11 {
				reg = <0x11>;
				device_type = "tbi-phy";
			};
		};

		enet2: ethernet@25000 {
			status = "disabled";
		};

		mdio@25520 {
			status = "disabled";
		};

		enet3: ethernet@27000 {
			status = "disabled";
		};

		mdio@27520 {
			status = "disabled";
		};
	};

	pci0: pcie@fef08000 {
		reg = <0xfef08000 0x1000>;
		ranges = <0x02000000 0x0 0x80000000 0x80000000 0x0 0x40000000
			  0x01000000 0x0 0x00000000 0xfe000000 0x0 0x00400000>;

		pcie@0 {
			ranges = <0x02000000 0x0 0x80000000
				  0x02000000 0x0 0x80000000
				  0x0 0x40000000

				  0x01000000 0x0 0x00000000
				  0x01000000 0x0 0x00000000
				  0x0 0x00400000>;
		};
	};

	pci1: pcie@fef09000 {
		status = "disabled";
	};
};

/include/ "mpc8641si-post.dtsi"
