/*
 * MARVELL BERLIN2CDP Dongle board device tree source
 *
 * Copyright (c) 2013 Marvell International Ltd.
 *		http://www.marvell.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
 * published by the Free Software Foundation.
*/

/dts-v1/;
/include/ "berlin2cdp.dtsi"

/ {
	model = "MARVELL BG2CDP Dongle board based on BERLIN2CDP";
	compatible = "marvell,berlin2cdp-dongle", "marvell,berlin2cdp", "marvell,berlin";

	cpus {
		cpu@0 {
			cpu0-supply = <&vcpu>;
		};
	};

	soc {
		i2c@0 {
			pg868 {
				#address-cells = <1>;
				#size-cells = <0>;
				compatible = "marvell,pg86x";
				reg = <0x19>;
				vcpu:BK1_TV@0 {
					regulator-name = "vcpu";
					regulator-min-microvolt = <1000000>;
					regulator-max-microvolt = <1350000>;
					regulator-always-on;
					regulator-boot-on;
				};
			};
		};
	};
};
