/*
 * sama5d3xcm.dtsi - Device Tree Include file for SAMA5D3x CPU Module
 *
 *  Copyright (C) 2013 Atmel,
 *                2013 Ludovic Desroches <ludovic.desroches@atmel.com>
 *
 * Licensed under GPLv2 or later.
 */

/ {
	compatible = "atmel,sama5d3xcm", "atmel,sama5d3", "atmel,sama5";

	chosen {
		bootargs = "rootfstype=ubifs ubi.mtd=5 root=ubi0:rootfs";
		stdout-path = "serial0:115200n8";
	};

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

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

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

	ahb {
		apb {
			spi0: spi@f0004000 {
				cs-gpios = <&pioD 13 0>, <0>, <0>, <0>;
			};
		};

		ebi@10000000 {
			pinctrl-0 = <&pinctrl_ebi_addr &pinctrl_ebi_cs0>;
			pinctr-name = "default";
			status = "okay";

			nor: flash@0,0 {
				compatible = "cfi-flash";
				linux,mtd-name = "physmap-flash.0";
				#address-cells = <1>;
				#size-cells = <1>;
				reg = <0x0 0x0 0x1000000>;
				bank-width = <2>;
				atmel,smc-read-mode = "nrd";
				atmel,smc-write-mode = "nwe";
				atmel,smc-bus-width = <16>;
				atmel,smc-ncs-rd-setup-ns = <0>;
				atmel,smc-ncs-wr-setup-ns = <0>;
				atmel,smc-nwe-setup-ns = <8>;
				atmel,smc-nrd-setup-ns = <16>;
				atmel,smc-ncs-rd-pulse-ns = <84>;
				atmel,smc-ncs-wr-pulse-ns = <84>;
				atmel,smc-nrd-pulse-ns = <76>;
				atmel,smc-nwe-pulse-ns = <76>;
				atmel,smc-nrd-cycle-ns = <107>;
				atmel,smc-nwe-cycle-ns = <84>;
				atmel,smc-tdf-ns = <16>;
			};

			nand_controller: nand-controller {
				status = "okay";

				nand@3 {
					reg = <0x3 0x0 0x2>;
					atmel,rb = <0>;
					nand-ecc-mode = "hw";
					nand-ecc-strength = <4>;
					nand-ecc-step-size = <512>;
					nand-on-flash-bbt;
					label = "atmel_nand";

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

						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>;
						};
					};
				};
			};
		};
	};

	leds {
		compatible = "gpio-leds";

		d2 {
			label = "d2";
			gpios = <&pioE 25 GPIO_ACTIVE_LOW>;	/* PE25, conflicts with A25, RXD2 */
			linux,default-trigger = "heartbeat";
		};
	};
};
