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

/dts-v1/;
/include/ "uniphier-ph1-ld6b.dtsi"
/include/ "uniphier-ref-daughter.dtsi"
/include/ "uniphier-support-card.dtsi"

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

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

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

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

&ethsc {
	interrupts = <0 52 4>;
};

&serial0 {
	status = "okay";
};

&serial1 {
	status = "okay";
};

&serial2 {
	status = "okay";
};

&i2c0 {
	status = "okay";
};

&sd {
	status = "okay";
};

&usb0 {
	status = "okay";
};

&usb1 {
	status = "okay";
};

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

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