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

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

/ {
	model = "Odroid XU3 based on EXYNOS5422";
	compatible = "samsung,odroidxu3", "samsung,exynos5";

	aliases {
		serial0 = "/serial@12C00000";
		console = "/serial@12C20000";
	};

	memory {
		device_type = "memory";
		reg =  <0x40000000 0x10000000
			0x50000000 0x10000000
			0x60000000 0x10000000
			0x70000000 0x10000000
			0x80000000 0x10000000
			0x90000000 0x10000000
			0xa0000000 0x10000000
			0xb0000000 0xea00000>;
	};

	adc@12D10000 {
		u-boot,dm-pre-reloc;
		status = "okay";
	};

	i2c@12CA0000 {
		s2mps11_pmic@66 {
			compatible = "samsung,s2mps11-pmic";
			reg = <0x66>;
		};
	};

	ehci@12110000 {
		samsung,vbus-gpio = <&gpx2 6 GPIO_ACTIVE_HIGH>;
	};

	serial@12C20000 {
		status="okay";
	};

	mmc@12200000 {
		fifoth_val = <0x201f0020>;
	};

	mmc@12220000 {
		fifoth_val = <0x201f0020>;
	};

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