/*
 * Copyright 2012 Stefan Roese <sr@denx.de>
 *
 * The code contained herein is licensed under the GNU General Public
 * License. You may obtain a copy of the GNU General Public License
 * Version 2 or later at the following locations:
 *
 * http://www.opensource.org/licenses/gpl-license.html
 * http://www.gnu.org/copyleft/gpl.html
 */

/dts-v1/;
/include/ "spear600.dtsi"

/ {
	model = "ST SPEAr600 Evaluation Board";
	compatible = "st,spear600-evb", "st,spear600";
	#address-cells = <1>;
	#size-cells = <1>;

	memory {
		device_type = "memory";
		reg = <0 0x10000000>;
	};

	ahb {
		dma@fc400000 {
			status = "okay";
		};

		gmac: ethernet@e0800000 {
			phy-mode = "gmii";
			status = "okay";
		};

		smi: flash@fc000000 {
			status = "okay";
			clock-rate=<50000000>;

			flash@f8000000 {
				#address-cells = <1>;
				#size-cells = <1>;
				reg = <0xf8000000 0x800000>;
				st,smi-fast-mode;

				partition@0 {
					label = "xloader";
					reg = <0x0 0x10000>;
				};
				partition@10000 {
					label = "u-boot";
					reg = <0x10000 0x40000>;
				};
				partition@50000 {
					label = "linux";
					reg = <0x50000 0x2c0000>;
				};
				partition@310000 {
					label = "rootfs";
					reg = <0x310000 0x4f0000>;
				};
			};
		};

		apb {
			serial@d0000000 {
				status = "okay";
			};

			serial@d0080000 {
				status = "okay";
			};

			i2c@d0200000 {
				clock-frequency = <400000>;
				status = "okay";
			};
		};
	};
};
