/*
 * Device Tree file for Globalscale Mirabox
 *
 * Gregory CLEMENT <gregory.clement@free-electrons.com>
 *
 * 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/ "armada-370.dtsi"

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

	chosen {
		bootargs = "console=ttyS0,115200 earlyprintk";
	};

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

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

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

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

			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 1>;
					linux,default-trigger = "heartbeat";
				};

				blue_stat_led {
					label = "mirabox:blue:stat";
					gpios = <&gpio2 0 1>;
					linux,default-trigger = "cpu0";
				};

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

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

				phy1: ethernet-phy@1 {
					reg = <1>;
				};
			};
			ethernet@70000 {
				status = "okay";
				phy = <&phy0>;
				phy-mode = "rgmii-id";
			};
			ethernet@74000 {
				status = "okay";
				phy = <&phy1>;
				phy-mode = "rgmii-id";
			};

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

			pcie-controller {
				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";
				};
			};
		};
	};
};
