ramips: add support for D-Link DIR-2640 A1
authorJames McGuire <jamesm51@gmail.com>
Thu, 5 Nov 2020 05:13:19 +0000 (21:13 -0800)
committerAdrian Schmutzler <freifunk@adrianschmutzler.de>
Wed, 11 Nov 2020 16:35:10 +0000 (17:35 +0100)
This patch adds support for D-Link DIR-2640 A1.

Specifications:
* Board: AP-MTKH7-0002
* SoC: MediaTek MT7621AT
* RAM: 256 MB (DDR3)
* Flash: 128 MB (NAND)
* WiFi: MediaTek MT7615N (x2)
* Switch: 1 WAN, 4 LAN (Gigabit)
* Ports: 1 USB 2.0, 1 USB 3.0
* Buttons: Reset, WPS
* LEDs: Power (blue/orange), Internet (blue/orange), WiFi 2.4G (blue),
        WiFi 5G (blue), USB 3.0 (blue), USB 2.0 (blue)

Notes:
* WiFi 2.4G and WiFi 5G LEDs are wired directly to the wireless chips

Installation:
* D-Link Recovery GUI: power down the router, press and hold the reset
  button, then re-plug it. Keep the reset button pressed until the power
  LED starts flashing orange, manually assign a static IP address under
  the 192.168.0.xxx subnet (e.g. 192.168.0.2) and go to http://192.168.0.1

* Some modern browsers may have problems flashing via the Recovery GUI,
  if that occurs consider uploading the firmware through cURL:

    curl -v -i -F "firmware=@file.bin" 192.168.0.1

MAC addresses:

lan   factory 0xe000     *:a7 (label)
wan   factory 0xe006     *:aa
2.4   factory 0xe000 +1  *:a8
5.0   factory 0xe000 +2  *:a9

Seems like vendor didn't replace the dummy entries in the calibration data.

Signed-off-by: James McGuire <jamesm51@gmail.com>
[fix device definition title]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
target/linux/ramips/dts/mt7621_dlink_dir-2640-a1.dts [new file with mode: 0644]
target/linux/ramips/image/mt7621.mk
target/linux/ramips/mt7621/base-files/etc/board.d/01_leds
target/linux/ramips/mt7621/base-files/lib/upgrade/platform.sh

diff --git a/target/linux/ramips/dts/mt7621_dlink_dir-2640-a1.dts b/target/linux/ramips/dts/mt7621_dlink_dir-2640-a1.dts
new file mode 100644 (file)
index 0000000..323a790
--- /dev/null
@@ -0,0 +1,34 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+
+#include "mt7621_dlink_dir-xx60-a1.dtsi"
+
+/ {
+       compatible = "dlink,dir-2640-a1", "mediatek,mt7621-soc";
+       model = "D-Link DIR-2640 A1";
+};
+
+&leds {
+       usb2_white {
+               label = "white:usb2";
+               gpios = <&gpio 13 GPIO_ACTIVE_LOW>;
+               trigger-sources = <&ehci_port2>;
+               linux,default-trigger = "usbport";
+       };
+
+       usb3_white {
+               label = "white:usb3";
+               gpios = <&gpio 14 GPIO_ACTIVE_LOW>;
+               trigger-sources = <&xhci_ehci_port1>;
+               linux,default-trigger = "usbport";
+       };
+};
+
+&wifi0 {
+       mtd-mac-address = <&factory 0xe000>;
+       mtd-mac-address-increment = <1>;
+};
+
+&wifi1 {
+       mtd-mac-address = <&factory 0xe000>;
+       mtd-mac-address-increment = <2>;
+};
index bb7e5a0d4845e5ca962daeefdb42cf174b6641f2..7e5266a2943a22e9036883079e928c15cfc53b80 100644 (file)
@@ -274,6 +274,13 @@ define Device/dlink_dir-1960-a1
 endef
 TARGET_DEVICES += dlink_dir-1960-a1
 
+define Device/dlink_dir-2640-a1
+  $(Device/dlink_dir-xx60-a1)
+  DEVICE_MODEL := DIR-2640
+  DEVICE_VARIANT := A1
+endef
+TARGET_DEVICES += dlink_dir-2640-a1
+
 define Device/dlink_dir-2660-a1
   $(Device/dlink_dir-xx60-a1)
   DEVICE_MODEL := DIR-2660
index a492132c79b06d4fc4083a61e68f5805946a915b..3dd2a218b9a5543168ee3a0991bc5eff551576bc 100755 (executable)
@@ -19,6 +19,7 @@ xzwifi,creativebox-v1)
        ucidef_set_led_netdev "internet" "internet" "blue:internet" "wan"
        ;;
 dlink,dir-1960-a1|\
+dlink,dir-2640-a1|\
 dlink,dir-2660-a1)
        ucidef_set_led_netdev "wan" "wan" "white:net" "wan"
        ;;
index 442e78df3ca023cd030971087ae1d8618e70cd42..b4d07f8146c394c8d6e5d2c9778ff8b49691a6cd 100755 (executable)
@@ -46,6 +46,7 @@ platform_do_upgrade() {
        asus,rt-ac65p|\
        asus,rt-ac85p|\
        dlink,dir-1960-a1|\
+       dlink,dir-2640-a1|\
        dlink,dir-2660-a1|\
        hiwifi,hc5962|\
        linksys,ea7300-v1|\