/*
 * Odroid-U3/X2 board device tree source
 *
 * Copyright (c) 2014 Samsung Electronics Co., Ltd.
 *		http://www.samsung.com
 *
 * SPDX-License-Identifier:	GPL-2.0+
 */

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

/ {
	model = "Odroid based on Exynos4412";
	compatible = "samsung,odroid", "samsung,exynos4412";

	aliases {
		i2c0 = "/i2c@13860000";
		i2c1 = "/i2c@13870000";
		i2c2 = "/i2c@13880000";
		i2c3 = "/i2c@13890000";
		i2c4 = "/i2c@138a0000";
		i2c5 = "/i2c@138b0000";
		i2c6 = "/i2c@138c0000";
		i2c7 = "/i2c@138d0000";
		serial0 = "/serial@13800000";
		console = "/serial@13810000";
		mmc2 = "/sdhci@12530000";
		mmc4 = "/dwmmc@12550000";
	};

	i2c@13860000 {
		samsung,i2c-sda-delay = <100>;
		samsung,i2c-slave-addr = <0x10>;
		samsung,i2c-max-bus-freq = <100000>;
		status = "okay";

		max77686_pmic@09 {
			compatible = "maxim,max77686";
			interrupts = <7 0>;
			reg = <0x09 0 0>;
			#clock-cells = <1>;

			voltage-regulators {
				ldo1_reg: LDO1 {
					regulator-name = "VDD_ALIVE_1.0V";
					regulator-min-microvolt = <1000000>;
					regulator-max-microvolt = <1000000>;
				};

				ldo2_reg: LDO2 {
					regulator-name = "VDDQ_VM1M2_1.2V";
					regulator-min-microvolt = <1200000>;
					regulator-max-microvolt = <1200000>;
				};

				ldo3_reg: LDO3 {
					regulator-name = "VCC_1.8V_AP";
					regulator-min-microvolt = <1800000>;
					regulator-max-microvolt = <1800000>;
				};

				ldo4_reg: LDO4 {
					regulator-name = "VDDQ_MMC2_2.8V";
					regulator-min-microvolt = <2800000>;
					regulator-max-microvolt = <2800000>;
				};

				ldo5_reg: LDO5 {
					regulator-name = "VDDQ_MMC0/1/3_1.8V";
					regulator-min-microvolt = <1800000>;
					regulator-max-microvolt = <1800000>;
				};

				ldo6_reg: LDO6 {
					regulator-name = "VMPLL_1.0V";
					regulator-min-microvolt = <1100000>;
					regulator-max-microvolt = <1100000>;
				};

				ldo7_reg: LDO7 {
					regulator-name = "VPLL_1.1V";
					regulator-min-microvolt = <1100000>;
					regulator-max-microvolt = <1100000>;
				};

				ldo8_reg: LDO8 {
					regulator-name = "VDD_MIPI/HDMI_1.0V";
					regulator-min-microvolt = <1000000>;
					regulator-max-microvolt = <1000000>;
				};

				ldo10_reg: LDO10 {
					regulator-name = "VDD_MIPI/HDMI_1.8V";
					regulator-min-microvolt = <1800000>;
					regulator-max-microvolt = <1800000>;
				};

				ldo11_reg: LDO11 {
					regulator-name = "VDD_ABB1_1.8V";
					regulator-min-microvolt = <1800000>;
					regulator-max-microvolt = <1800000>;
				};

				ldo12_reg: LDO12 {
					regulator-name = "VDD_UOTG_3.0V";
					regulator-min-microvolt = <3000000>;
					regulator-max-microvolt = <3000000>;
				};

				ldo13_reg: LDO13 {
					regulator-name = "VDD_C2C_1.8V";
					regulator-min-microvolt = <1800000>;
					regulator-max-microvolt = <1800000>;
				};

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

				ldo15_reg: LDO15 {
					regulator-name = "VDD_HSIC/OTG_1.0V";
					regulator-min-microvolt = <1000000>;
					regulator-max-microvolt = <1000000>;
				};

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

				ldo17_reg: LDO17 {
					regulator-name = "VDDQ_CAM_1.2V";
					regulator-min-microvolt = <1200000>;
					regulator-max-microvolt = <1200000>;
				};

				ldo20_reg: LDO20 {
					regulator-name = "VDDQ_EMMC_1.8V";
					regulator-min-microvolt = <1800000>;
					regulator-max-microvolt = <1800000>;
					regulator-always-on;
					regulator-boot-on;
				};

				ldo21_reg: LDO21 {
					regulator-name = "TFLASH_2.8V";
					regulator-min-microvolt = <2800000>;
					regulator-max-microvolt = <2800000>;
					regulator-always-on;
					regulator-boot-on;
				};

				ldo22_reg: LDO22 {
					regulator-name = "VDDQ_EMMC_2.8V";
					regulator-min-microvolt = <2800000>;
					regulator-max-microvolt = <2800000>;
					regulator-always-on;
					regulator-boot-on;
				};

				ldo25_reg: LDO25 {
					regulator-compatible = "LDO25";
					regulator-name = "VDDQ_LCD_3.0V";
					regulator-min-microvolt = <3000000>;
					regulator-max-microvolt = <3000000>;
				};

				buck1_reg: BUCK1 {
					regulator-name = "VDD_MIF_1.0V";
					regulator-min-microvolt = <8500000>;
					regulator-max-microvolt = <1100000>;
				};

				buck2_reg: BUCK2 {
					regulator-name = "VDD_ARM_1.0V";
					regulator-min-microvolt = <850000>;
					regulator-max-microvolt = <1500000>;
				};

				buck3_reg: BUCK3 {
					regulator-name = "VDD_INT_1.1V";
					regulator-min-microvolt = <850000>;
					regulator-max-microvolt = <1150000>;
				};

				buck4_reg: BUCK4 {
					regulator-name = "VDD_G3D_1.0V";
					regulator-min-microvolt = <850000>;
					regulator-max-microvolt = <1150000>;
				};

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

				buck6_reg: BUCK6 {
					regulator-name = "VCC_INL1/7_1.35V";
					regulator-min-microvolt = <1350000>;
					regulator-max-microvolt = <1350000>;
				};

				buck7_reg: BUCK7 {
					regulator-name = "VCC_INL2/3/5_2.0V";
					regulator-min-microvolt = <2000000>;
					regulator-max-microvolt = <2000000>;
				};

				buck8_reg: BUCK8 {
					regulator-name = "VCC_P3V3_2.85V";
					regulator-min-microvolt = <2850000>;
					regulator-max-microvolt = <3300000>;
				};
			};
		};
	};

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

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

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

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

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

	dwmmc@12550000 {
		samsung,bus-width = <8>;
		samsung,timing = <2 1 0>;
		samsung,removable = <0>;
		fifoth_val = <0x203f0040>;
		bus_hz = <400000000>;
		div = <0x3>;
		index = <4>;
	};

	ehci@12580000 {
		compatible = "samsung,exynos-ehci";
		reg = <0x12580000 0x100>;
		#address-cells = <1>;
		#size-cells = <1>;
		phy {
			compatible = "samsung,exynos-usb-phy";
			reg = <0x125B0000 0x100>;
		};
	};

	emmc-reset {
		compatible = "samsung,emmc-reset";
		reset-gpio = <&gpk1 2 0>;
	};
};
