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

/ {
	model = "Calao USB A9263";
	compatible = "atmel,usb-a9263", "atmel,at91sam9263", "atmel,at91sam9";

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

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

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

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

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

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

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

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

			shdwc@fffffd10 {
				atmel,wakeup-counter = <10>;
				atmel,wakeup-rtt-timer;
			};
		};

		ebi0: ebi@10000000 {
			status = "okay";

			nand_controller: nand-controller {
				status = "okay";
				pinctrl-0 = <&pinctrl_nand_cs &pinctrl_nand_rb>;
				pinctrl-names = "default";

				nand@3 {
					reg = <0x3 0x0 0x800000>;
					rb-gpios = <&pioA 22 GPIO_ACTIVE_HIGH>;
					cs-gpios = <&pioA 15 GPIO_ACTIVE_HIGH>;
					nand-bus-width = <8>;
					nand-ecc-mode = "soft";
					nand-on-flash-bbt;
					label = "atmel_nand";

					partitions {
						compatible = "fixed-partitions";
						#address-cells = <1>;
						#size-cells = <1>;

						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@a00000 {
			num-ports = <2>;
			status = "okay";
		};
	};

	leds {
		compatible = "gpio-leds";

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

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

		user_pb {
			label = "user_pb";
			gpios = <&pioB 10 GPIO_ACTIVE_LOW>;
			linux,code = <28>;
			wakeup-source;
		};
	};

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