/*
 * kirkwood-pogo_e02.dts - Device tree file for Pogoplug E02
 *
 * Copyright (C) 2015 Christoph Junghans <ottxor@gentoo.org>
 *
 * based on information of dts files from
 *  Arch Linux ARM by Oleg Rakhmanov <moonman.ca@gmail.com>
 *  OpenWrt by Felix Kaechele <heffer@fedoraproject.org>
 *
 * This file is licensed under the terms of the GNU General Public
 * License version 2.  This program is licensed "as is" without any
 * warranty of any kind, whether express or implied.
 */

/dts-v1/;

#include "kirkwood.dtsi"
#include "kirkwood-6281.dtsi"

/ {
	model = "Cloud Engines Pogoplug E02";
	compatible = "cloudengines,pogoe02", "marvell,kirkwood-88f6281",
		     "marvell,kirkwood";

	memory {
		device_type = "memory";
		reg = <0x00000000 0x10000000>;
	};

	chosen {
		bootargs = "console=ttyS0,115200n8";
		stdout-path = &uart0;
	};

	gpio-leds {
		compatible = "gpio-leds";

		health {
			label = "pogo_e02:green:health";
			gpios = <&gpio1 16 GPIO_ACTIVE_LOW>;
			default-state = "keep";
		};
		fault {
			label = "pogo_e02:orange:fault";
			gpios = <&gpio1 17 GPIO_ACTIVE_LOW>;
		};
	};

	regulators {
		compatible = "simple-bus";
		#address-cells = <1>;
		#size-cells = <0>;
		pinctrl-0 = <&pmx_usb_power_enable>;
		pinctrl-names = "default";

		usb_power: regulator@1 {
			compatible = "regulator-fixed";
			reg = <1>;
			regulator-name = "USB Power";
			regulator-min-microvolt = <5000000>;
			regulator-max-microvolt = <5000000>;
			enable-active-high;
			regulator-always-on;
			regulator-boot-on;
			gpio = <&gpio0 29 GPIO_ACTIVE_HIGH>;
		};
	};
};

&pinctrl {
	pinctrl-0 = < &pmx_usb_power_enable &pmx_led_orange
		      &pmx_led_green >;
	pinctrl-names = "default";

	pmx_usb_power_enable: pmx-usb-power-enable {
		marvell,pins = "mpp29";
		marvell,function = "gpio";
	};

	pmx_led_green: pmx-led-green {
		marvell,pins = "mpp48";
		marvell,function = "gpio";
	};

	pmx_led_orange: pmx-led-orange {
		marvell,pins = "mpp49";
		marvell,function = "gpio";
	};
};

&uart0 {
	status = "okay";
};

&nand {
	chip-delay = <40>;
	status = "okay";

	partition@0 {
		label = "u-boot";
		reg = <0x0000000 0x100000>;
		read-only;
	};

	partition@100000 {
		label = "uImage";
		reg = <0x0100000 0x400000>;
	};

	partition@500000 {
		label = "pogoplug";
		reg = <0x0500000 0x2000000>;
	};

	partition@2500000 {
		label = "root";
		reg = <0x02500000 0x5b00000>;
	};
};

&mdio {
	status = "okay";

	ethphy0: ethernet-phy@0 {
		reg = <0>;
	};
};

&eth0 {
	status = "okay";
	ethernet0-port@0 {
		phy-handle = <&ethphy0>;
	};
};
