arm64: dts: mediatek: Add Acelink EW-7886CAX
authorRafał Miłecki <rafal@milecki.pl>
Thu, 7 Dec 2023 08:05:12 +0000 (09:05 +0100)
committerAngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Mon, 12 Feb 2024 12:37:03 +0000 (13:37 +0100)
Acelink EW-7886CAX is an MT7986A (AKA Filogic 830) based access point.
It has 512 MiB of RAM, one 2.5 Gbps PoE (802.3at) Ethernet port and
on-SoC Wi-Fi.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Link: https://lore.kernel.org/r/20231207080512.3688-3-zajec5@gmail.com
Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
arch/arm64/boot/dts/mediatek/Makefile
arch/arm64/boot/dts/mediatek/mt7986a-acelink-ew-7886cax.dts [new file with mode: 0644]

index de77e3d6acd46684ddbd0767ddd0ded467210c20..37b4ca3a87c96cb9a8d4be86e446cd51be0d997f 100644 (file)
@@ -9,6 +9,7 @@ dtb-$(CONFIG_ARCH_MEDIATEK) += mt6797-x20-dev.dtb
 dtb-$(CONFIG_ARCH_MEDIATEK) += mt7622-rfb1.dtb
 dtb-$(CONFIG_ARCH_MEDIATEK) += mt7622-bananapi-bpi-r64.dtb
 dtb-$(CONFIG_ARCH_MEDIATEK) += mt7981b-xiaomi-ax3000t.dtb
+dtb-$(CONFIG_ARCH_MEDIATEK) += mt7986a-acelink-ew-7886cax.dtb
 dtb-$(CONFIG_ARCH_MEDIATEK) += mt7986a-bananapi-bpi-r3.dtb
 dtb-$(CONFIG_ARCH_MEDIATEK) += mt7986a-bananapi-bpi-r3-emmc.dtbo
 dtb-$(CONFIG_ARCH_MEDIATEK) += mt7986a-bananapi-bpi-r3-nand.dtbo
diff --git a/arch/arm64/boot/dts/mediatek/mt7986a-acelink-ew-7886cax.dts b/arch/arm64/boot/dts/mediatek/mt7986a-acelink-ew-7886cax.dts
new file mode 100644 (file)
index 0000000..08b3b08
--- /dev/null
@@ -0,0 +1,173 @@
+// 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";
+};