ath79: add support for D-Link DAP-2680 A1
authorSebastian Schaper <openwrt@sebastianschaper.net>
Wed, 2 Dec 2020 20:31:19 +0000 (21:31 +0100)
committerAdrian Schmutzler <freifunk@adrianschmutzler.de>
Mon, 4 Jan 2021 00:09:32 +0000 (01:09 +0100)
Specifications:
 * QCA9558, 16 MiB Flash, 256 MiB RAM, 802.11n 3T3R
 * QCA9984, 802.11ac Wave 2 3T3R
 * Gigabit LAN Port (AR8035), 802.11at PoE

Installation:
 * Factory Web UI is at 192.168.0.50
   login with 'admin' and blank password, flash factory.bin
 * Recovery Web UI is at 192.168.0.50
   connect network cable, hold reset button during power-on and keep it
   pressed until uploading has started (only required when checksum is ok,
   e.g. for reverting back to oem firmware), flash factory.bin

After flashing factory.bin, additional free space can be reclaimed by
flashing sysupgrade.bin, since the factory image requires some padding
to be accepted for upgrading via OEM Web UI.

Signed-off-by: Sebastian Schaper <openwrt@sebastianschaper.net>
target/linux/ath79/dts/qca9558_dlink_dap-2680-a1.dts [new file with mode: 0644]
target/linux/ath79/generic/base-files/etc/board.d/02_network
target/linux/ath79/generic/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
target/linux/ath79/generic/base-files/etc/hotplug.d/ieee80211/10_fix_wifi_mac
target/linux/ath79/generic/base-files/etc/uci-defaults/09_fix-checksum
target/linux/ath79/image/generic.mk

diff --git a/target/linux/ath79/dts/qca9558_dlink_dap-2680-a1.dts b/target/linux/ath79/dts/qca9558_dlink_dap-2680-a1.dts
new file mode 100644 (file)
index 0000000..c3c8293
--- /dev/null
@@ -0,0 +1,89 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+
+#include "qca955x.dtsi"
+#include "qca95xx_dlink_dap-2xxx.dtsi"
+
+/ {
+       compatible = "dlink,dap-2680-a1", "qca,qca9558";
+       model = "D-Link DAP-2680 A1";
+
+       aliases {
+               led-boot = &led_power_green;
+               led-failsafe = &led_power_red;
+               led-running = &led_power_green;
+               led-upgrade = &led_power_red;
+       };
+
+       keys {
+               compatible = "gpio-keys";
+
+               reset {
+                       label = "reset";
+                       linux,code = <KEY_RESTART>;
+                       gpios = <&gpio 18 GPIO_ACTIVE_LOW>;
+               };
+       };
+
+       leds {
+               compatible = "gpio-leds";
+
+               led_power_red: power_red {
+                       label = "red:power";
+                       gpios = <&gpio 20 GPIO_ACTIVE_LOW>;
+               };
+
+               led_power_green: power_green {
+                       label = "green:power";
+                       gpios = <&gpio 19 GPIO_ACTIVE_LOW>;
+                       default-state = "on";
+               };
+       };
+};
+
+&partitions {
+       partition@70000 {
+               label = "firmware";
+               reg = <0x70000 0xee0000>;
+               compatible = "wrg";
+       };
+
+       partition@f50000 {
+               label = "dlink";
+               reg = <0xf50000 0xa0000>;
+               read-only;
+       };
+
+       art: partition@ff0000 {
+               label = "art";
+               reg = <0xff0000 0x10000>;
+               read-only;
+       };
+};
+
+&mdio0 {
+       status = "okay";
+
+       phy4: ethernet-phy@4 {
+               reg = <4>;
+       };
+};
+
+&eth0 {
+       status = "okay";
+
+       pll-data = <0x82000000 0x80000101 0x80001313>;
+
+       phy-handle = <&phy4>;
+       phy-mode = "rgmii-id";
+
+       gmac-config {
+               device = <&gmac>;
+               rgmii-enabled = <1>;
+               rxd-delay = <3>;
+               rxdv-delay = <3>;
+       };
+};
+
+&pcie0 {
+       status = "okay";
+};
index 86c9a0b8d68218977aa536a4b11eeb2cc04bd06d..23b824d7e32899f379e6c7ccea5bf7c62eace582 100755 (executable)
@@ -28,6 +28,7 @@ ath79_setup_interfaces()
        dlink,dap-1330-a1|\
        dlink,dap-1365-a1|\
        dlink,dap-2230-a1|\
+       dlink,dap-2680-a1|\
        dlink,dir-505|\
        engenius,eap300-v2|\
        engenius,eap350-v1|\
@@ -483,7 +484,8 @@ ath79_setup_macs()
                label_mac=$lan_mac
                ;;
        dlink,dap-2230-a1|\
-       dlink,dap-2660-a1)
+       dlink,dap-2660-a1|\
+       dlink,dap-2680-a1)
                lan_mac=$(mtd_get_mac_ascii bdcfg "lanmac")
                label_mac=$lan_mac
                ;;
index 3ab01afcf37dc2acdf14f8da6ba1cfd4e7f4aa47..295bc1b18008328330dcce5c696ad795647166a1 100644 (file)
@@ -174,6 +174,12 @@ case "$FIRMWARE" in
                        /lib/firmware/ath10k/QCA9888/hw2.0/board.bin
                rm /lib/firmware/ath10k/QCA9888/hw2.0/board-2.bin
                ;;
+       dlink,dap-2680-a1)
+               caldata_extract "art" 0x5000 0x2f20
+               ath10k_patch_mac $(mtd_get_mac_ascii bdcfg wlanmac_a)
+               ln -sf /lib/firmware/ath10k/pre-cal-pci-0000\:00\:00.0.bin \
+                       /lib/firmware/ath10k/QCA9888/hw2.0/board.bin
+               ;;
        dlink,dir-842-c1|\
        dlink,dir-842-c2|\
        dlink,dir-842-c3)
index c3dc2a8b5b3eb70009e8c930b96415309b8e1dab..8923a2cb114ebf68f222a73904eef1bd9ffe78ef 100644 (file)
@@ -25,7 +25,8 @@ case "$board" in
        dlink,dap-2230-a1)
                mtd_get_mac_ascii bdcfg "wlanmac" > /sys${DEVPATH}/macaddress
                ;;
-       dlink,dap-2660-a1)
+       dlink,dap-2660-a1|\
+       dlink,dap-2680-a1)
                [ "$PHYNBR" -eq 1 ] && \
                        mtd_get_mac_ascii bdcfg "wlanmac" > /sys${DEVPATH}/macaddress
                ;;
index 9b982130227c95a56f57bbf140ec73795df38392..0bbe32178849459c0745d3095020bdf04bf8cd57 100644 (file)
@@ -15,6 +15,7 @@ board=$(board_name)
 case "$board" in
 dlink,dap-2230-a1|\
 dlink,dap-2660-a1|\
+dlink,dap-2680-a1|\
 dlink,dap-2695-a1)
        fixwrgg
        ;;
index 080c6a1603794c311ba2bdc66a7d91ca035bf63b..26ab0fcb34b7cd624e877c9b967b7290740f0c98 100644 (file)
@@ -772,6 +772,18 @@ define Device/dlink_dap-2660-a1
 endef
 TARGET_DEVICES += dlink_dap-2660-a1
 
+define Device/dlink_dap-2680-a1
+  $(Device/dlink_dap-2xxx)
+  SOC := qca9558
+  DEVICE_VENDOR := D-Link
+  DEVICE_MODEL := DAP-2680
+  DEVICE_VARIANT := A1
+  DEVICE_PACKAGES := ath10k-firmware-qca99x0-ct kmod-ath10k-ct
+  IMAGE_SIZE := 15232k
+  DAP_SIGNATURE := wapac36_dkbs_dap2680
+endef
+TARGET_DEVICES += dlink_dap-2680-a1
+
 define Device/dlink_dap-2695-a1
   SOC := qca9558
   DEVICE_PACKAGES := ath10k-firmware-qca988x-ct kmod-ath10k-ct