// SPDX-License-Identifier: GPL-2.0
/*
 * 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>
 *
 */

/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>;
	};
};
