// SPDX-License-Identifier: (GPL-2.0-or-later OR MIT)

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

/ {
	model = "GL.iNet GL-MV1000";
	compatible = "glinet,gl-mv1000", "marvell,armada3720";

	aliases {
		led-boot = &led_power;
		led-failsafe = &led_power;
		led-running = &led_power;
		led-upgrade = &led_power;
	};

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

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

	vcc_sd_reg1: regulator {
		compatible = "regulator-gpio";
		regulator-name = "vcc_sd1";
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <3300000>;
		regulator-boot-on;

		gpios-states = <0>;
		states = <1800000 0x1
			3300000 0x0>;
		enable-active-high;
	};

	keys {
		compatible = "gpio-keys";

		button-reset {
			label = "reset";
			linux,code = <KEY_RESTART>;
			gpios = <&gpionb 14 GPIO_ACTIVE_LOW>;
		};

		switch {
			label = "switch";
			linux,code = <BTN_0>;
			gpios = <&gpiosb 22 GPIO_ACTIVE_LOW>;
		};
	};

	leds {
		compatible = "gpio-leds";

		led-vpn {
			label = "green:vpn";
			gpios = <&gpionb 11 GPIO_ACTIVE_LOW>;
		};

		led-wan {
			label = "green:wan";
			gpios = <&gpionb 12 GPIO_ACTIVE_LOW>;
		};

		led_power: led-power {
			label = "green:power";
			gpios = <&gpionb 13 GPIO_ACTIVE_LOW>;
			default-state = "on";
		};
	};
};

&spi0 {
	status = "okay";

	flash@0 {
		reg = <0>;
		compatible = "jedec,spi-nor";
		spi-max-frequency = <104000000>;
		m25p,fast-read;
		partitions {
			compatible = "fixed-partitions";
			#address-cells = <1>;
			#size-cells = <1>;

			partition@0 {
				label = "firmware";
				reg = <0 0xf0000>;
			};

			partition@f0000 {
				label = "u-boot-env";
				reg = <0xf0000 0x8000>;
			};

			factory: partition@f8000 {
				label = "factory";
				reg = <0xf8000 0x8000>;
				read-only;
			};

			partition@100000 {
				label = "dtb";
				reg = <0x100000 0x10000>;
				read-only;
			};

			partition@110000 {
				label = "rescue";
				reg = <0x110000 0x1000000>;
			};
		};
	};
};

&sdhci1 {
	wp-inverted;
	bus-width = <4>;
	cd-gpios = <&gpionb 17 GPIO_ACTIVE_LOW>;
	marvell,pad-type = "sd";
	no-1-8-v;
	vqmmc-supply = <&vcc_sd_reg1>;
	status = "okay";
};

&sdhci0 {
	bus-width = <8>;
	mmc-ddr-1_8v;
	mmc-hs400-1_8v;
	non-removable;
	no-sd;
	no-sdio;
	marvell,pad-type = "fixed-1-8v";
	status = "okay";
};

&usb3 {
	status = "okay";
};

&usb2 {
	status = "okay";
};

&uart0 {
	status = "okay";
};

&mdio {
	switch0: ethernet-switch@1 {
		compatible = "marvell,mv88e6085";
		reg = <1>;

		dsa,member = <0 0>;

		ports: ethernet-ports {
			#address-cells = <1>;
			#size-cells = <0>;

			ethernet-port@0 {
				reg = <0>;
				label = "cpu";
				ethernet = <&eth0>;
			};

			ethernet-port@1 {
				reg = <1>;
				label = "wan";
				phy-handle = <&switch0phy0>;
			};

			ethernet-port@2 {
				reg = <2>;
				label = "lan0";
				phy-handle = <&switch0phy1>;

				nvmem-cells = <&macaddr_factory_6>;
				nvmem-cell-names = "mac-address";
			};

			ethernet-port@3 {
				reg = <3>;
				label = "lan1";
				phy-handle = <&switch0phy2>;

				nvmem-cells = <&macaddr_factory_6>;
				nvmem-cell-names = "mac-address";
			};
		};

		mdio {
			#address-cells = <1>;
			#size-cells = <0>;

			switch0phy0: ethernet-phy@11 {
				reg = <0x11>;
			};
			switch0phy1: ethernet-phy@12 {
				reg = <0x12>;
			};
			switch0phy2: ethernet-phy@13 {
				reg = <0x13>;
			};
		};
	};
};

&eth0 {
	nvmem-cells = <&macaddr_factory_0>;
	nvmem-cell-names = "mac-address";
	phy-mode = "rgmii-id";
	status = "okay";

	fixed-link {
		speed = <1000>;
		full-duplex;
	};
};

&factory {
	compatible = "nvmem-cells";
	#address-cells = <1>;
	#size-cells = <1>;

	macaddr_factory_0: macaddr@0 {
		reg = <0x0 0x6>;
	};

	macaddr_factory_6: macaddr@6 {
		reg = <0x6 0x6>;
	};
};
