/*
 * Samsung's Exynos4210 based Universal C210 board device tree source
 *
 * Copyright (c) 2014 Samsung Electronics Co., Ltd.
 *		http://www.samsung.com
 *
 * SPDX-License-Identifier:	GPL-2.0+
 */

/dts-v1/;
#include "exynos4210.dtsi"

/ {
	model = "Samsung Universal C210 based on Exynos4210 rev0";
	compatible = "samsung,universal_c210", "samsung,exynos4210";

	aliases {
		serial0 = "/serial@13800000";
		console = "/serial@13820000";
		mmc0 = "sdhci@12510000";
		mmc2 = "sdhci@12530000";
	};

	sdhci@12510000 {
		samsung,bus-width = <8>;
		samsung,timing = <1 3 3>;
		pwr-gpios = <&gpio 146 0>;
	};

	sdhci@12520000 {
		status = "disabled";
	};

	sdhci@12530000 {
		samsung,bus-width = <4>;
		samsung,timing = <1 2 3>;
		cd-gpios = <&gpio 284 0>;
	};

	sdhci@12540000 {
		status = "disabled";
	};

	soft-spi {
		compatible = "u-boot,soft-spi";
		cs-gpio = <&gpio 235 0>;	/* Y43 */
		sclk-gpio = <&gpio 225 0>;	/* Y31 */
		mosi-gpio = <&gpio 227 0>;	/* Y33 */
		miso-gpio = <&gpio 224 0>;	/* Y30 */
		spi-delay-us = <1>;
		#address-cells = <1>;
		#size-cells = <0>;
		cs@0 {
		};
	};

	fimd@11c00000 {
		compatible = "samsung,exynos-fimd";
		reg = <0x11c00000 0xa4>;

		samsung,vl-freq = <60>;
		samsung,vl-col = <480>;
		samsung,vl-row = <800>;
		samsung,vl-width = <480>;
		samsung,vl-height = <800>;

		samsung,vl-clkp = <0>;
		samsung,vl-oep = <0>;
		samsung,vl-hsp = <1>;
		samsung,vl-vsp = <1>;
		samsung,vl-dp = <1>;
		samsung,vl-bpix = <4>;

		samsung,vl-hspw = <2>;
		samsung,vl-hbpd = <16>;
		samsung,vl-hfpd = <16>;
		samsung,vl-vspw = <2>;
		samsung,vl-vbpd = <8>;
		samsung,vl-vfpd = <8>;
		samsung,vl-cmd-allow-len = <0xf>;

		samsung,pclk_name = <1>;
		samsung,sclk_div = <1>;

		samsung,winid = <0>;
		samsung,power-on-delay = <10000>;
		samsung,interface-mode = <1>;
		samsung,mipi-enabled = <0>;
		samsung,dp-enabled;
		samsung,dual-lcd-enabled;

		samsung,logo-on = <1>;
		samsung,resolution = <0>;
		samsung,rgb-mode = <0>;
	};
};
