// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
 * Device Tree file for Globalscale Mirabox
 *
 * Gregory CLEMENT <gregory.clement@free-electrons.com>
 */

/dts-v1/;
#include <dt-bindings/gpio/gpio.h>
#include "armada-370.dtsi"

/ {
	model = "Globalscale Mirabox";
	compatible = "globalscale,mirabox", "marvell,armada370", "marvell,armada-370-xp";

	chosen {
		stdout-path = "serial0:115200n8";
	};

	memory@0 {
		device_type = "memory";
		reg = <0x00000000 0x20000000>; /* 512 MB */
	};

	soc {
		ranges = <MBUS_ID(0xf0, 0x01) 0 0xd0000000 0x100000
			  MBUS_ID(0x01, 0xe0) 0 0xfff00000 0x100000
			  MBUS_ID(0x09, 0x01) 0 0xf1100000 0x10000>;

		internal-regs {
			serial@12000 {
				status = "okay";
			};
			timer@20300 {
				clock-frequency = <600000000>;
				status = "okay";
			};

			gpio_leds {
				compatible = "gpio-leds";
				pinctrl-names = "default";
				pinctrl-0 = <&pwr_led_pin &stat_led_pins>;

				green_pwr_led {
					label = "mirabox:green:pwr";
					gpios = <&gpio1 31 GPIO_ACTIVE_LOW>;
					default-state = "keep";
				};

				blue_stat_led {
					label = "mirabox:blue:stat";
					gpios = <&gpio2 0 GPIO_ACTIVE_LOW>;
					default-state = "off";
				};

				green_stat_led {
					label = "mirabox:green:stat";
					gpios = <&gpio2 1 GPIO_ACTIVE_LOW>;
					default-state = "off";
				};
			};

			ethernet@70000 {
				pinctrl-0 = <&ge0_rgmii_pins>;
				pinctrl-names = "default";
				status = "okay";
				phy = <&phy0>;
				phy-mode = "rgmii-id";
			};
			ethernet@74000 {
				pinctrl-0 = <&ge1_rgmii_pins>;
				pinctrl-names = "default";
				status = "okay";
				phy = <&phy1>;
				phy-mode = "rgmii-id";
			};

			crypto@90000 {
				status = "okay";
			};

			mvsdio@d4000 {
				pinctrl-0 = <&sdio_pins3>;
				pinctrl-names = "default";
				status = "okay";
				/*
				 * No CD or WP GPIOs: SDIO interface used for
				 * Wifi/Bluetooth chip
				 */
				 broken-cd;
			};

			usb@50000 {
				status = "okay";
			};

			usb@51000 {
				status = "okay";
			};

			i2c@11000 {
				status = "okay";
				clock-frequency = <100000>;
				pca9505: pca9505@25 {
					compatible = "nxp,pca9505";
					gpio-controller;
					#gpio-cells = <2>;
					reg = <0x25>;
				};
			};

			nand@d0000 {
				status = "okay";
				num-cs = <1>;
				marvell,nand-keep-config;
				marvell,nand-enable-arbiter;
				nand-on-flash-bbt;

				partition@0 {
					label = "U-Boot";
					reg = <0 0x400000>;
				};
				partition@400000 {
					label = "Linux";
					reg = <0x400000 0x400000>;
				};
				partition@800000 {
					label = "Filesystem";
					reg = <0x800000 0x3f800000>;
				};
			};
		};
	};
};

&pciec {
	status = "okay";

	/* Internal mini-PCIe connector */
	pcie@1,0 {
		/* Port 0, Lane 0 */
		status = "okay";
	};

	/* Connected on the PCB to a USB 3.0 XHCI controller */
	pcie@2,0 {
		/* Port 1, Lane 0 */
		status = "okay";
	};
};

&mdio {
	pinctrl-0 = <&mdio_pins>;
	pinctrl-names = "default";
	phy0: ethernet-phy@0 {
		reg = <0>;
	};

	phy1: ethernet-phy@1 {
		reg = <1>;
	};
};

&pinctrl {
	pwr_led_pin: pwr-led-pin {
		marvell,pins = "mpp63";
		marvell,function = "gpio";
	};

	stat_led_pins: stat-led-pins {
		marvell,pins = "mpp64", "mpp65";
		marvell,function = "gpio";
	};
};

