/*
 * Device Tree Source for UniPhier PH1-sLD8 Reference Board
 *
 * Copyright (C) 2014-2015 Masahiro Yamada <yamada.masahiro@socionext.com>
 *
 * SPDX-License-Identifier:	GPL-2.0+	X11
 */

/dts-v1/;
/include/ "uniphier-ph1-sld8.dtsi"
/include/ "uniphier-ref-daughter.dtsi"

/ {
	model = "UniPhier PH1-sLD8 Reference Board";
	compatible = "socionext,ph1-sld8-ref", "socionext,ph1-sld8";

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

	chosen {
		bootargs = "console=ttyS0,115200";
		stdout-path = &serial0;
	};

	aliases {
		serial0 = &serial0;
		serial1 = &serial1;
		serial2 = &serial2;
		serial3 = &serial3;
		i2c0 = &i2c0;
		i2c1 = &i2c1;
		i2c2 = &i2c2;
		i2c3 = &i2c3;
	};
};

&serial0 {
	status = "okay";
};

&serial2 {
	status = "okay";
};

&serial3 {
	status = "okay";
};

&i2c0 {
	status = "okay";
};

&usb0 {
	status = "okay";
};

&usb1 {
	status = "okay";
};

&usb2 {
	status = "okay";
};

/* for U-boot only */
/ {
	soc {
		u-boot,dm-pre-reloc;
	};
};

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

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

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