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

		led-health {
			label = "pogo_e02:green:health";
			gpios = <&gpio1 16 GPIO_ACTIVE_LOW>;
			default-state = "keep";
		};
		led-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>;
	};
};
