/*
 * Samsung's Exynos4210 based Origen board device tree source
 *
 * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd.
 *		http://www.samsung.com
 * Copyright (c) 2010-2011 Linaro Ltd.
 *		www.linaro.org
 *
 * Device tree source file for Insignal's Origen board which is based on
 * Samsung's Exynos4210 SoC.
 *
 * 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 "exynos4210.dtsi"

/ {
	model = "Insignal Origen evaluation board based on Exynos4210";
	compatible = "insignal,origen", "samsung,exynos4210", "samsung,exynos4";

	memory {
		reg = <0x40000000 0x10000000
		       0x50000000 0x10000000
		       0x60000000 0x10000000
		       0x70000000 0x10000000>;
	};

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

	regulators {
		compatible = "simple-bus";
		#address-cells = <1>;
		#size-cells = <0>;

		mmc_reg: regulator@0 {
			compatible = "regulator-fixed";
			reg = <0>;
			regulator-name = "VMEM_VDD_2.8V";
			regulator-min-microvolt = <2800000>;
			regulator-max-microvolt = <2800000>;
			gpio = <&gpx1 1 0>;
			enable-active-high;
		};
	};

	tmu@100C0000 {
		status = "okay";
	};

	sdhci@12530000 {
		bus-width = <4>;
		pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_bus4 &sd2_cd>;
		pinctrl-names = "default";
		vmmc-supply = <&mmc_reg>;
		status = "okay";
	};

	sdhci@12510000 {
		bus-width = <4>;
		pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus4 &sd0_cd>;
		pinctrl-names = "default";
		vmmc-supply = <&mmc_reg>;
		status = "okay";
	};

	g2d@12800000 {
		status = "okay";
	};

	codec@13400000 {
		samsung,mfc-r = <0x43000000 0x800000>;
		samsung,mfc-l = <0x51000000 0x800000>;
		status = "okay";
	};

	serial@13800000 {
		status = "okay";
	};

	serial@13810000 {
		status = "okay";
	};

	serial@13820000 {
		status = "okay";
	};

	serial@13830000 {
		status = "okay";
	};

	i2c@13860000 {
		status = "okay";
		samsung,i2c-sda-delay = <100>;
		samsung,i2c-max-bus-freq = <20000>;
		pinctrl-0 = <&i2c0_bus>;
		pinctrl-names = "default";

		max8997_pmic@66 {
			compatible = "maxim,max8997-pmic";
			reg = <0x66>;
			interrupt-parent = <&gpx0>;
			interrupts = <4 0>, <3 0>;

			max8997,pmic-buck1-dvs-voltage = <1350000>;
			max8997,pmic-buck2-dvs-voltage = <1100000>;
			max8997,pmic-buck5-dvs-voltage = <1200000>;

			regulators {
				ldo1_reg: LDO1 {
					regulator-name = "VDD_ABB_3.3V";
					regulator-min-microvolt = <3300000>;
					regulator-max-microvolt = <3300000>;
				};

				ldo2_reg: LDO2 {
					regulator-name = "VDD_ALIVE_1.1V";
					regulator-min-microvolt = <1100000>;
					regulator-max-microvolt = <1100000>;
					regulator-always-on;
				};

				ldo3_reg: LDO3 {
					regulator-name = "VMIPI_1.1V";
					regulator-min-microvolt = <1100000>;
					regulator-max-microvolt = <1100000>;
				};

				ldo4_reg: LDO4 {
					regulator-name = "VDD_RTC_1.8V";
					regulator-min-microvolt = <1800000>;
					regulator-max-microvolt	= <1800000>;
					regulator-always-on;
				};

				ldo6_reg: LDO6 {
					regulator-name = "VMIPI_1.8V";
					regulator-min-microvolt = <1800000>;
					regulator-max-microvolt	= <1800000>;
					regulator-always-on;
				};

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

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

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

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

				ldo11_reg: LDO11 {
					regulator-name = "VDD_AUD_3V";
					regulator-min-microvolt = <3000000>;
					regulator-max-microvolt	= <3000000>;
				};

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

				ldo17_reg: LDO17 {
					regulator-name = "VDD_SWB_3.3V";
					regulator-min-microvolt = <3300000>;
					regulator-max-microvolt	= <3300000>;
					regulator-always-on;
				};

				ldo21_reg: LDO21 {
					regulator-name = "VDD_MIF_1.2V";
					regulator-min-microvolt = <1200000>;
					regulator-max-microvolt	= <1200000>;
					regulator-always-on;
				};

				buck1_reg: BUCK1 {
					/*
					* HACK: The real name is VDD_ARM_1.2V,
					* but exynos-cpufreq does not support
					* DT-based regulator lookup yet.
					*/
					regulator-name = "vdd_arm";
					regulator-min-microvolt = <950000>;
					regulator-max-microvolt	= <1350000>;
					regulator-always-on;
					regulator-boot-on;
				};

				buck2_reg: BUCK2 {
					regulator-name = "VDD_INT_1.1V";
					regulator-min-microvolt = <900000>;
					regulator-max-microvolt	= <1100000>;
					regulator-always-on;
					regulator-boot-on;
				};

				buck3_reg: BUCK3 {
					regulator-name = "VDD_G3D_1.1V";
					regulator-min-microvolt = <900000>;
					regulator-max-microvolt = <1100000>;
				};

				buck5_reg: BUCK5 {
					regulator-name = "VDDQ_M1M2_1.2V";
					regulator-min-microvolt = <1200000>;
					regulator-max-microvolt = <1200000>;
					regulator-always-on;
				};

				buck7_reg: BUCK7 {
					regulator-name = "VDD_LCD_3.3V";
					regulator-min-microvolt = <3300000>;
					regulator-max-microvolt = <3300000>;
					regulator-boot-on;
					regulator-always-on;
				};
			};
		};
	};

	gpio_keys {
		compatible = "gpio-keys";
		#address-cells = <1>;
		#size-cells = <0>;

		up {
			label = "Up";
			gpios = <&gpx2 0 1>;
			linux,code = <103>;
			gpio-key,wakeup;
		};

		down {
			label = "Down";
			gpios = <&gpx2 1 1>;
			linux,code = <108>;
			gpio-key,wakeup;
		};

		back {
			label = "Back";
			gpios = <&gpx1 7 1>;
			linux,code = <158>;
			gpio-key,wakeup;
		};

		home {
			label = "Home";
			gpios = <&gpx1 6 1>;
			linux,code = <102>;
			gpio-key,wakeup;
		};

		menu {
			label = "Menu";
			gpios = <&gpx1 5 1>;
			linux,code = <139>;
			gpio-key,wakeup;
		};
	};

	leds {
		compatible = "gpio-leds";
		status {
			gpios = <&gpx1 3 1>;
			linux,default-trigger = "heartbeat";
		};
	};

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

		xusbxti {
			compatible = "samsung,clock-xusbxti";
			clock-frequency = <24000000>;
		};
	};

	fimd@11c00000 {
		pinctrl-0 = <&lcd_en &lcd_clk &lcd_data24 &pwm0_out>;
		pinctrl-names = "default";
		status = "okay";
	};

	display-timings {
		native-mode = <&timing0>;
		timing0: timing {
			clock-frequency = <47500000>;
			hactive = <1024>;
			vactive = <600>;
			hfront-porch = <64>;
			hback-porch = <16>;
			hsync-len = <48>;
			vback-porch = <64>;
			vfront-porch = <16>;
			vsync-len = <3>;
		};
	};
};
