/*
 * Device Tree Source for UniPhier PXs2 Gentil Board
 *
 * Copyright (C) 2015-2016 Socionext Inc.
 *   Author: Masahiro Yamada <yamada.masahiro@socionext.com>
 *
 * SPDX-License-Identifier: (GPL-2.0+ OR MIT)
 */

/dts-v1/;
#include "uniphier-pxs2.dtsi"

/ {
	model = "UniPhier PXs2 Gentil Board";
	compatible = "socionext,uniphier-pxs2-gentil",
		     "socionext,uniphier-pxs2";

	chosen {
		stdout-path = "serial0:115200n8";
	};

	aliases {
		serial0 = &serial2;
		serial1 = &serial0;
		serial2 = &serial1;
		i2c0 = &i2c0;
		i2c2 = &i2c2;
		i2c4 = &i2c4;
		i2c5 = &i2c5;
		i2c6 = &i2c6;
	};

	memory@80000000 {
		device_type = "memory";
		reg = <0x80000000 0x80000000>;
	};
};

&serial2 {
	status = "okay";
};

&i2c0 {
	status = "okay";

	eeprom@54 {
		compatible = "st,24c64", "atmel,24c64", "i2c-eeprom";
		reg = <0x54>;
		pagesize = <32>;
		u-boot,i2c-offset-len = <2>;
	};
};

&i2c2 {
	status = "okay";
};

&emmc {
	status = "okay";
};

&usb0 {
	status = "okay";
};

&usb1 {
	status = "okay";
};

/* for U-Boot only */
&serial2 {
	u-boot,dm-pre-reloc;
};

&sd_clk {
	u-boot,dm-pre-reloc;
};

&emmc {
	u-boot,dm-pre-reloc;
};

&pinctrl_uart2 {
	u-boot,dm-pre-reloc;
};

&pinctrl_emmc {
	u-boot,dm-pre-reloc;
};
