/*
 * Copyright 2012 Armadeus Systems - <support@armadeus.com>
 * Copyright 2012 Laurent Cans <laurent.cans@gmail.com>
 *
 * Based on mx51-babbage.dts
 * 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 "imx51.dtsi"

/ {
	model = "Armadeus Systems APF51 module";
	compatible = "armadeus,imx51-apf51", "fsl,imx51";

	memory {
		reg = <0x90000000 0x20000000>;
	};

	clocks {
		ckih1 {
			clock-frequency = <0>;
		};

		osc {
			clock-frequency = <33554432>;
		};
	};
};

&fec {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_fec_2>;
	phy-mode = "mii";
	phy-reset-gpios = <&gpio3 0 0>;
	phy-reset-duration = <1>;
	status = "okay";
};

&uart3 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_uart3_2>;
	status = "okay";
};
