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

	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>;
			mmc-cap-sd-highspeed;
			mmc-cap-mmc-highspeed;
			vmmc-supply = <&ab8500_ldo_aux3_reg>;

			cd-gpios  = <&gpio7 6 0x4>; // 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>;
			mmc-cap-mmc-highspeed;
			vmmc-supply = <&ab8500_ldo_aux2_reg>;

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