/*
 * Author: Anil Kumar <anilk4.v@gmail.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 = "TimLL OMAP3 Devkit8000";
	compatible = "timll,omap3-devkit8000", "ti,omap3";

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

	leds {
		compatible = "gpio-leds";

		heartbeat {
			label = "devkit8000::led1";
			gpios = <&gpio6 26 GPIO_ACTIVE_HIGH>;	/* 186 -> LED1 */
			default-state = "on";
			linux,default-trigger = "heartbeat";
		};

		mmc {
			label = "devkit8000::led2";
			gpios = <&gpio6 3 GPIO_ACTIVE_HIGH>;	/* 163 -> LED2 */
			default-state = "on";
			linux,default-trigger = "none";
		};

		usr {
			label = "devkit8000::led3";
			gpios = <&gpio6 4 GPIO_ACTIVE_HIGH>;	/* 164 -> LED3 */
			default-state = "on";
			linux,default-trigger = "usr";
                };

	};

	sound {
		compatible = "ti,omap-twl4030";
		ti,model = "devkit8000";

		ti,mcbsp = <&mcbsp2>;
		ti,codec = <&twl_audio>;
		ti,audio-routing =
			"Ext Spk", "PREDRIVEL",
			"Ext Spk", "PREDRIVER",
			"MAINMIC", "Main Mic",
			"Main Mic", "Mic Bias 1";
	};
};

&i2c1 {
	clock-frequency = <2600000>;

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

		twl_audio: audio {
			compatible = "ti,twl4030-audio";
			codec {
			};
		};
	};
};

&i2c2 {
	status = "disabled";
};

&i2c3 {
	status = "disabled";
};

#include "twl4030.dtsi"
#include "twl4030_omap3.dtsi"

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

&mmc2 {
	status = "disabled";
};

&mmc3 {
	status = "disabled";
};

&wdt2 {
	status = "disabled";
};

&mcbsp2 {
	status = "okay";
};

&gpmc {
	ranges = <0 0 0x30000000 0x1000000>;       /* CS0: 16MB for NAND */

	nand@0,0 {
		reg = <0 0 4>; /* CS0, offset 0, IO size 4 */
		nand-bus-width = <16>;

		gpmc,sync-clk-ps = <0>;
		gpmc,cs-on-ns = <0>;
		gpmc,cs-rd-off-ns = <44>;
		gpmc,cs-wr-off-ns = <44>;
		gpmc,adv-on-ns = <6>;
		gpmc,adv-rd-off-ns = <34>;
		gpmc,adv-wr-off-ns = <44>;
		gpmc,we-off-ns = <40>;
		gpmc,oe-off-ns = <54>;
		gpmc,access-ns = <64>;
		gpmc,rd-cycle-ns = <82>;
		gpmc,wr-cycle-ns = <82>;
		gpmc,wr-access-ns = <40>;
		gpmc,wr-data-mux-bus-ns = <0>;

		#address-cells = <1>;
		#size-cells = <1>;

		x-loader@0 {
			label = "X-Loader";
			reg = <0 0x80000>;
		};

		bootloaders@80000 {
			label = "U-Boot";
			reg = <0x80000 0x1e0000>;
		};

		bootloaders_env@260000 {
			label = "U-Boot Env";
			reg = <0x260000 0x20000>;
		};

		kernel@280000 {
			label = "Kernel";
			reg = <0x280000 0x400000>;
		};

		filesystem@680000 {
			label = "File System";
			reg = <0x680000 0xf980000>;
		};
	};
};
