/*
 * at91sam9261ek.dts - Device Tree file for Atmel at91sam9261 reference board
 *
 *  Copyright (C) 2013 Jean-Jacques Hiblot <jjhiblot@traphandler.com>
 *
 * Licensed under GPLv2 only.
 */
/dts-v1/;
#include "at91sam9261.dtsi"

/ {
	model = "Atmel at91sam9261ek";
	compatible = "atmel,at91sam9261ek", "atmel,at91sam9261", "atmel,at91sam9";

	chosen {
		bootargs = "console=ttyS0,115200 rootfstype=ubifs ubi.mtd=5 root=ubi0:rootfs rw";
	};

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

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

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

	ahb {
		usb0: ohci@00500000 {
			status = "okay";
		};

		fb0: fb@0x00600000 {
			display = <&display0>;
			atmel,power-control-gpio = <&pioA 12 GPIO_ACTIVE_LOW>;
			status = "okay";

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

				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;
			status = "okay";

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

			bootloader@40000 {
				label = "bootloader";
				reg = <0x40000 0x80000>;
			};

			bootloaderenv@c0000 {
				label = "bootloader env";
				reg = <0xc0000 0xc0000>;
			};

			dtb@180000 {
				label = "device tree";
				reg = <0x180000 0x80000>;
			};

			kernel@200000 {
				label = "kernel";
				reg = <0x200000 0x600000>;
			};

			rootfs@800000 {
				label = "rootfs";
				reg = <0x800000 0x0f800000>;
			};
		};

		apb {
			usb1: gadget@fffa4000 {
				atmel,vbus-gpio = <&pioB 29 GPIO_ACTIVE_HIGH>;
				status = "okay";
			};

			spi0: spi@fffc8000 {
				cs-gpios = <&pioA 3 0>, <0>, <&pioA 28 0>, <0>;
				status = "okay";

				mtd_dataflash@0 {
					compatible = "atmel,at45", "atmel,dataflash";
					reg = <0>;
					spi-max-frequency = <15000000>;
				};

				tsc2046@0 {
					reg = <2>;
					compatible = "ti,ads7843";
					interrupts-extended = <&pioC 2 IRQ_TYPE_EDGE_BOTH>;
					spi-max-frequency = <3000000>;
					pendown-gpio = <&pioC 2 GPIO_ACTIVE_HIGH>;

					ti,x-min = /bits/ 16 <150>;
					ti,x-max = /bits/ 16 <3830>;
					ti,y-min = /bits/ 16 <190>;
					ti,y-max = /bits/ 16 <3830>;
					ti,vref-delay-usecs = /bits/ 16 <450>;
					ti,x-plate-ohms = /bits/ 16 <450>;
					ti,y-plate-ohms = /bits/ 16 <250>;
					ti,pressure-max = /bits/ 16 <15000>;
					ti,debounce-rep = /bits/ 16 <0>;
					ti,debounce-tol = /bits/ 16 <65535>;
					ti,debounce-max = /bits/ 16 <1>;

					linux,wakeup;
				};
			};

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

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

		};
	};

	leds {
		compatible = "gpio-leds";

		ds8 {
			label = "ds8";
			gpios = <&pioA 13 GPIO_ACTIVE_LOW>;
			linux,default-trigger = "none";
		};

		ds7 {
			label = "ds7";
			gpios = <&pioA 14 GPIO_ACTIVE_LOW>;
			linux,default-trigger = "nand-disk";
		};

		ds1 {
			label = "ds1";
			gpios = <&pioA 23 GPIO_ACTIVE_LOW>;
			linux,default-trigger = "heartbeat";
		};
	};

	gpio_keys {
		compatible = "gpio-keys";

		button_0 {
			label = "button_0";
			gpios = <&pioA 27 GPIO_ACTIVE_LOW>;
			linux,code = <256>;
			gpio-key,wakeup;
		};

		button_1 {
			label = "button_1";
			gpios = <&pioA 26 GPIO_ACTIVE_LOW>;
			linux,code = <257>;
			gpio-key,wakeup;
		};

		button_2 {
			label = "button_2";
			gpios = <&pioA 25 GPIO_ACTIVE_LOW>;
			linux,code = <258>;
			gpio-key,wakeup;
		};

		button_3 {
			label = "button_3";
			gpios = <&pioA 24 GPIO_ACTIVE_LOW>;
			linux,code = <259>;
			gpio-key,wakeup;
		};
	};
};
