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

	chosen {
		bootargs = "console=ttymxc0,115200 root=/dev/mmcblk0p3 rootwait";
	};

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

	soc {
		aips@50000000 { /* AIPS1 */
			spba@50000000 {
				esdhc@50004000 { /* ESDHC1 */
					cd-gpios = <&gpio2 13 0>; /* GPIO3_13 */
					wp-gpios = <&gpio2 14 0>; /* GPIO3_14 */
					status = "okay";
				};

				ecspi@50010000 { /* ECSPI1 */
					fsl,spi-num-chipselects = <2>;
					cs-gpios = <&gpio1 30 0>, /* GPIO2_30 */
						   <&gpio2 19 0>; /* GPIO3_19 */
					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 */
					cd-gpios = <&gpio2 11 0>; /* GPIO3_11 */
					wp-gpios = <&gpio2 12 0>; /* GPIO3_12 */
					status = "okay";
				};
			};

			wdog@53f98000 { /* WDOG1 */
				status = "okay";
			};

			iomuxc@53fa8000 {
				compatible = "fsl,imx53-iomuxc-evk";
				reg = <0x53fa8000 0x4000>;
			};

			uart0: uart@53fbc000 { /* UART1 */
				status = "okay";
			};
		};

		aips@60000000 {	/* AIPS2 */
			sdma@63fb0000 {
				fsl,sdma-ram-script-name = "imx/sdma/sdma-imx53.bin";
			};

			i2c@63fc4000 { /* I2C2 */
				status = "okay";

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

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

			fec@63fec000 {
				phy-mode = "rmii";
				phy-reset-gpios = <&gpio6 6 0>; /* GPIO7_6 */
				status = "okay";
			};
		};
	};

	leds {
		compatible = "gpio-leds";

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