/*
 * Device Tree Source for UniPhier sLD3 Reference 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-sld3.dtsi"
/include/ "uniphier-ref-daughter.dtsi"
/include/ "uniphier-support-card.dtsi"

/ {
	model = "UniPhier sLD3 Reference Board";
	compatible = "socionext,uniphier-sld3-ref", "socionext,uniphier-sld3";

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

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

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

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

&serial0 {
	status = "okay";
};

&serial1 {
	status = "okay";
};

&serial2 {
	status = "okay";
};

&i2c0 {
	status = "okay";
};

&emmc {
	status = "okay";
};

&sd {
	status = "okay";
};

&usb0 {
	status = "okay";
};

&usb1 {
	status = "okay";
};

&usb2 {
	status = "okay";
};

&usb3 {
	status = "okay";
};

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

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

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

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