/*
 * SAMSUNG SMDK5250 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 "exynos5250.dtsi"

/ {
	model = "SAMSUNG SMDK5250 board based on EXYNOS5250";
	compatible = "samsung,smdk5250", "samsung,exynos5250";

	aliases {
	};

	memory {
		reg = <0x40000000 0x80000000>;
	};

	chosen {
		bootargs = "root=/dev/ram0 rw ramdisk=8192 initrd=0x41000000,8M console=ttySAC2,115200 init=/linuxrc";
	};

	i2c@12C60000 {
		samsung,i2c-sda-delay = <100>;
		samsung,i2c-max-bus-freq = <20000>;
		status = "okay";

		eeprom@50 {
			compatible = "samsung,s524ad0xd1";
			reg = <0x50>;
		};
	};

	vdd: fixed-regulator@0 {
		compatible = "regulator-fixed";
		regulator-name = "vdd-supply";
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <1800000>;
		regulator-always-on;
	};

	dbvdd: fixed-regulator@1 {
		compatible = "regulator-fixed";
		regulator-name = "dbvdd-supply";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
		regulator-always-on;
	};

	spkvdd: fixed-regulator@2 {
		compatible = "regulator-fixed";
		regulator-name = "spkvdd-supply";
		regulator-min-microvolt = <5000000>;
		regulator-max-microvolt = <5000000>;
		regulator-always-on;
	};

	i2c@12C70000 {
		samsung,i2c-sda-delay = <100>;
		samsung,i2c-max-bus-freq = <20000>;
		status = "okay";

		eeprom@51 {
			compatible = "samsung,s524ad0xd1";
			reg = <0x51>;
		};

		wm8994: wm8994@1a {
			compatible = "wlf,wm8994";
			reg = <0x1a>;

			gpio-controller;
			#gpio-cells = <2>;

			clocks = <&codec_mclk>;
			clock-names = "MCLK1";

			AVDD2-supply = <&vdd>;
			CPVDD-supply = <&vdd>;
			DBVDD-supply = <&dbvdd>;
			SPKVDD1-supply = <&spkvdd>;
			SPKVDD2-supply = <&spkvdd>;
		};
	};

	i2c@121D0000 {
		samsung,i2c-sda-delay = <100>;
		samsung,i2c-max-bus-freq = <40000>;
		samsung,i2c-slave-addr = <0x38>;
		status = "okay";

		sata-phy {
			compatible = "samsung,sata-phy";
			reg = <0x38>;
		};
	};

	sata@122F0000 {
		samsung,sata-freq = <66>;
	};

	i2c@12C80000 {
		samsung,i2c-sda-delay = <100>;
		samsung,i2c-max-bus-freq = <66000>;
		status = "okay";

		hdmiddc@50 {
			compatible = "samsung,exynos4210-hdmiddc";
			reg = <0x50>;
		};
	};

	i2c@12CE0000 {
		samsung,i2c-sda-delay = <100>;
		samsung,i2c-max-bus-freq = <66000>;
		status = "okay";

		hdmiphy@38 {
			compatible = "samsung,exynos4212-hdmiphy";
			reg = <0x38>;
		};
	};

	mmc@12200000 {
		status = "okay";
		num-slots = <1>;
		supports-highspeed;
		broken-cd;
		card-detect-delay = <200>;
		samsung,dw-mshc-ciu-div = <3>;
		samsung,dw-mshc-sdr-timing = <2 3>;
		samsung,dw-mshc-ddr-timing = <1 2>;
		pinctrl-names = "default";
		pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus4 &sd0_bus8>;

		slot@0 {
			reg = <0>;
			bus-width = <8>;
		};
	};

	mmc@12220000 {
		status = "okay";
		num-slots = <1>;
		supports-highspeed;
		card-detect-delay = <200>;
		samsung,dw-mshc-ciu-div = <3>;
		samsung,dw-mshc-sdr-timing = <2 3>;
		samsung,dw-mshc-ddr-timing = <1 2>;
		pinctrl-names = "default";
		pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_bus4>;

		slot@0 {
			reg = <0>;
			bus-width = <4>;
			disable-wp;
		};
	};

	spi_0: spi@12d20000 {
		status = "disabled";
	};

	spi_1: spi@12d30000 {
		status = "okay";

		w25q80bw@0 {
			#address-cells = <1>;
			#size-cells = <1>;
			compatible = "w25x80";
			reg = <0>;
			spi-max-frequency = <1000000>;

			controller-data {
				cs-gpio = <&gpa2 5 0>;
				samsung,spi-feedback-delay = <0>;
			};

			partition@0 {
				label = "U-Boot";
				reg = <0x0 0x40000>;
				read-only;
			};

			partition@40000 {
				label = "Kernel";
				reg = <0x40000 0xc0000>;
			};
		};
	};

	hdmi {
		hpd-gpio = <&gpx3 7 0>;
	};

	codec@11000000 {
		samsung,mfc-r = <0x43000000 0x800000>;
		samsung,mfc-l = <0x51000000 0x800000>;
	};

	i2s0: i2s@03830000 {
		status = "okay";
	};

	sound {
		compatible = "samsung,smdk-wm8994";

		samsung,i2s-controller = <&i2s0>;
		samsung,audio-codec = <&wm8994>;
	};

	usb@12110000 {
		samsung,vbus-gpio = <&gpx2 6 0>;
	};

	dp-controller@145B0000 {
		samsung,color-space = <0>;
		samsung,dynamic-range = <0>;
		samsung,ycbcr-coeff = <0>;
		samsung,color-depth = <1>;
		samsung,link-rate = <0x0a>;
		samsung,lane-count = <4>;

		pinctrl-names = "default";
		pinctrl-0 = <&dp_hpd>;
		status = "okay";
	};

	fimd@14400000 {
		status = "okay";
		display-timings {
			native-mode = <&timing0>;
			timing0: timing@0 {
				/* 1280x800 */
				clock-frequency = <50000>;
				hactive = <1280>;
				vactive = <800>;
				hfront-porch = <4>;
				hback-porch = <4>;
				hsync-len = <4>;
				vback-porch = <4>;
				vfront-porch = <4>;
				vsync-len = <4>;
			};
		};
	};

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

		codec_mclk: codec-mclk {
			compatible = "fixed-clock";
			#clock-cells = <0>;
			clock-frequency = <16934000>;
		};
	};
};
