/*
 * Copyright 2012 ST-Ericsson AB
 *
 * The code contained herein is licensed under the GNU General Public
 * License. You may obtain a copy of the GNU General Public License
 * Version 2 or later at the following locations:
 *
 * http://www.opensource.org/licenses/gpl-license.html
 * http://www.gnu.org/copyleft/gpl.html
 */

/dts-v1/;
#include "ste-dbx5x0.dtsi"

/ {
	model = "ST-Ericsson CCU9540 platform with Device Tree";
	compatible = "st-ericsson,ccu9540", "st-ericsson,u9540";

	/* This stablilizes the serial port enumeration */
	aliases {
		serial0 = &ux500_serial0;
		serial1 = &ux500_serial1;
		serial2 = &ux500_serial2;
	};

	memory {
		reg = <0x00000000 0x20000000>;
	};

	soc {
		uart@80120000 {
			status = "okay";
		};

		uart@80121000 {
			status = "okay";
		};

		uart@80007000 {
			status = "okay";
		};

		// External Micro SD slot
		sdi0_per1@80126000 {
			arm,primecell-periphid = <0x10480180>;
			max-frequency = <100000000>;
			bus-width = <4>;
			cap-sd-highspeed;
			cap-mmc-highspeed;
			vmmc-supply = <&ab8500_ldo_aux3_reg>;

			cd-gpios  = <&gpio7 6 GPIO_ACTIVE_HIGH>; // 230
			cd-inverted;

			status = "okay";
		};


		// WLAN SDIO channel
		sdi1_per2@80118000 {
			arm,primecell-periphid = <0x10480180>;
			max-frequency = <100000000>;
			bus-width = <4>;

			status = "okay";
		};

		// On-board eMMC
		sdi4_per2@80114000 {
			arm,primecell-periphid = <0x10480180>;
		        max-frequency = <100000000>;
			bus-width = <8>;
			cap-mmc-highspeed;
			vmmc-supply = <&ab8500_ldo_aux2_reg>;

			status = "okay";
		};
	};
};
