diff --git a/target/linux/ramips/dts/mt7621_dlink_dir-3040-a1.dts b/target/linux/ramips/dts/mt7621_dlink_dir-3040-a1.dts new file mode 100644 index 00000000000..4bb35a948d0 --- /dev/null +++ b/target/linux/ramips/dts/mt7621_dlink_dir-3040-a1.dts @@ -0,0 +1,67 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT + +#include "mt7621_dlink_dir-xx60-a1.dtsi" + +/ { + compatible = "dlink,dir-3040-a1", "mediatek,mt7621-soc"; + model = "D-Link DIR-3040 A1"; +}; + +&wps { + gpios = <&gpio 6 GPIO_ACTIVE_LOW>; +}; + +&leds { + usb2_white { + function = LED_FUNCTION_USB; + color = ; + function-enumerator = <0>; + gpios = <&gpio 13 GPIO_ACTIVE_LOW>; + trigger-sources = <&ehci_port2>; + linux,default-trigger = "usbport"; + }; + + usb3_white { + function = LED_FUNCTION_USB; + color = ; + function-enumerator = <1>; + gpios = <&gpio 14 GPIO_ACTIVE_LOW>; + trigger-sources = <&xhci_ehci_port1>; + linux,default-trigger = "usbport"; + }; + + wlan2g { + function = LED_FUNCTION_WLAN_2GHZ; + color = ; + gpios = <&gpio 11 GPIO_ACTIVE_HIGH>; + linux,default-trigger = "phy0radio"; + }; + + wlan5glb { + function = LED_FUNCTION_WLAN_5GHZ; + color = ; + function-enumerator = <0>; + gpios = <&gpio 9 GPIO_ACTIVE_HIGH>; + linux,default-trigger = "phy1radio"; + }; + + wlan5ghb { + function = LED_FUNCTION_WLAN_5GHZ; + color = ; + function-enumerator = <1>; + gpios = <&gpio 5 GPIO_ACTIVE_HIGH>; + linux,default-trigger = "phy2radio"; + }; +}; + +&wifi0 { + nvmem-cells = <&eeprom_factory_0>, <&macaddr_factory_e000 1>; + nvmem-cell-names = "eeprom", "mac-address"; + ieee80211-freq-limit; + /delete-property/ ieee80211-freq-limit; +}; + +&wifi1 { + nvmem-cells = <&eeprom_factory_8000>, <&macaddr_factory_e000 3>; + nvmem-cell-names = "eeprom", "mac-address"; +}; diff --git a/target/linux/ramips/dts/mt7621_dlink_dir-xx60-a1.dtsi b/target/linux/ramips/dts/mt7621_dlink_dir-xx60-a1.dtsi index 7b7228b8c36..57652fb278b 100644 --- a/target/linux/ramips/dts/mt7621_dlink_dir-xx60-a1.dtsi +++ b/target/linux/ramips/dts/mt7621_dlink_dir-xx60-a1.dtsi @@ -24,7 +24,7 @@ linux,code = ; }; - wps { + wps: wps { label = "wps"; gpios = <&gpio 18 GPIO_ACTIVE_LOW>; linux,code = ; diff --git a/target/linux/ramips/image/mt7621.mk b/target/linux/ramips/image/mt7621.mk index fb8cfce5894..10e78576140 100644 --- a/target/linux/ramips/image/mt7621.mk +++ b/target/linux/ramips/image/mt7621.mk @@ -783,6 +783,13 @@ define Device/dlink_dir-2660-a1 endef TARGET_DEVICES += dlink_dir-2660-a1 +define Device/dlink_dir-3040-a1 + $(Device/dlink_dir-xx60-a1) + DEVICE_MODEL := DIR-3040 + DEVICE_VARIANT := A1 +endef +TARGET_DEVICES += dlink_dir-3040-a1 + define Device/dlink_dir-3060-a1 $(Device/dlink_dir-xx60-a1) DEVICE_MODEL := DIR-3060 diff --git a/target/linux/ramips/mt7621/base-files/etc/board.d/01_leds b/target/linux/ramips/mt7621/base-files/etc/board.d/01_leds index 3eba20bb79a..6848bebd001 100644 --- a/target/linux/ramips/mt7621/base-files/etc/board.d/01_leds +++ b/target/linux/ramips/mt7621/base-files/etc/board.d/01_leds @@ -96,6 +96,7 @@ dlink,dir-2640-a1|\ dlink,dir-2660-a1) ucidef_set_led_netdev "wan" "wan" "white:net" "wan" ;; +dlink,dir-3040-a1|\ dlink,dir-3060-a1) ucidef_set_led_netdev "net_white" "WAN Link" "white:net" "wan" "link" ucidef_set_led_netdev "net_orange" "WAN Activity" "orange:net" "wan" "tx rx" diff --git a/target/linux/ramips/mt7621/base-files/etc/hotplug.d/ieee80211/10_fix_wifi_mac b/target/linux/ramips/mt7621/base-files/etc/hotplug.d/ieee80211/10_fix_wifi_mac index 962e1f70197..0ec46bb0eab 100644 --- a/target/linux/ramips/mt7621/base-files/etc/hotplug.d/ieee80211/10_fix_wifi_mac +++ b/target/linux/ramips/mt7621/base-files/etc/hotplug.d/ieee80211/10_fix_wifi_mac @@ -60,6 +60,11 @@ case "$board" in [ "$PHYNBR" = "1" ] && \ macaddr_add $hw_mac_addr 4 > /sys${DEVPATH}/macaddress ;; + dlink,dir-3040-a1) + lan_mac_addr="$(mtd_get_mac_binary factory 0xe000)" + [ "$PHYNBR" = "0" ] && \ + macaddr_add $lan_mac_addr 2 > /sys${DEVPATH}/macaddress + ;; dlink,dir-853-a3) [ "$PHYNBR" = "0" ] && \ macaddr_setbit_la "$(mtd_get_mac_binary factory 0xe000)" \ diff --git a/target/linux/ramips/mt7621/base-files/lib/upgrade/platform.sh b/target/linux/ramips/mt7621/base-files/lib/upgrade/platform.sh index eba02e65998..93fbc470ad5 100755 --- a/target/linux/ramips/mt7621/base-files/lib/upgrade/platform.sh +++ b/target/linux/ramips/mt7621/base-files/lib/upgrade/platform.sh @@ -73,6 +73,7 @@ platform_do_upgrade() { dlink,dir-1960-a1|\ dlink,dir-2640-a1|\ dlink,dir-2660-a1|\ + dlink,dir-3040-a1|\ dlink,dir-3060-a1|\ dlink,dir-853-a3|\ etisalat,s3|\