Skip to content

Commit

Permalink
mediatek: add support for Acer Predator W6d and Acer Vero W6m
Browse files Browse the repository at this point in the history
This commit adds support for two variants of the already supported router
Acer Predator Connect W6: The Acer Predator Connect W6d (W6 without 6 GHz
wifi) and the Acer Connect Vero W6m (W6 without 2.5G eth1 port, usb3 port,
and the 6 on-board gpio RGB LEDs, and with a KTD2026 RGB LED controller
instead of the KTD2061 LED controller of the W6/W6d).

The device tree for the W6m refers to the KTD202x driver suggested in
PR #16860.

Patching target/linux/mediatek/filogic/base-files/lib/upgrade/platform.sh
removes the code repetition in (old) lines 121 to 124 on the occasion.

This is the last of four commits into which the original commit was split
to make reviews easier and more targeted.

Signed-off-by: George Oldfort <[email protected]>
Link: openwrt/openwrt#16861
Signed-off-by: Hauke Mehrtens <[email protected]>
  • Loading branch information
goldwrt authored and hauke committed Nov 23, 2024
1 parent d42075d commit 2898d1d
Show file tree
Hide file tree
Showing 8 changed files with 312 additions and 12 deletions.
2 changes: 2 additions & 0 deletions package/boot/uboot-envtools/files/mediatek_filogic
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,8 @@ zyxel,ex5601-t0-ubootmod)
ubootenv_add_ubi_default
;;
acer,predator-w6|\
acer,predator-w6d|\
acer,vero-w6m|\
glinet,gl-mt2500|\
glinet,gl-mt6000|\
glinet,gl-x3000|\
Expand Down
182 changes: 182 additions & 0 deletions target/linux/mediatek/dts/mt7986a-acer-predator-w6d.dts
Original file line number Diff line number Diff line change
@@ -0,0 +1,182 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT

/dts-v1/;
#include "mt7986a-acer-w6-common.dtsi"

/ {
model = "Acer Predator Connect W6d";
compatible = "acer,predator-w6d", "mediatek,mt7986a";

aliases {
serial0 = &uart0;
led-boot = &led_status_blue;
led-failsafe = &led_status_blue;
led-running = &led_status_green;
led-upgrade = &led_status_red;
};

leds {
compatible = "gpio-leds";

led_status_red: led-0 {
color = <LED_COLOR_ID_RED>;
function = LED_FUNCTION_STATUS;
function-enumerator = <0>;
gpios = <&pio 1 GPIO_ACTIVE_HIGH>;
};

led_status_green: led-1 {
color = <LED_COLOR_ID_GREEN>;
function = LED_FUNCTION_STATUS;
function-enumerator = <0>;
gpios = <&pio 2 GPIO_ACTIVE_HIGH>;
};

led_status_blue: led-2 {
color = <LED_COLOR_ID_BLUE>;
function = LED_FUNCTION_STATUS;
function-enumerator = <0>;
gpios = <&pio 36 GPIO_ACTIVE_HIGH>;
};

led-3 {
color = <LED_COLOR_ID_RED>;
function = LED_FUNCTION_STATUS;
function-enumerator = <1>;
gpios = <&pio 35 GPIO_ACTIVE_HIGH>;
};

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

led-5 {
color = <LED_COLOR_ID_BLUE>;
function = LED_FUNCTION_STATUS;
function-enumerator = <1>;
gpios = <&pio 33 GPIO_ACTIVE_HIGH>;
};

led-6 {
color = <LED_COLOR_ID_RED>;
function = LED_FUNCTION_STATUS;
function-enumerator = <2>;
gpios = <&pio 38 GPIO_ACTIVE_HIGH>;
};

led-7 {
color = <LED_COLOR_ID_GREEN>;
function = LED_FUNCTION_STATUS;
function-enumerator = <2>;
gpios = <&pio 37 GPIO_ACTIVE_HIGH>;
};

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

led-9 {
color = <LED_COLOR_ID_RED>;
function = LED_FUNCTION_STATUS;
function-enumerator = <3>;
gpios = <&pio 25 GPIO_ACTIVE_HIGH>;
};

led-10 {
color = <LED_COLOR_ID_GREEN>;
function = LED_FUNCTION_STATUS;
function-enumerator = <3>;
gpios = <&pio 24 GPIO_ACTIVE_HIGH>;
};

led-11 {
color = <LED_COLOR_ID_BLUE>;
function = LED_FUNCTION_STATUS;
function-enumerator = <3>;
gpios = <&pio 23 GPIO_ACTIVE_HIGH>;
};

led-12 {
color = <LED_COLOR_ID_RED>;
function = LED_FUNCTION_STATUS;
function-enumerator = <4>;
gpios = <&pio 28 GPIO_ACTIVE_HIGH>;
};

led-13 {
color = <LED_COLOR_ID_GREEN>;
function = LED_FUNCTION_STATUS;
function-enumerator = <4>;
gpios = <&pio 27 GPIO_ACTIVE_HIGH>;
};

led-14 {
color = <LED_COLOR_ID_BLUE>;
function = LED_FUNCTION_STATUS;
function-enumerator = <4>;
gpios = <&pio 32 GPIO_ACTIVE_HIGH>;
};

led-15 {
color = <LED_COLOR_ID_RED>;
function = LED_FUNCTION_STATUS;
function-enumerator = <5>;
gpios = <&pio 45 GPIO_ACTIVE_HIGH>;
};

led-16 {
color = <LED_COLOR_ID_GREEN>;
function = LED_FUNCTION_STATUS;
function-enumerator = <5>;
gpios = <&pio 44 GPIO_ACTIVE_HIGH>;
};

led-17 {
color = <LED_COLOR_ID_BLUE>;
function = LED_FUNCTION_STATUS;
function-enumerator = <5>;
gpios = <&pio 43 GPIO_ACTIVE_HIGH>;
};
};
};

&ssusb {
vusb33-supply = <&reg_3p3v>;
vbus-supply = <&reg_5v>;
status = "okay";
};

&usb_phy {
status = "okay";
};

&eth {
gmac1: mac@1 {
compatible = "mediatek,eth-mac";
reg = <1>;
phy-mode = "2500base-x";
phy-handle = <&phy6>;
};
};

&mdio {
phy6: phy@6 {
compatible = "ethernet-phy-ieee802.3-c45";
reg = <6>;
reset-gpios = <&pio 6 GPIO_ACTIVE_LOW>;
reset-assert-us = <10000>;
reset-deassert-us = <10000>;
/* LED0: nc ; LED1: nc ; LED2: amber ; LED3: green */
mxl,led-config = <0x0 0x0 0x370 0x380>;
};
};

&swport0 {
label = "game";
};
66 changes: 66 additions & 0 deletions target/linux/mediatek/dts/mt7986a-acer-vero-w6m.dts
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT

/dts-v1/;
#include "mt7986a-acer-w6-common.dtsi"

/ {
model = "Acer Connect Vero W6m";
compatible = "acer,vero-w6m", "mediatek,mt7986a";

aliases {
serial0 = &uart0;
led-boot = &led_status;
led-failsafe = &led_status;
led-running = &led_status;
led-upgrade = &led_status;
};
};

&i2c0 {
led-controller@30 {
compatible = "kinetic,ktd2026";
reg = <0x30>;
vin-supply = <&reg_5v>;
vio-supply = <&reg_3p3v>;

led_status: multi-led {
color = <LED_COLOR_ID_RGB>;
function = LED_FUNCTION_STATUS;
#address-cells = <1>;
#size-cells = <0>;

led@0 {
reg = <0>;
color = <LED_COLOR_ID_RED>;
};

led@1 {
reg = <1>;
color = <LED_COLOR_ID_GREEN>;
};

led@2 {
reg = <2>;
color = <LED_COLOR_ID_BLUE>;
};
};
};
};

&nvmem {
eeprom_factory_a0000: eeprom@a0000 {
reg = <0xa0000 0x1000>;
};
};

&slot0 {
radio0: mt7915@0,0 {
reg = <0x0000 0 0 0 0>;
nvmem-cells = <&eeprom_factory_a0000>;
nvmem-cell-names = "eeprom";
};
};

&swport0 {
label = "internet";
};
10 changes: 8 additions & 2 deletions target/linux/mediatek/filogic/base-files/etc/board.d/02_network
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,13 @@ mediatek_setup_interfaces()
acelink,ew-7886cax)
ucidef_set_interface_lan "eth0" "dhcp"
;;
acer,predator-w6)
acer,predator-w6|\
acer,predator-w6d)
ucidef_set_interfaces_lan_wan "lan1 lan2 lan3 game" eth1
;;
acer,vero-w6m)
ucidef_set_interfaces_lan_wan "lan1 lan2 lan3" internet
;;
arcadyan,mozart)
ucidef_set_interfaces_lan_wan "lan0 eth1" eth2
;;
Expand Down Expand Up @@ -132,7 +136,9 @@ mediatek_setup_macs()
local label_mac=""

case $board in
acer,predator-w6)
acer,predator-w6|\
acer,predator-w6d|\
acer,vero-w6m)
wan_mac=$(mmc_get_mac_ascii u-boot-env WANMAC)
lan_mac=$(mmc_get_mac_ascii u-boot-env LANMAC)
;;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,16 @@ case "$board" in
[ "$PHYNBR" = "0" ] && macaddr_add $addr 1 > /sys${DEVPATH}/macaddress
[ "$PHYNBR" = "1" ] && macaddr_setbit_la $addr > /sys${DEVPATH}/macaddress
;;
acer,predator-w6)
acer,predator-w6|\
acer,vero-w6m)
[ "$PHYNBR" = "0" ] && mmc_get_mac_ascii u-boot-env 2gMAC > /sys${DEVPATH}/macaddress
[ "$PHYNBR" = "1" ] && mmc_get_mac_ascii u-boot-env 6gMAC > /sys${DEVPATH}/macaddress
[ "$PHYNBR" = "2" ] && mmc_get_mac_ascii u-boot-env 5gMAC > /sys${DEVPATH}/macaddress
;;
acer,predator-w6d)
[ "$PHYNBR" = "0" ] && mmc_get_mac_ascii u-boot-env 2gMAC > /sys${DEVPATH}/macaddress
[ "$PHYNBR" = "1" ] && mmc_get_mac_ascii u-boot-env 5gMAC > /sys${DEVPATH}/macaddress
;;
asus,rt-ax59u)
CI_UBIPART="UBI_DEV"
addr=$(mtd_get_mac_binary_ubi "Factory" 0x4)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@

preinit_set_mac_address() {
case $(board_name) in
acer,predator-w6)
acer,predator-w6|\
acer,predator-w6d)
$(mmc_get_mac_ascii u-boot-env WANMAC)
$(mmc_get_mac_ascii u-boot-env LANMAC)
ip link set dev lan1 address "$lan_mac"
Expand All @@ -11,6 +12,14 @@ preinit_set_mac_address() {
ip link set dev game address "$lan_mac"
ip link set dev eth1 address "$wan_mac"
;;
acer,vero-w6m)
wan_mac=$(mmc_get_mac_ascii u-boot-env WANMAC)
lan_mac=$(mmc_get_mac_ascii u-boot-env LANMAC)
ip link set dev lan1 address "$lan_mac"
ip link set dev lan2 address "$lan_mac"
ip link set dev lan3 address "$lan_mac"
ip link set dev internet address "$wan_mac"
;;
asus,tuf-ax4200|\
asus,tuf-ax6000)
CI_UBIPART="UBI_DEV"
Expand Down
16 changes: 8 additions & 8 deletions target/linux/mediatek/filogic/base-files/lib/upgrade/platform.sh
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,13 @@ platform_do_upgrade() {
fit_do_upgrade "$1"
;;
acer,predator-w6|\
acer,predator-w6d|\
acer,vero-w6m|\
arcadyan,mozart|\
glinet,gl-mt2500|\
glinet,gl-mt6000|\
glinet,gl-x3000|\
glinet,gl-xe3000|\
smartrg,sdg-8612|\
smartrg,sdg-8614|\
smartrg,sdg-8622|\
Expand All @@ -115,14 +121,6 @@ platform_do_upgrade() {
yuncore,ax835)
default_do_upgrade "$1"
;;
glinet,gl-mt2500|\
glinet,gl-mt6000|\
glinet,gl-x3000|\
glinet,gl-xe3000)
CI_KERNPART="kernel"
CI_ROOTPART="rootfs"
emmc_do_upgrade "$1"
;;
mercusys,mr90x-v1|\
tplink,re6000xd)
CI_UBIPART="ubi0"
Expand Down Expand Up @@ -204,6 +202,8 @@ platform_copy_config() {
fi
;;
acer,predator-w6|\
acer,predator-w6d|\
acer,vero-w6m|\
arcadyan,mozart|\
glinet,gl-mt2500|\
glinet,gl-mt6000|\
Expand Down
Loading

0 comments on commit 2898d1d

Please sign in to comment.