/*
 * at91rm9200ek.dts - Device Tree file for Atmel AT91RM9200 evaluation kit
 *
 *  Copyright (C) 2012 Joachim Eastwood <manabian@gmail.com>
 *
 * Licensed under GPLv2 only
 */
/dts-v1/;
#include "at91rm9200.dtsi"

/ {
	model = "Atmel AT91RM9200 evaluation kit";
	compatible = "atmel,at91rm9200ek", "atmel,at91rm9200";

	chosen {
		stdout-path = "serial0:115200n8";
	};

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

	clocks {
		slow_xtal {
			clock-frequency = <32768>;
		};

		main_xtal {
			clock-frequency = <18432000>;
		};
	};

	ahb {
		apb {
			usb1: gadget@fffb0000 {
				atmel,vbus-gpio = <&pioD 4 GPIO_ACTIVE_HIGH>;
				atmel,pullup-gpio = <&pioD 5 GPIO_ACTIVE_HIGH>;
				status = "okay";
			};

			macb0: ethernet@fffbc000 {
				phy-mode = "rmii";
				status = "okay";

				phy0: ethernet-phy {
					interrupt-parent = <&pioC>;
					interrupts = <4 IRQ_TYPE_EDGE_BOTH>;
				};
			};

			usart1: serial@fffc4000 {
				pinctrl-0 =
						<&pinctrl_uart1
						 &pinctrl_uart1_rts
						 &pinctrl_uart1_cts
						 &pinctrl_uart1_dtr_dsr
						 &pinctrl_uart1_dcd
						 &pinctrl_uart1_ri>;
				status = "okay";
			};

			spi0: spi@fffe0000 {
				status = "okay";
				cs-gpios = <&pioA 3 0>, <0>, <0>, <0>;
				mtd_dataflash@0 {
					compatible = "atmel,at45", "atmel,dataflash";
					spi-max-frequency = <15000000>;
					reg = <0>;
				};
			};

			dbgu: serial@fffff200 {
				status = "okay";
			};

			rtc: rtc@fffffe00 {
				status = "okay";
			};
		};

		usb0: ohci@300000 {
			num-ports = <2>;
			status = "okay";
		};

		nor_flash@10000000 {
			compatible = "cfi-flash";
			reg = <0x10000000 0x800000>;
			linux,mtd-name = "physmap-flash.0";
			bank-width = <2>;
			#address-cells = <1>;
			#size-cells = <1>;

			barebox@0 {
				label = "barebox";
				reg = <0x00000 0x40000>;
			};

			bareboxenv@40000 {
				label = "bareboxenv";
				reg = <0x40000 0x10000>;
			};

			kernel@50000 {
				label = "kernel";
				reg = <0x50000 0x300000>;
			};

			root@350000  {
				label = "root";
				reg = <0x350000 0x4B0000>;
			};
		};
	};

	leds {
		compatible = "gpio-leds";

		ds2 {
			label = "green";
			gpios = <&pioB 0 GPIO_ACTIVE_LOW>;
			linux,default-trigger = "mmc0";
		};

		ds4 {
			label = "yellow";
			gpios = <&pioB 1 GPIO_ACTIVE_LOW>;
			linux,default-trigger = "heartbeat";
		};

		ds6 {
			label = "red";
			gpios = <&pioB 2 GPIO_ACTIVE_LOW>;
		};
	};
};
