/*
 * Copyright (C) 2013 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/ "omap34xx.dtsi"

/ {
	model = "TI OMAP3430 SDP";
	compatible = "ti,omap3430-sdp", "ti,omap3";

	memory {
		device_type = "memory";
		reg = <0x80000000 0x10000000>; /* 256 MB */
	};
};

&i2c1 {
	clock-frequency = <2600000>;

	twl: twl@48 {
		reg = <0x48>;
		interrupts = <7>; /* SYS_NIRQ cascaded to intc */
	};
};

/include/ "twl4030.dtsi"

&mmc1 {
	vmmc-supply = <&vmmc1>;
	vmmc_aux-supply = <&vsim>;
	bus-width = <8>;
};

&mmc2 {
	status = "disabled";
};

&mmc3 {
	status = "disabled";
};

&gpmc {
	ranges = <0 0 0x10000000 0x08000000>,
		 <1 0 0x28000000 0x08000000>,
		 <2 0 0x20000000 0x10000000>;

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

		gpmc,mux-add-data = <2>;
		gpmc,cs-on-ns = <0>;
		gpmc,cs-rd-off-ns = <186>;
		gpmc,cs-wr-off-ns = <186>;
		gpmc,adv-on-ns = <12>;
		gpmc,adv-rd-off-ns = <48>;
		gpmc,adv-wr-off-ns = <48>;
		gpmc,oe-on-ns = <54>;
		gpmc,oe-off-ns = <168>;
		gpmc,we-on-ns = <54>;
		gpmc,we-off-ns = <168>;
		gpmc,rd-cycle-ns = <186>;
		gpmc,wr-cycle-ns = <186>;
		gpmc,access-ns = <114>;
		gpmc,page-burst-access-ns = <6>;
		gpmc,bus-turnaround-ns = <12>;
		gpmc,cycle2cycle-delay-ns = <18>;
		gpmc,wr-data-mux-bus-ns = <90>;
		gpmc,wr-access-ns = <186>;
		gpmc,cycle2cycle-samecsen;
		gpmc,cycle2cycle-diffcsen;

		partition@0 {
			label = "bootloader-nor";
			reg = <0 0x40000>;
		};
		partition@0x40000 {
			label = "params-nor";
			reg = <0x40000 0x40000>;
		};
		partition@0x80000 {
			label = "kernel-nor";
			reg = <0x80000 0x200000>;
		};
		partition@0x280000 {
			label = "filesystem-nor";
			reg = <0x240000 0x7d80000>;
		};
	};

	nand@1,0 {
		linux,mtd-name= "micron,mt29f1g08abb";
		#address-cells = <1>;
		#size-cells = <1>;
		reg = <1 0 0x08000000>;
		nand-bus-width = <8>;

		ti,nand-ecc-opt = "sw";
		gpmc,device-nand;
		gpmc,cs-on-ns = <0>;
		gpmc,cs-rd-off-ns = <36>;
		gpmc,cs-wr-off-ns = <36>;
		gpmc,adv-on-ns = <6>;
		gpmc,adv-rd-off-ns = <24>;
		gpmc,adv-wr-off-ns = <36>;
		gpmc,oe-on-ns = <6>;
		gpmc,oe-off-ns = <48>;
		gpmc,we-on-ns = <6>;
		gpmc,we-off-ns = <30>;
		gpmc,rd-cycle-ns = <72>;
		gpmc,wr-cycle-ns = <72>;
		gpmc,access-ns = <54>;
		gpmc,wr-access-ns = <30>;

		partition@0 {
			label = "xloader-nand";
			reg = <0 0x80000>;
		};
		partition@0x80000 {
			label = "bootloader-nand";
			reg = <0x80000 0x140000>;
		};
		partition@0x1c0000 {
			label = "params-nand";
			reg = <0x1c0000 0xc0000>;
		};
		partition@0x280000 {
			label = "kernel-nand";
			reg = <0x280000 0x500000>;
		};
		partition@0x780000 {
			label = "filesystem-nand";
			reg = <0x780000 0x7880000>;
		};
	};

	onenand@2,0 {
		linux,mtd-name= "samsung,kfm2g16q2m-deb8";
		#address-cells = <1>;
		#size-cells = <1>;
		reg = <2 0 0x10000000>;

		gpmc,device-width = <2>;
		gpmc,mux-add-data = <2>;
		gpmc,cs-on-ns = <0>;
		gpmc,cs-rd-off-ns = <84>;
		gpmc,cs-wr-off-ns = <72>;
		gpmc,adv-on-ns = <0>;
		gpmc,adv-rd-off-ns = <18>;
		gpmc,adv-wr-off-ns = <18>;
		gpmc,oe-on-ns = <30>;
		gpmc,oe-off-ns = <84>;
		gpmc,we-on-ns = <0>;
		gpmc,we-off-ns = <42>;
		gpmc,rd-cycle-ns = <108>;
		gpmc,wr-cycle-ns = <96>;
		gpmc,access-ns = <78>;
		gpmc,wr-data-mux-bus-ns = <30>;

		partition@0 {
			label = "xloader-onenand";
			reg = <0 0x80000>;
		};
		partition@0x80000 {
			label = "bootloader-onenand";
			reg = <0x80000 0x40000>;
		};
		partition@0xc0000 {
			label = "params-onenand";
			reg = <0xc0000 0x20000>;
		};
		partition@0xe0000 {
			label = "kernel-onenand";
			reg = <0xe0000 0x200000>;
		};
		partition@0x2e0000 {
			label = "filesystem-onenand";
			reg = <0x2e0000 0xfd20000>;
		};
	};
};
