/*
 * at91sam9263ek.dts - Device Tree file for Atmel at91sam9263 reference board
 *
 *  Copyright (C) 2012 Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
 *
 * Licensed under GPLv2 only
 */
/dts-v1/;
#include "at91sam9263.dtsi"

/ {
	model = "Atmel at91sam9263ek";
	compatible = "atmel,at91sam9263ek", "atmel,at91sam9263", "atmel,at91sam9";

	chosen {
		bootargs = "mem=64M console=ttyS0,115200 root=/dev/mtdblock5 rw rootfstype=ubifs";
	};

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

	clocks {
		#address-cells = <1>;
		#size-cells = <1>;
		ranges;

		main_clock: clock@0 {
			compatible = "atmel,osc", "fixed-clock";
			clock-frequency = <16367660>;
		};

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

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

	ahb {
		apb {
			dbgu: serial@ffffee00 {
				status = "okay";
			};

			usart0: serial@fff8c000 {
				pinctrl-0 = <
					&pinctrl_usart0
					&pinctrl_usart0_rts
					&pinctrl_usart0_cts>;
				status = "okay";
			};

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

			usb1: gadget@fff78000 {
				atmel,vbus-gpio = <&pioA 25 GPIO_ACTIVE_HIGH>;
				status = "okay";
			};

			mmc0: mmc@fff80000 {
				pinctrl-0 = <
					&pinctrl_board_mmc0
					&pinctrl_mmc0_clk
					&pinctrl_mmc0_slot0_cmd_dat0
					&pinctrl_mmc0_slot0_dat1_3>;
				status = "okay";
				slot@0 {
					reg = <0>;
					bus-width = <4>;
					cd-gpios = <&pioE 18 GPIO_ACTIVE_HIGH>;
					wp-gpios = <&pioE 19 GPIO_ACTIVE_HIGH>;
				};
			};

			pinctrl@fffff200 {
				mmc0 {
					pinctrl_board_mmc0: mmc0-board {
						atmel,pins =
							<AT91_PIOE 18 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH 	/* PE18 gpio CD pin pull up and deglitch */
							 AT91_PIOE 19 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>;	/* PE19 gpio WP pin pull up */
					};
				};
			};

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

			watchdog@fffffd40 {
				status = "okay";
			};
		};

		fb0: fb@0x00700000 {
			display = <&display0>;
			status = "okay";

			display0: display {
				bits-per-pixel = <16>;
				atmel,lcdcon-backlight;
				atmel,dmacon = <0x1>;
				atmel,lcdcon2 = <0x80008002>;
				atmel,guard-time = <1>;

				display-timings {
					native-mode = <&timing0>;
					timing0: timing0 {
						clock-frequency = <4965000>;
						hactive = <240>;
						vactive = <320>;
						hback-porch = <1>;
						hfront-porch = <33>;
						vback-porch = <1>;
						vfront-porch = <0>;
						hsync-len = <5>;
						vsync-len = <1>;
						hsync-active = <1>;
						vsync-active = <1>;
					};
				};
			};
		};

		nand0: nand@40000000 {
			nand-bus-width = <8>;
			nand-ecc-mode = "soft";
			nand-on-flash-bbt = <1>;
			status = "okay";

			at91bootstrap@0 {
				label = "at91bootstrap";
				reg = <0x0 0x20000>;
			};

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

			bareboxenv@60000 {
				label = "bareboxenv";
				reg = <0x60000 0x20000>;
			};

			bareboxenv2@80000 {
				label = "bareboxenv2";
				reg = <0x80000 0x20000>;
			};

			oftree@80000 {
				label = "oftree";
				reg = <0xa0000 0x20000>;
			};

			kernel@a0000 {
				label = "kernel";
				reg = <0xc0000 0x400000>;
			};

			rootfs@4a0000 {
				label = "rootfs";
				reg = <0x4c0000 0x7800000>;
			};

			data@7ca0000 {
				label = "data";
				reg = <0x7cc0000 0x8340000>;
			};
		};

		usb0: ohci@00a00000 {
			num-ports = <2>;
			status = "okay";
			atmel,vbus-gpio = <&pioA 24 GPIO_ACTIVE_HIGH
					   &pioA 21 GPIO_ACTIVE_HIGH
					  >;
		};
	};

	leds {
		compatible = "gpio-leds";

		d3 {
			label = "d3";
			gpios = <&pioB 7 GPIO_ACTIVE_HIGH>;
			linux,default-trigger = "heartbeat";
		};

		d2 {
			label = "d2";
			gpios = <&pioC 29 GPIO_ACTIVE_LOW>;
			linux,default-trigger = "nand-disk";
		};
	};

	gpio_keys {
		compatible = "gpio-keys";

		left_click {
			label = "left_click";
			gpios = <&pioC 5 GPIO_ACTIVE_LOW>;
			linux,code = <272>;
			gpio-key,wakeup;
		};

		right_click {
			label = "right_click";
			gpios = <&pioC 4 GPIO_ACTIVE_LOW>;
			linux,code = <273>;
			gpio-key,wakeup;
		};
	};

	i2c@0 {
		status = "okay";

		24c512@50 {
			compatible = "24c512";
			reg = <0x50>;
			pagesize = <128>;
		};
	};
};
