/*
 * 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 = <&gpk0 2 0>;
	};

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

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

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

	soft-spi {
		compatible = "spi-gpio";
		cs-gpios = <&gpy4 3 0>;
		gpio-sck = <&gpy3 1 0>;
		gpio-mosi = <&gpy3 3 0>;
		gpio-miso = <&gpy3 0 0>;
		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>;
	};
};

&i2c_5 {
	clock-frequency = <100000>;
	status = "okay";

	max8998-pmic@66 {
		compatible = "maxim,max8998";
		reg = <0x66 0 0>;
		voltage-regulators {
			ldo2_reg: LDO2 {
				regulator-name = "VALIVE_1.2V";
				regulator-min-microvolt = <1200000>;
				regulator-max-microvolt = <1200000>;
				regulator-always-on;
			};

			ldo3_reg: LDO3 {
				regulator-name = "VUSB+MIPI_1.1V";
				regulator-min-microvolt = <1100000>;
				regulator-max-microvolt = <1100000>;
				regulator-always-on;
			};

			ldo4_reg: LDO4 {
				regulator-name = "VADC_3.3V";
				regulator-min-microvolt = <3300000>;
				regulator-max-microvolt = <3300000>;
			};

			ldo5_reg: LDO5 {
				regulator-name = "VTF_2.8V";
				regulator-min-microvolt = <2800000>;
				regulator-max-microvolt = <2800000>;
			};

			ldo6_reg: LDO6 {
				regulator-name = "LDO6";
				regulator-min-microvolt = <2000000>;
				regulator-max-microvolt = <2000000>;
			};

			ldo7_reg: LDO7 {
				regulator-name = "VLCD+VMIPI_1.8V";
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;
			};

			ldo8_reg: LDO8 {
				regulator-name = "VUSB+VDAC_3.3V";
				regulator-min-microvolt = <3300000>;
				regulator-max-microvolt = <3300000>;
				regulator-always-on;
			};

			ldo9_reg: LDO9 {
				regulator-name = "VCC_2.8V";
				regulator-min-microvolt = <2800000>;
				regulator-max-microvolt = <2800000>;
				regulator-always-on;
			};

			ldo10_reg: LDO10 {
				regulator-name = "VPLL_1.1V";
				regulator-min-microvolt = <1100000>;
				regulator-max-microvolt = <1100000>;
				regulator-boot-on;
				regulator-always-on;
			};

			ldo11_reg: LDO11 {
				regulator-name = "CAM_AF_3.3V";
				regulator-min-microvolt = <3300000>;
				regulator-max-microvolt = <3300000>;
			};

			ldo12_reg: LDO12 {
				regulator-name = "PS_2.8V";
				regulator-min-microvolt = <2800000>;
				regulator-max-microvolt = <2800000>;
			};

			ldo13_reg: LDO13 {
				regulator-name = "VHIC_1.2V";
				regulator-min-microvolt = <1200000>;
				regulator-max-microvolt = <1200000>;
			};

			ldo14_reg: LDO14 {
				regulator-name = "CAM_I_HOST_1.8V";
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;
			};

			ldo15_reg: LDO15 {
				regulator-name = "CAM_S_DIG+FM33_CORE_1.2V";
				regulator-min-microvolt = <1200000>;
				regulator-max-microvolt = <1200000>;
			};

			ldo16_reg: LDO16 {
				regulator-name = "CAM_S_ANA_2.8V";
				regulator-min-microvolt = <2800000>;
				regulator-max-microvolt = <2800000>;
			};

			ldo17_reg: LDO17 {
				regulator-name = "VCC_3.0V_LCD";
				regulator-min-microvolt = <3000000>;
				regulator-max-microvolt = <3000000>;
			};

			buck1_reg: BUCK1 {
				regulator-name = "VINT_1.1V";
				regulator-min-microvolt = <750000>;
				regulator-max-microvolt = <1500000>;
				regulator-boot-on;
				regulator-always-on;
			};

			buck2_reg: BUCK2 {
				regulator-name = "VG3D_1.1V";
				regulator-min-microvolt = <750000>;
				regulator-max-microvolt = <1500000>;
				regulator-boot-on;
			};

			buck3_reg: BUCK3 {
				regulator-name = "VCC_1.8V";
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;
				regulator-always-on;
			};

			buck4_reg: BUCK4 {
				regulator-name = "VMEM_1.2V";
				regulator-min-microvolt = <1200000>;
				regulator-max-microvolt = <1200000>;
				regulator-always-on;
			};

			ap32khz_reg: EN32KHz-AP {
				regulator-name = "32KHz AP";
				regulator-always-on;
			};

			cp32khz_reg: EN32KHz-CP {
				regulator-name = "32KHz CP";
			};

			vichg_reg: ENVICHG {
				regulator-name = "VICHG";
			};

			safeout1_reg: ESAFEOUT1 {
				regulator-name = "SAFEOUT1";
			};

			safeout2_reg: ESAFEOUT2 {
				regulator-name = "SAFEOUT2";
				regulator-boot-on;
			};
		};
	};
};
