/*
 * 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 = <0x40000000 0x80000000>;
	};

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

	aliases {
		ttyAS0 = &sbc_serial1;
	};
	soc {
		sbc_serial1: serial@fe531000 {
			status = "okay";
		};

		leds {
			compatible	= "gpio-leds";
			red {
				#gpio-cells = <1>;
				label	= "Front Panel LED";
				gpios	= <&PIO4 1>;
				linux,default-trigger	= "heartbeat";
			};
			green {
				gpios	= <&PIO4 7>;
				default-state = "off";
			};
		};

		i2c@fed40000 {
			status = "okay";
		};

		/* 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";
		};

		i2c@fe540000 {
			status = "okay";
		};

		i2c@fe541000 {
			status = "okay";
		};
	};
};
