/*
 * SAMSUNG SSDK5440 board device tree source
 *
 * Copyright (c) 2012 Samsung Electronics Co., Ltd.
 *		http://www.samsung.com
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 as
 * published by the Free Software Foundation.
*/

/dts-v1/;
#include "exynos5440.dtsi"
#include <dt-bindings/gpio/gpio.h>

/ {
	model = "SAMSUNG SSDK5440 board based on EXYNOS5440";
	compatible = "samsung,ssdk5440", "samsung,exynos5440", "samsung,exynos5";

	chosen {
		bootargs = "root=/dev/sda2 rw rootwait ignore_loglevel earlyprintk no_console_suspend mem=2048M@0x80000000 mem=6144M@0x100000000 console=ttySAC0,115200";
	};

	fixed-rate-clocks {
		xtal {
			compatible = "samsung,clock-xtal";
			clock-frequency = <50000000>;
		};
	};
};

&pcie_0 {
	reset-gpio = <&pin_ctrl 5 GPIO_ACTIVE_HIGH>;
	status = "okay";
};

&pcie_1 {
	reset-gpio = <&pin_ctrl 22 GPIO_ACTIVE_HIGH>;
	status = "okay";
};

&spi_0 {
	flash: w25q128@0 {
		#address-cells = <1>;
		#size-cells = <1>;
		compatible = "winbond,w25q128";
		spi-max-frequency = <15625000>;
		reg = <0>;
		controller-data {
			samsung,spi-feedback-delay = <0>;
		};

		partition@00000 {
			label = "BootLoader";
			reg = <0x60000 0x80000>;
			read-only;
		};

		partition@e0000 {
			label = "Recovery-Kernel";
			reg = <0xe0000 0x300000>;
			read-only;
		};

		partition@3e0000 {
			label = "CRAM-FS";
			reg = <0x3e0000 0x700000>;
			read-only;
		};

		partition@ae0000 {
			label = "User-Data";
			reg = <0xae0000 0x520000>;
		};

	};

};
