/*
 * Google Joplin BG2CDP A0 board device tree source
 *
 * Copyright (c) 2017 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-a0.dtsi"

/ {
	model = "Google Joplin BG2CDP A0 board based on BERLIN2CDP-A0";
	compatible = "marvell,berlin2cdp-joplin", "marvell,berlin2cdp", "marvell,berlin";

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

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

	soc {
		shm@29000000 {
			compatible = "mrvl,berlin-shm";
			reg = <0x1EE00000 0x01000000>, <0x1FE00000 0x00100000>;
		};

		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;
				};
			};
			pca9955 {
				compatible = "nxp,led-pca9955b";
				reg = <0x17>;
				num_leds = <4>;
				//starting LED # of each set
				start_num = <1 5 9 13>;
				reset_gpio = <&banka 28 0>;
			};
			cy8cmbr3108 {
				compatible = "cy8cmbr3108";
				reg = <0x37>;
				num_sensors = <6>;
				touch_gpio = <&banka 10 0>;
				reset_gpio = <&banka 28 0>;
			};
		};
		tsen@F7FCD000 {
			pwr-gpio = <&banka 5 0>;
		};
	};
};
