/*
 * Copyright 2013 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
 */

/* APF27Dev is a docking board for the APF27 SOM */
#include "imx27-apf27.dts"

/ {
	model = "Armadeus Systems APF27Dev docking/development board";
	compatible = "armadeus,imx27-apf27dev", "armadeus,imx27-apf27", "fsl,imx27";

	display: display {
		model = "Chimei-LW700AT9003";
		native-mode = <&timing0>;
		bits-per-pixel = <16>;  /* non-standard but required */
		fsl,pcr = <0xfae80083>;	/* non-standard but required */
		display-timings {
			timing0: 640x480 {
				clock-frequency = <33000033>;
				hactive = <800>;
				vactive = <640>;
				hback-porch = <96>;
				hfront-porch = <96>;
				vback-porch = <20>;
				vfront-porch = <21>;
				hsync-len = <64>;
				vsync-len = <4>;
			};
		};
	};

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

		user-key {
			label = "user";
			gpios = <&gpio6 13 0>;
			linux,code = <276>; /* BTN_EXTRA */
		};
	};

	leds {
		compatible = "gpio-leds";

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

&cspi1 {
	fsl,spi-num-chipselects = <1>;
	cs-gpios = <&gpio4 28 1>;
	status = "okay";
};

&cspi2 {
	fsl,spi-num-chipselects = <3>;
	cs-gpios = <&gpio4 21 1>, <&gpio4 27 1>,
			<&gpio2 17 1>;
	status = "okay";
};

&fb {
	display = <&display>;
	fsl,dmacr = <0x00020010>;
	status = "okay";
};

&i2c1 {
	clock-frequency = <400000>;
	status = "okay";

	rtc@68 {
		compatible = "dallas,ds1374";
		reg = <0x68>;
	};
};

&i2c2 {
	status = "okay";
};
