/*
 * 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 {
		i2c0 = "/i2c@12c60000";
		i2c1 = "/i2c@12c70000";
		i2c2 = "/i2c@12c80000";
		i2c3 = "/i2c@12c90000";
		i2c4 = "/i2c@12ca0000";
		i2c5 = "/i2c@12cb0000";
		i2c6 = "/i2c@12cc0000";
		i2c7 = "/i2c@12cd0000";
		spi0 = "/spi@12d20000";
		spi1 = "/spi@12d30000";
		spi2 = "/spi@12d40000";
		spi3 = "/spi@131a0000";
		spi4 = "/spi@131b0000";
		mmc0 = "/mmc@12200000";
		mmc1 = "/mmc@12210000";
		mmc2 = "/mmc@12220000";
		mmc3 = "/mmc@12230000";
		serial0 = "/serial@12C30000";
		console = "/serial@12C30000";
	};

	sromc@12250000 {
		bank = <1>;
		srom-timing = <1 9 12 1 6 1 1>;
		width = <2>;
		lan@5000000 {
			compatible = "smsc,lan9215", "smsc,lan";
			reg = <0x5000000 0x100>;
			phy-mode = "mii";
		};
	};

	sound@12d60000 {
		samsung,i2s-epll-clock-frequency = <192000000>;
		samsung,i2s-sampling-rate = <48000>;
		samsung,i2s-bits-per-sample = <16>;
		samsung,i2s-channels = <2>;
		samsung,i2s-lr-clk-framesize = <256>;
		samsung,i2s-bit-clk-framesize = <32>;
		samsung,codec-type = "wm8994";
	};

	i2c@12c70000 {
		soundcodec@1a {
			reg = <0x1a>;
			compatible = "wolfson,wm8994-codec";
		};
	};

	i2c@12c60000 {
		pmic@9 {
			reg = <0x9>;
			compatible = "maxim,max77686_pmic";
		};
	};

	tmu@10060000 {
		samsung,min-temp	= <25>;
		samsung,max-temp	= <125>;
		samsung,start-warning	= <95>;
		samsung,start-tripping	= <105>;
		samsung,hw-tripping	= <110>;
		samsung,efuse-min-value	= <40>;
		samsung,efuse-value	= <55>;
		samsung,efuse-max-value	= <100>;
		samsung,slope		= <274761730>;
		samsung,dc-value	= <25>;
	};

	fimd@14400000 {
		samsung,vl-freq = <60>;
		samsung,vl-col = <2560>;
		samsung,vl-row = <1600>;
		samsung,vl-width = <2560>;
		samsung,vl-height = <1600>;

		samsung,vl-clkp;
		samsung,vl-dp;
		samsung,vl-bpix = <4>;

		samsung,vl-hspw = <32>;
		samsung,vl-hbpd = <80>;
		samsung,vl-hfpd = <48>;
		samsung,vl-vspw = <6>;
		samsung,vl-vbpd = <37>;
		samsung,vl-vfpd = <3>;
		samsung,vl-cmd-allow-len = <0xf>;

		samsung,winid = <3>;
		samsung,interface-mode = <1>;
		samsung,dp-enabled = <1>;
		samsung,dual-lcd-enabled = <0>;
	};

	dp@145b0000 {
		samsung,lt-status = <0>;

		samsung,master-mode = <0>;
		samsung,bist-mode = <0>;
		samsung,bist-pattern = <0>;
		samsung,h-sync-polarity = <0>;
		samsung,v-sync-polarity = <0>;
		samsung,interlaced = <0>;
		samsung,color-space = <0>;
		samsung,dynamic-range = <0>;
		samsung,ycbcr-coeff = <0>;
		samsung,color-depth = <1>;
	};

	mmc@12200000 {
		samsung,bus-width = <8>;
		samsung,timing = <1 3 3>;
		samsung,removable = <0>;
	};

	mmc@12210000 {
		status = "disabled";
	};

	mmc@12220000 {
		samsung,bus-width = <4>;
		samsung,timing = <1 2 3>;
		samsung,removable = <1>;
	};

	mmc@12230000 {
		status = "disabled";
	};
};
