/*
 * 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: hdmiphy@38 {
			compatible = "samsung,exynos4212-hdmiphy";
			reg = <0x38>;
			#address-cells = <1>;
			#size-cells = <1>;

			phy-power-control {
				reg = <0x10040700 0x04>;
			};
		};
	};

	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>;
		phy = <&hdmiphy>;
	};

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