/*
 * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 as
 * published by the Free Software Foundation.
 */
/dts-v1/;

#include "omap2420.dtsi"

/ {
	model = "TI OMAP2420 H4 board";
	compatible = "ti,omap2420-h4", "ti,omap2420", "ti,omap2";

	memory@80000000 {
		device_type = "memory";
		reg = <0x80000000 0x4000000>; /* 64 MB */
	};
};

&gpmc {
	ranges = <0 0 0x08000000 0x04000000>;

	nor@0,0 {
		compatible = "cfi-flash";
		linux,mtd-name= "intel,ge28f256l18b85";
		#address-cells = <1>;
		#size-cells = <1>;
		reg = <0 0 0x04000000>;
		bank-width = <2>;

		gpmc,mux-add-data = <2>;
		gpmc,cs-on-ns = <10>;
		gpmc,cs-rd-off-ns = <160>;
		gpmc,cs-wr-off-ns = <160>;
		gpmc,adv-on-ns = <20>;
		gpmc,adv-rd-off-ns = <50>;
		gpmc,adv-wr-off-ns = <50>;
		gpmc,oe-on-ns = <60>;
		gpmc,oe-off-ns = <120>;
		gpmc,we-on-ns = <60>;
		gpmc,we-off-ns = <120>;
		gpmc,rd-cycle-ns = <170>;
		gpmc,wr-cycle-ns = <170>;
		gpmc,access-ns = <150>;
		gpmc,page-burst-access-ns = <10>;

		partition@0 {
			label = "bootloader";
			reg = <0 0x20000>;
		};
		partition@20000 {
			label = "params";
			reg = <0x20000 0x20000>;
		};
		partition@40000 {
			label = "kernel";
			reg = <0x40000 0x200000>;
		};
		partition@240000 {
			label = "file-system";
			reg = <0x240000 0x3dc0000>;
		};
	};
};
