/*
 * 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/ "omap5.dtsi"
/include/ "samsung_k3pe0e000b.dtsi"

/ {
	model = "TI OMAP5 EVM board";
	compatible = "ti,omap5-evm", "ti,omap5";

	memory {
		device_type = "memory";
		reg = <0x80000000 0x7F000000>; /* 2032 MB */
	};

	vmmcsd_fixed: fixedregulator-mmcsd {
		compatible = "regulator-fixed";
		regulator-name = "vmmcsd_fixed";
		regulator-min-microvolt = <3000000>;
		regulator-max-microvolt = <3000000>;
	};

};

&omap5_pmx_core {
	pinctrl-names = "default";
	pinctrl-0 = <
			&twl6040_pins
			&mcpdm_pins
			&dmic_pins
			&mcbsp1_pins
			&mcbsp2_pins
	>;

	twl6040_pins: pinmux_twl6040_pins {
		pinctrl-single,pins = <
			0x18a 0x6	/* perslimbus2_clock.gpio5_145 OUTPUT | MODE6 */
		>;
	};

	mcpdm_pins: pinmux_mcpdm_pins {
		pinctrl-single,pins = <
			0x142 0x108	/* abe_clks.abe_clks INPUT PULLDOWN | MODE0 */
			0x15c 0x108	/* abemcpdm_ul_data.abemcpdm_ul_data INPUT PULLDOWN | MODE0 */
			0x15e 0x108	/* abemcpdm_dl_data.abemcpdm_dl_data INPUT PULLDOWN | MODE0 */
			0x160 0x118	/* abemcpdm_frame.abemcpdm_frame INPUT PULLUP | MODE0 */
			0x162 0x108	/* abemcpdm_lb_clk.abemcpdm_lb_clk INPUT PULLDOWN | MODE0 */
		>;
	};

	dmic_pins: pinmux_dmic_pins {
		pinctrl-single,pins = <
			0x144 0x100	/* abedmic_din1.abedmic_din1 INPUT | MODE0 */
			0x146 0x100	/* abedmic_din2.abedmic_din2 INPUT | MODE0 */
			0x148 0x100	/* abedmic_din3.abedmic_din3 INPUT | MODE0 */
			0x14a 0		/* abedmic_clk1.abedmic_clk1 OUTPUT | MODE0 */
		>;
	};

	mcbsp1_pins: pinmux_mcbsp1_pins {
		pinctrl-single,pins = <
			0x14c 0x101	/* abedmic_clk2.abemcbsp1_fsx INPUT | MODE1 */
			0x14e 0x9	/* abedmic_clk3.abemcbsp1_dx OUTPUT PULLDOWN | MODE1 */
			0x150 0x101	/* abeslimbus1_clock.abemcbsp1_clkx INPUT | MODE0 */
			0x152 0x109	/* abeslimbus1_data.abemcbsp1_dr INPUT PULLDOWN | MODE1 */
		>;
	};

	mcbsp2_pins: pinmux_mcbsp2_pins {
		pinctrl-single,pins = <
			0x154 0x108	/* abemcbsp2_dr.abemcbsp2_dr INPUT PULLDOWN | MODE0 */
			0x156 0x8	/* abemcbsp2_dx.abemcbsp2_dx OUTPUT PULLDOWN | MODE0 */
			0x158 0x100	/* abemcbsp2_fsx.abemcbsp2_fsx INPUT | MODE0 */
			0x15a 0x100	/* abemcbsp2_clkx.abemcbsp2_clkx INPUT | MODE0 */
		>;
	};

        i2c1_pins: pinmux_i2c1_pins {
                pinctrl-single,pins = <
                        0x1b2 0x118        /* i2c1_scl PULLUP | INPUTENABLE | MODE0 */
                        0x1b4 0x118        /* i2c1_sda PULLUP | INPUTENABLE | MODE0 */
                >;
        };

	i2c2_pins: pinmux_i2c2_pins {
		pinctrl-single,pins = <
			0x178 0x100        /* i2c2_scl INPUTENABLE | MODE0 */
			0x17a 0x100        /* i2c2_sda INPUTENABLE | MODE0 */
		>;
	};

	i2c3_pins: pinmux_i2c3_pins {
		pinctrl-single,pins = <
			0x13a 0x100        /* i2c3_scl INPUTENABLE | MODE0 */
			0x13c 0x100     /* i2c3_sda INPUTENABLE | MODE0 */
		>;
	};

	i2c4_pins: pinmux_i2c4_pins {
		pinctrl-single,pins = <
			0xb8 0x100        /* i2c4_scl INPUTENABLE | MODE0 */
			0xba 0x100     /* i2c4_sda INPUTENABLE | MODE0 */
		>;
	};

	i2c5_pins: pinmux_i2c5_pins {
		pinctrl-single,pins = <
			0x184 0x100        /* i2c5_scl INPUTENABLE | MODE0 */
			0x186 0x100     /* i2c5_sda INPUTENABLE | MODE0 */
		>;
	};

	mcspi2_pins: pinmux_mcspi2_pins {
		pinctrl-single,pins = <
			0xbc 0x100	/*  MCSPI2_CLK INPUTENABLE | MODE0 */
			0xbe 0x100	/*  MCSPI2_SIMO INPUTENABLE | MODE0 */
			0xc0 0x118	/*  MCSPI2_SOMI PULLUP | INPUTENABLE | MODE0*/
			0xc2 0x0	/*  MCSPI2_CS MODE0*/
		>;
	};

	mcspi3_pins: pinmux_mcspi3_pins {
		pinctrl-single,pins = <
			0x78 0x101	/*  MCSPI2_SOMI INPUTENABLE | MODE1 */
			0x7a 0x101	/*  MCSPI2_CS INPUTENABLE | MODE1 */
			0x7c 0x101	/*  MCSPI2_SIMO INPUTENABLE | MODE1 */
			0x7e 0x101	/*  MCSPI2_CLK INPUTENABLE | MODE1 */
		>;
	};

	mcspi4_pins: pinmux_mcspi4_pins {
		pinctrl-single,pins = <
			0x164 0x101	/*  MCSPI2_CLK INPUTENABLE | MODE1 */
			0x168 0x101	/*  MCSPI2_SIMO INPUTENABLE | MODE1 */
			0x16a 0x101	/*  MCSPI2_SOMI INPUTENABLE | MODE1 */
			0x16c 0x101	/*  MCSPI2_CS INPUTENABLE | MODE1 */
		>;
	};
};

&mmc1 {
	vmmc-supply = <&vmmcsd_fixed>;
	bus-width = <4>;
};

&mmc2 {
	vmmc-supply = <&vmmcsd_fixed>;
	bus-width = <8>;
	ti,non-removable;
};

&mmc3 {
	bus-width = <4>;
	ti,non-removable;
};

&mmc4 {
	status = "disabled";
};

&mmc5 {
	status = "disabled";
};

&i2c1 {
	pinctrl-names = "default";
	pinctrl-0 = <&i2c1_pins>;

	clock-frequency = <400000>;
};

&i2c2 {
	pinctrl-names = "default";
	pinctrl-0 = <&i2c2_pins>;

	clock-frequency = <400000>;

	/* Pressure Sensor */
	bmp085@77 {
		compatible = "bosch,bmp085";
		reg = <0x77>;
	};
};

&i2c3 {
	pinctrl-names = "default";
	pinctrl-0 = <&i2c3_pins>;

	clock-frequency = <400000>;
};

&i2c4 {
	pinctrl-names = "default";
	pinctrl-0 = <&i2c4_pins>;

	clock-frequency = <400000>;

	/* Temperature Sensor */
	tmp102@48{
		compatible = "ti,tmp102";
		reg = <0x48>;
	};
};

&i2c5 {
	pinctrl-names = "default";
	pinctrl-0 = <&i2c5_pins>;

	clock-frequency = <400000>;
};

&keypad {
	keypad,num-rows = <8>;
	keypad,num-columns = <8>;
	linux,keymap = <0x02020073	/* VOLUP */
			0x02030072	/* VOLDOWM */
			0x020400e7	/* SEND */
			0x02050066	/* HOME */
			0x0206006b	/* END */
			0x020700d9>;	/* SEARCH */
	linux,input-no-autorepeat;
};

&mcbsp3 {
	status = "disabled";
};

&emif1 {
	cs1-used;
	device-handle = <&samsung_K3PE0E000B>;
};

&emif2 {
	cs1-used;
	device-handle = <&samsung_K3PE0E000B>;
};

&mcspi1 {

};

&mcspi2 {
	pinctrl-names = "default";
	pinctrl-0 = <&mcspi2_pins>;
};

&mcspi3 {
	pinctrl-names = "default";
	pinctrl-0 = <&mcspi3_pins>;
};

&mcspi4 {
	pinctrl-names = "default";
	pinctrl-0 = <&mcspi4_pins>;
};