/*
 * 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 "dbx5x0.dtsi"
#include "href.dtsi"
#include "stuib.dtsi"

/ {
	model = "ST-Ericsson HREF (pre-v60) platform with Device Tree";
	compatible = "st-ericsson,mop500", "st-ericsson,u8500";

	gpio_keys {
		button@1 {
			gpios = <&tc3589x_gpio 7 0x4>;
		};
	};

	soc {
		prcmu@80157000 {
			ab8500@5 {
				ab8500-gpio {
					compatible = "stericsson,ab8500-gpio";
				};
			};
		};

		i2c@80004000 {
			tps61052@33 {
				compatible = "tps61052";
				reg = <0x33>;
			};
		};

		i2c@80110000 {
			bu21013_tp@5c {
				reset-gpio = <&tc3589x_gpio 13 0x4>;
			};
		};

		vmmci: regulator-gpio {
			gpios = <&tc3589x_gpio 18 0x4>;
			enable-gpio = <&tc3589x_gpio 17 0x4>;

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