// SPDX-License-Identifier: GPL-2.0-only OR MIT

/dts-v1/;
#include <dt-bindings/input/input.h>
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/leds/common.h>

#include "mt7986a.dtsi"

/ {
	compatible = "acelink,ew-7886cax", "mediatek,mt7986a";
	model = "Acelink EW-7886CAX";

	aliases {
		serial0 = &uart0;
	};

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

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

	keys {
		compatible = "gpio-keys";

		key-restart {
			label = "Reset";
			gpios = <&pio 7 GPIO_ACTIVE_LOW>;
			linux,code = <KEY_RESTART>;
		};
	};

	leds {
		compatible = "gpio-leds";

		led-0 {
			function = LED_FUNCTION_STATUS;
			color = <LED_COLOR_ID_RED>;
			gpios = <&pio 18 GPIO_ACTIVE_HIGH>;
		};

		led-1 {
			function = LED_FUNCTION_STATUS;
			color = <LED_COLOR_ID_GREEN>;
			gpios = <&pio 19 GPIO_ACTIVE_HIGH>;
		};

		led-2 {
			function = LED_FUNCTION_STATUS;
			color = <LED_COLOR_ID_BLUE>;
			gpios = <&pio 20 GPIO_ACTIVE_HIGH>;
		};
	};
};

&crypto {
	status = "okay";
};

&eth {
	status = "okay";

	mac@1 {
		compatible = "mediatek,eth-mac";
		reg = <1>;
		phy-mode = "2500base-x";
		phy-handle = <&phy6>;
		nvmem-cells = <&macaddr>;
		nvmem-cell-names = "mac-address";
	};

	mdio-bus {
		reset-gpios = <&pio 6 GPIO_ACTIVE_LOW>;
		reset-delay-us = <50000>;
		reset-post-delay-us = <20000>;

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

		phy6: phy@6 {
			compatible = "ethernet-phy-ieee802.3-c45";
			reg = <6>;
		};
	};
};

&pcie_phy {
	status = "okay";
};

&spi0 {
	status = "okay";

	flash@0 {
		compatible = "spi-nand";
		reg = <0>;
		#address-cells = <1>;
		#size-cells = <1>;
		spi-max-frequency = <52000000>;
		spi-rx-bus-width = <4>;
		spi-tx-bus-width = <4>;

		partitions {
			compatible = "fixed-partitions";
			#address-cells = <1>;
			#size-cells = <1>;

			partition@0 {
				reg = <0x0 0x100000>;
				label = "bootloader";
				read-only;
			};

			partition@100000 {
				reg = <0x100000 0x80000>;
				label = "u-boot-env";
			};

			partition@180000 {
				compatible = "nvmem-cells";
				reg = <0x180000 0x200000>;
				label = "factory";
				read-only;

				nvmem-layout {
					compatible = "fixed-layout";
					#address-cells = <1>;
					#size-cells = <1>;

					eeprom: eeprom@0 {
						reg = <0x0 0x1000>;
					};

					macaddr: macaddr@4 {
						reg = <0x4 0x6>;
					};
				};
			};

			partition@380000 {
				reg = <0x380000 0x200000>;
				label = "fip";
			};

			partition@580000 {
				reg = <0x580000 0x4000000>;
				label = "ubi";
			};
		};
	};
};

&trng {
	status = "okay";
};

&uart0 {
	status = "okay";
};

&watchdog {
	status = "okay";
};

&wifi {
	nvmem-cells = <&eeprom>;
	nvmem-cell-names = "eeprom";
	status = "okay";
};
