/*
 * Copyright 2012 Armadeus Systems - <support@armadeus.com>
 *
 * 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 "imx28.dtsi"

/ {
	model = "Armadeus Systems APF28 module";
	compatible = "armadeus,imx28-apf28", "fsl,imx28";

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

	apb@80000000 {
		apbh@80000000 {
			gpmi-nand@8000c000 {
				pinctrl-names = "default";
				pinctrl-0 = <&gpmi_pins_a &gpmi_status_cfg>;
				status = "okay";

				partition@0 {
					label = "u-boot";
					reg = <0x0 0x300000>;
				};

				partition@300000 {
					label = "env";
					reg = <0x300000 0x80000>;
				};

				partition@380000 {
					label = "env2";
					reg = <0x380000 0x80000>;
				};

				partition@400000 {
					label = "dtb";
					reg = <0x400000 0x80000>;
				};

				partition@480000 {
					label = "splash";
					reg = <0x480000 0x80000>;
				};

				partition@500000 {
					label = "kernel";
					reg = <0x500000 0x800000>;
				};

				partition@d00000 {
					label = "rootfs";
					reg = <0xd00000 0xf300000>;
				};
			};
		};

		apbx@80040000 {
			duart: serial@80074000 {
				pinctrl-names = "default";
				pinctrl-0 = <&duart_pins_a>;
				status = "okay";
			};
		};
	};

	ahb@80080000 {
		mac0: ethernet@800f0000 {
			phy-mode = "rmii";
			pinctrl-names = "default";
			pinctrl-0 = <&mac0_pins_a>;
			phy-reset-gpios = <&gpio4 13 GPIO_ACTIVE_LOW>;
			status = "okay";
		};
	};
};
