/*
 * Copyright (C) 2013 STMicroelectronics (R&D) Limited.
 * Author: Srinivas Kandagatla <srinivas.kandagatla@st.com>
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 as
 * publishhed by the Free Software Foundation.
 */
/ {

	memory{
		device_type = "memory";
		reg = <0x60000000 0x40000000>;
	};

	chosen {
		bootargs = "console=ttyAS0,115200";
		linux,stdout-path = &serial2;
	};

	aliases {
		ttyAS0 = &serial2;
		ethernet0 = &ethernet0;
		ethernet1 = &ethernet1;
	};

	soc {
		serial2: serial@fed32000 {
			status = "okay";
		};

		leds {
			compatible	= "gpio-leds";
			fp_led {
				#gpio-cells = <1>;
				label	= "Front Panel LED";
				gpios	= <&PIO105 7>;
				linux,default-trigger	= "heartbeat";
			};
		};

		/* HDMI Tx I2C */
		i2c@fed41000 {
			/* HDMI V1.3a supports Standard mode only */
			clock-frequency = <100000>;
			i2c-min-scl-pulse-width-us = <0>;
			i2c-min-sda-pulse-width-us = <5>;

			status = "okay";
		};

		ethernet0: dwmac@fe810000 {
			status			= "okay";
			phy-mode		= "mii";
			pinctrl-0		= <&pinctrl_mii0>;

			snps,reset-gpio 	= <&PIO106 2>;
			snps,reset-active-low;
			snps,reset-delays-us 	= <0 10000 10000>;
		};

		ethernet1: dwmac@fef08000 {
			status			= "disabled";
			phy-mode		= "mii";
			st,tx-retime-src	= "txclk";

			snps,reset-gpio 	= <&PIO4 7>;
			snps,reset-active-low;
			snps,reset-delays-us 	= <0 10000 10000>;
		};
	};
};
