/*
 * calao-dab-mmx.dtsi - Device Tree Include file for Calao DAB-MMX Daughter Board
 *
 * Copyright (C) 2011 Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
 *
 * Licensed under GPLv2.
 */

/ {
	ahb {
		apb {
			usart1: serial@fffb4000 {
				status = "okay";
			};

			usart3: serial@fffd0000 {
				status = "okay";
			};
		};
	};

	i2c-gpio@0 {
		status = "okay";
	};

	leds {
		compatible = "gpio-leds";

		user_led1 {
			label = "user_led1";
			gpios = <&pioB 20 1>;
		};

/*
* led already used by mother board but active as high
*		user_led2 {
*			label = "user_led2";
*			gpios = <&pioB 21 1>;
*		};
*/
		user_led3 {
			label = "user_led3";
			gpios = <&pioB 22 1>;
		};

		user_led4 {
			label = "user_led4";
			gpios = <&pioB 23 1>;
		};

		red {
			label = "red";
			gpios = <&pioB 24 1>;
		};

		orange {
			label = "orange";
			gpios = <&pioB 30 1>;
		};

		green {
			label = "green";
			gpios = <&pioB 31 1>;
		};
	};

	gpio_keys {
		compatible = "gpio-keys";
		#address-cells = <1>;
		#size-cells = <0>;

		user_pb1 {
			label = "user_pb1";
			gpios = <&pioB 25 1>;
			linux,code = <0x100>;
		};

		user_pb2 {
			label = "user_pb2";
			gpios = <&pioB 13 1>;
			linux,code = <0x101>;
		};

		user_pb3 {
			label = "user_pb3";
			gpios = <&pioA 26 1>;
			linux,code = <0x102>;
		};

		user_pb4 {
			label = "user_pb4";
			gpios = <&pioC 9 1>;
			linux,code = <0x103>;
		};
	};
};
