/*
 * Copyright 2011 Freescale Semiconductor, Inc.
 * Copyright 2011 Linaro Ltd.
 *
 * 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 "imx53.dtsi"

/ {
	model = "Freescale i.MX53 Evaluation Kit";
	compatible = "fsl,imx53-evk", "fsl,imx53";

	memory {
		reg = <0x70000000 0x80000000>;
	};

	leds {
		compatible = "gpio-leds";

		green {
			label = "Heartbeat";
			gpios = <&gpio7 7 0>;
			linux,default-trigger = "heartbeat";
		};
	};
};

&esdhc1 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_esdhc1_1>;
	cd-gpios = <&gpio3 13 0>;
	wp-gpios = <&gpio3 14 0>;
	status = "okay";
};

&ecspi1 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_ecspi1_1>;
	fsl,spi-num-chipselects = <2>;
	cs-gpios = <&gpio2 30 0>, <&gpio3 19 0>;
	status = "okay";

	flash: at45db321d@1 {
		#address-cells = <1>;
		#size-cells = <1>;
		compatible = "atmel,at45db321d", "atmel,at45", "atmel,dataflash";
		spi-max-frequency = <25000000>;
		reg = <1>;

		partition@0 {
			label = "U-Boot";
			reg = <0x0 0x40000>;
			read-only;
		};

		partition@40000 {
			label = "Kernel";
			reg = <0x40000 0x3c0000>;
		};
	};
};

&esdhc3 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_esdhc3_1>;
	cd-gpios = <&gpio3 11 0>;
	wp-gpios = <&gpio3 12 0>;
	status = "okay";
};

&iomuxc {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_hog>;

	hog {
		pinctrl_hog: hoggrp {
			fsl,pins = <
				MX53_PAD_EIM_EB2__GPIO2_30  0x80000000
				MX53_PAD_EIM_D19__GPIO3_19  0x80000000
				MX53_PAD_EIM_DA11__GPIO3_11 0x80000000
				MX53_PAD_EIM_DA12__GPIO3_12 0x80000000
				MX53_PAD_EIM_DA13__GPIO3_13 0x80000000
				MX53_PAD_EIM_DA14__GPIO3_14 0x80000000
				MX53_PAD_PATA_DA_0__GPIO7_6 0x80000000
				MX53_PAD_PATA_DA_1__GPIO7_7 0x80000000
			>;
		};
	};
};

&uart1 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_uart1_1>;
	status = "okay";
};

&i2c2 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_i2c2_1>;
	status = "okay";

	pmic: mc13892@08 {
		compatible = "fsl,mc13892", "fsl,mc13xxx";
		reg = <0x08>;
	};

	codec: sgtl5000@0a {
		compatible = "fsl,sgtl5000";
		reg = <0x0a>;
	};
};

&fec {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_fec_1>;
	phy-mode = "rmii";
	phy-reset-gpios = <&gpio7 6 0>;
	status = "okay";
};
