/*
 * MARVELL BERLIN2CDP Dongle board device tree source
 *
 * Copyright (C) 2019 Synaptics Incorporated
 *
 * 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.
*/

/include/ "berlin2cdp-a0.dtsi"

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

	memory {
		name = "memory";
		device_type = "memory";
		reg = <0x01100000 0x16100000>;
	};

	soc {
		shm@29000000 {
			compatible = "mrvl,berlin-shm";
			reg = <0x17200000 0x08700000>, <0x1F900000 0x00600000>;
		};

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

			sy20212b {
				status = "okay";
				#address-cells = <1>;
				#size-cells = <0>;
				compatible = "silergy,sy20212b";
				reg = <0x66>;
				regulator-name = "cpu0";
				regulator-min-microvolt = <800000>;
				regulator-max-microvolt = <1550000>;
				regulator-max-step-microvolt = <12500>;
				regulator-always-on;
				regulator-boot-on;
			};
		};

		tsen@F7FCD000 {
			pwr-gpio = <&banka 2 0>;
		};
	};
};
