ath79: add support for D-Link DIR-859 A3

Specifications:
  SOC:      QCA9563 775 MHz + QCA9880
  Switch:   QCA8337N-AL3C
  RAM:      Winbond W9751G6KB-25 64 MiB
  Flash:    Winbond W25Q128FVSG 16 MiB
  WLAN:     Wi-Fi4 2.4 GHz 3*3 + 5 GHz 3*3
  LAN:      LAN ports *4
  WAN:      WAN port *1
  Buttons:  reset *1 + wps *1
  LEDs: ethernet *5, power, wlan, wps

MAC Address:
  use      address               source1          source2
  label    40:9b:xx:xx:xx:3c     lan && wlan      u-boot,env@ethaddr
  lan      40:9b:xx:xx:xx:3c     devdata@0x3f     $label
  wan      40:9b:xx:xx:xx:3f     devdata@0x8f     $label + 3
  wlan2g   40:9b:xx:xx:xx:3c     devdata@0x5b     $label
  wlan5g   40:9b:xx:xx:xx:3e     devdata@0x76     $label + 2

Install via Web UI:
  Apply factory image in the stock firmware's Web UI.

Install via Emergency Room Mode:
  DIR-859 A1 will enter recovery mode when the system fails to boot
  or press reset button for about 10 seconds.

  First, set computer IP to 192.168.0.5 and Gateway to 192.168.0.1.
  Then we can open http://192.168.0.1 in the web browser to upload
  OpenWrt factory image or stock firmware. Some modern browsers may
  need to turn on compatibility mode.

Signed-off-by: Shiji Yang <yangshiji66@qq.com>
This commit is contained in:
Shiji Yang 2023-05-05 01:50:36 +00:00 committed by Christian Lamparter
parent e5d8739aa8
commit 0ffbef9317
7 changed files with 88 additions and 4 deletions

View File

@ -28,6 +28,7 @@ arduino,yun|\
buffalo,bhr-4grv2|\ buffalo,bhr-4grv2|\
devolo,magic-2-wifi|\ devolo,magic-2-wifi|\
dlink,dir-859-a1|\ dlink,dir-859-a1|\
dlink,dir-859-a3|\
dlink,dir-869-a1|\ dlink,dir-869-a1|\
engenius,eap1200h|\ engenius,eap1200h|\
engenius,eap1750h|\ engenius,eap1750h|\

View File

@ -0,0 +1,64 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
#include "qca9563_dlink_dir-8x9-a1.dtsi"
#include <dt-bindings/leds/common.h>
/ {
compatible = "dlink,dir-859-a3", "qca,qca9563";
model = "D-Link DIR-859 A3";
aliases {
label-mac-device = &wmac;
led-boot = &led_power;
led-failsafe = &led_power;
led-running = &led_power;
led-upgrade = &led_power;
};
leds {
compatible = "gpio-leds";
led_power: power {
label = "green:power";
color = <LED_COLOR_ID_GREEN>;
function = LED_FUNCTION_POWER;
gpios = <&gpio 15 GPIO_ACTIVE_LOW>;
};
wan {
color = <LED_COLOR_ID_GREEN>;
function = LED_FUNCTION_WAN;
gpios = <&gpio 16 GPIO_ACTIVE_LOW>;
};
wlan {
color = <LED_COLOR_ID_GREEN>;
function = LED_FUNCTION_WLAN;
gpios = <&gpio 19 GPIO_ACTIVE_LOW>;
linux,default-trigger = "phy0tpt";
};
wps {
color = <LED_COLOR_ID_GREEN>;
function = LED_FUNCTION_WPS;
gpios = <&gpio 8 GPIO_ACTIVE_LOW>;
};
};
};
&ath10k {
nvmem-cells = <&calibration_ath10k>, <&macaddr_bdcfg_ethaddr 2>;
nvmem-cell-names = "calibration", "mac-address";
};
&bdcfg {
macaddr_bdcfg_ethaddr: ethaddr {
#nvmem-cell-cells = <1>;
};
};
&wmac {
nvmem-cells = <&calibration_ath9k>, <&macaddr_bdcfg_ethaddr 0>;
nvmem-cell-names = "calibration", "mac-address";
};

View File

@ -28,7 +28,7 @@
&pcie { &pcie {
status = "okay"; status = "okay";
wifi@0,0 { ath10k: wifi@0,0 {
compatible = "qcom,ath10k"; compatible = "qcom,ath10k";
reg = <0x0000 0 0 0 0>; reg = <0x0000 0 0 0 0>;
@ -56,7 +56,7 @@
read-only; read-only;
}; };
partition@40000 { bdcfg: partition@40000 {
compatible = "u-boot,env"; compatible = "u-boot,env";
label = "bdcfg"; label = "bdcfg";
reg = <0x040000 0x010000>; reg = <0x040000 0x010000>;

View File

@ -234,6 +234,9 @@ dlink,dap-1365-a1)
dlink,dir-859-a1) dlink,dir-859-a1)
ucidef_set_led_switch "internet" "WAN" "green:internet" "switch0" "0x20" ucidef_set_led_switch "internet" "WAN" "green:internet" "switch0" "0x20"
;; ;;
dlink,dir-859-a3)
ucidef_set_led_switch "wan" "WAN" "green:wan" "switch0" "0x20"
;;
engenius,ens202ext-v1|\ engenius,ens202ext-v1|\
engenius,enstationac-v1) engenius,enstationac-v1)
ucidef_set_rssimon "wlan0" "200000" "1" ucidef_set_rssimon "wlan0" "200000" "1"

View File

@ -291,6 +291,7 @@ ath79_setup_interfaces()
dlink,dir-842-c2|\ dlink,dir-842-c2|\
dlink,dir-842-c3|\ dlink,dir-842-c3|\
dlink,dir-859-a1|\ dlink,dir-859-a1|\
dlink,dir-859-a3|\
dlink,dir-869-a1|\ dlink,dir-869-a1|\
engenius,epg5000|\ engenius,epg5000|\
engenius,esr1200|\ engenius,esr1200|\
@ -661,6 +662,10 @@ ath79_setup_macs()
lan_mac=$(mtd_get_mac_text "devdata" 0xc9) lan_mac=$(mtd_get_mac_text "devdata" 0xc9)
wan_mac=$(mtd_get_mac_text "devdata" 0x79) wan_mac=$(mtd_get_mac_text "devdata" 0x79)
;; ;;
dlink,dir-859-a3)
lan_mac=$(get_mac_label)
wan_mac=$(macaddr_add "$lan_mac" 3)
;;
qihoo,c301|\ qihoo,c301|\
wd,mynet-n600|\ wd,mynet-n600|\
wd,mynet-n750) wd,mynet-n750)

View File

@ -23,6 +23,7 @@ dlink,dap-3662-a1)
;; ;;
dlink,dir-629-a1|\ dlink,dir-629-a1|\
dlink,dir-859-a1|\ dlink,dir-859-a1|\
dlink,dir-859-a3|\
dlink,dir-869-a1|\ dlink,dir-869-a1|\
qihoo,c301) qihoo,c301)
fix_seama_header fix_seama_header

View File

@ -1143,18 +1143,28 @@ define Device/dlink_dir-842-c3
endef endef
TARGET_DEVICES += dlink_dir-842-c3 TARGET_DEVICES += dlink_dir-842-c3
define Device/dlink_dir-859-a1 define Device/dlink_dir-859-ax
$(Device/seama) $(Device/seama)
SOC := qca9563 SOC := qca9563
DEVICE_VENDOR := D-Link DEVICE_VENDOR := D-Link
DEVICE_MODEL := DIR-859 DEVICE_MODEL := DIR-859
DEVICE_VARIANT := A1
IMAGE_SIZE := 15872k IMAGE_SIZE := 15872k
DEVICE_PACKAGES := kmod-usb2 kmod-ath10k-ct-smallbuffers ath10k-firmware-qca988x-ct DEVICE_PACKAGES := kmod-usb2 kmod-ath10k-ct-smallbuffers ath10k-firmware-qca988x-ct
SEAMA_SIGNATURE := wrgac37_dlink.2013gui_dir859 SEAMA_SIGNATURE := wrgac37_dlink.2013gui_dir859
endef endef
define Device/dlink_dir-859-a1
$(Device/dlink_dir-859-ax)
DEVICE_VARIANT := A1
endef
TARGET_DEVICES += dlink_dir-859-a1 TARGET_DEVICES += dlink_dir-859-a1
define Device/dlink_dir-859-a3
$(Device/dlink_dir-859-ax)
DEVICE_VARIANT := A3
endef
TARGET_DEVICES += dlink_dir-859-a3
define Device/dlink_dir-869-a1 define Device/dlink_dir-869-a1
$(Device/seama) $(Device/seama)
SOC := qca9563 SOC := qca9563