/*
 * 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>;
	};

	soc {
		aips@50000000 { /* AIPS1 */
			spba@50000000 {
				esdhc@50004000 { /* ESDHC1 */
					pinctrl-names = "default";
					pinctrl-0 = <&pinctrl_esdhc1_1>;
					cd-gpios = <&gpio3 13 0>;
					wp-gpios = <&gpio3 14 0>;
					status = "okay";
				};

				ecspi@50010000 { /* 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>;
						};
					};
				};

				esdhc@50020000 { /* ESDHC3 */
					pinctrl-names = "default";
					pinctrl-0 = <&pinctrl_esdhc3_1>;
					cd-gpios = <&gpio3 11 0>;
					wp-gpios = <&gpio3 12 0>;
					status = "okay";
				};
			};

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

				hog {
					pinctrl_hog: hoggrp {
						fsl,pins = <
							424  0x80000000	/* MX53_PAD_EIM_EB2__GPIO2_30 */
							449  0x80000000	/* MX53_PAD_EIM_D19__GPIO3_19 */
							693  0x80000000	/* MX53_PAD_EIM_DA11__GPIO3_11 */
							697  0x80000000	/* MX53_PAD_EIM_DA12__GPIO3_12 */
							701  0x80000000	/* MX53_PAD_EIM_DA13__GPIO3_13 */
							705  0x80000000	/* MX53_PAD_EIM_DA14__GPIO3_14 */
							868  0x80000000	/* MX53_PAD_PATA_DA_0__GPIO7_6 */
							873  0x80000000	/* MX53_PAD_PATA_DA_1__GPIO7_7 */
						>;
					};
				};
			};

			uart1: serial@53fbc000 {
				pinctrl-names = "default";
				pinctrl-0 = <&pinctrl_uart1_1>;
				status = "okay";
			};
		};

		aips@60000000 {	/* AIPS2 */
			i2c@63fc4000 { /* 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>;
				};
			};

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

	leds {
		compatible = "gpio-leds";

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