/*
 * 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 Quick Start Board";
	compatible = "fsl,imx53-qsb", "fsl,imx53";

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

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

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

				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-qsb";
				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";

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

			i2c@63fc8000 { /* I2C1 */
				status = "okay";

				accelerometer: mma8450@1c {
					compatible = "fsl,mma8450";
					reg = <0x1c>;
				};

				pmic: dialog@48 {
					compatible = "dialog,da9053", "dialog,da9052";
					reg = <0x48>;
				};
			};

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

	gpio-keys {
		compatible = "gpio-keys";

		power {
			label = "Power Button";
			gpios = <&gpio0 8 0>; /* GPIO1_8 */
			linux,code = <116>; /* KEY_POWER */
			gpio-key,wakeup;
		};

		volume-up {
			label = "Volume Up";
			gpios = <&gpio1 14 0>; /* GPIO2_14 */
			linux,code = <115>; /* KEY_VOLUMEUP */
		};

		volume-down {
			label = "Volume Down";
			gpios = <&gpio1 15 0>; /* GPIO2_15 */
			linux,code = <114>; /* KEY_VOLUMEDOWN */
		};
	};

	leds {
		compatible = "gpio-leds";

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