/*
 * 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,samad3xcm", "atmel,sama5d3", "atmel,sama5";

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

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

			macb0: ethernet@f0028000 {
				phy-mode = "rgmii";
			};

			pmc: pmc@fffffc00 {
				main: mainck {
					clock-frequency = <12000000>;
				};
			};
		};

		nand0: nand@60000000 {
			nand-bus-width = <8>;
			nand-ecc-mode = "hw";
			atmel,has-pmecc;
			atmel,pmecc-cap = <4>;
			atmel,pmecc-sector-size = <512>;
			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>;
			};
		};
	};

	leds {
		compatible = "gpio-leds";

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