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

			tcb0: timer@f0010000 {
				timer@0 {
					compatible = "atmel,tcb-timer";
					reg = <0>;
				};

				timer@1 {
					compatible = "atmel,tcb-timer";
					reg = <1>;
				};
			};
		};

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