[openwrt/openwrt] ath79: add support for D-Link DIR-629 A1
LEDE Commits
lede-commits at lists.infradead.org
Wed Jan 25 15:33:14 PST 2023
hauke pushed a commit to openwrt/openwrt.git, branch master:
https://git.openwrt.org/cfb296b79a9568386267828374eb5f2dd3ba0d37
commit cfb296b79a9568386267828374eb5f2dd3ba0d37
Author: Shiji Yang <yangshiji66 at qq.com>
AuthorDate: Thu Jan 19 14:20:59 2023 +0000
ath79: add support for D-Link DIR-629 A1
Specifications:
SOC: QCA9588 CPU 720 MHz AHB 200 MHz
Switch: AR8236
RAM: 64 MiB DDR2-600
Flash: 8 MiB
WLAN: Wi-Fi4 2.4 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 source
label 70:62:b8:xx:xx:96 lan && wlan
lan 70:62:b8:xx:xx:96 mfcdata at 0x35
wan 70:62:b8:xx:xx:97 mfcdata at 0x6a
wlan 70:62:b8:xx:xx:96 mfcdata at 0x51
Install via Web UI:
Apply factory image in the stock firmware's Web UI.
Install via Emergency Room Mode:
DIR-629 A1 will enter recovery mode when the system fails to boot or
press reset button for about 10 seconds.
First, set IP address to 192.168.0.1 and server IP to 192.168.0.10.
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 at qq.com>
---
.../linux/ath79/dts/qca9558_dlink_dir-629-a1.dts | 170 +++++++++++++++++++++
.../generic/base-files/etc/board.d/02_network | 4 +
.../base-files/etc/uci-defaults/09_fix-checksum | 1 +
target/linux/ath79/image/generic.mk | 13 ++
4 files changed, 188 insertions(+)
diff --git a/target/linux/ath79/dts/qca9558_dlink_dir-629-a1.dts b/target/linux/ath79/dts/qca9558_dlink_dir-629-a1.dts
new file mode 100644
index 0000000000..41b0039e93
--- /dev/null
+++ b/target/linux/ath79/dts/qca9558_dlink_dir-629-a1.dts
@@ -0,0 +1,170 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+
+#include "qca955x.dtsi"
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/leds/common.h>
+
+/ {
+ compatible = "dlink,dir-629-a1", "qca,qca9558";
+ model = "D-Link DIR-629 A1";
+
+ aliases {
+ label-mac-device = ð0;
+ led-boot = &led_power;
+ led-failsafe = &led_power;
+ led-running = &led_power;
+ led-upgrade = &led_power;
+ serial0 = &uart;
+ };
+
+ keys {
+ compatible = "gpio-keys";
+
+ reset {
+ label = "reset";
+ linux,code = <KEY_RESTART>;
+ gpios = <&gpio 17 GPIO_ACTIVE_LOW>;
+ };
+
+ wps {
+ label = "wps";
+ linux,code = <KEY_WPS_BUTTON>;
+ gpios = <&gpio 11 GPIO_ACTIVE_LOW>;
+ };
+ };
+
+ leds {
+ compatible = "gpio-leds";
+
+ led-0 {
+ color = <LED_COLOR_ID_GREEN>;
+ function = LED_FUNCTION_WLAN;
+ gpios = <&gpio 13 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "phy0tpt";
+ };
+
+ led_power: led-1 {
+ label = "green:power";
+ color = <LED_COLOR_ID_GREEN>;
+ function = LED_FUNCTION_POWER;
+ gpios = <&gpio 21 GPIO_ACTIVE_LOW>;
+ };
+
+ led-2 {
+ color = <LED_COLOR_ID_GREEN>;
+ function = LED_FUNCTION_WPS;
+ gpios = <&gpio 23 GPIO_ACTIVE_LOW>;
+ };
+ };
+};
+
+ð0 {
+ status = "okay";
+
+ phy-mode = "mii";
+
+ nvmem-cells = <&macaddr_mfcdata_35>;
+ nvmem-cell-names = "mac-address-ascii";
+
+ fixed-link {
+ speed = <100>;
+ full-duplex;
+ };
+};
+
+&mdio0 {
+ status = "okay";
+
+ switch0 at 1f {
+ compatible = "qca,ar8236";
+ reg = <0x1f>;
+ };
+};
+
+&spi {
+ status = "okay";
+
+ flash at 0 {
+ compatible = "jedec,spi-nor";
+ reg = <0>;
+ spi-max-frequency = <30000000>;
+ m25p,fast-read;
+
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition at 0 {
+ label = "u-boot";
+ reg = <0x000000 0x040000>;
+ read-only;
+ };
+
+ partition at 40000 {
+ label = "u-boot-env";
+ reg = <0x040000 0x008000>;
+ read-only;
+ };
+
+ partition at 48000 {
+ label = "mfcdata";
+ reg = <0x048000 0x008000>;
+ read-only;
+
+ compatible = "nvmem-cells";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ macaddr_mfcdata_35: macaddr at 35 {
+ reg = <0x35 0x11>;
+ };
+
+ macaddr_mfcdata_51: macaddr at 51 {
+ reg = <0x51 0x11>;
+ };
+ };
+
+ partition at 50000 {
+ label = "devconf";
+ reg = <0x050000 0x010000>;
+ read-only;
+ };
+
+ partition at 60000 {
+ label = "langpack";
+ reg = <0x060000 0x020000>;
+ read-only;
+ };
+
+ partition at 80000 {
+ label = "art";
+ reg = <0x080000 0x010000>;
+ read-only;
+
+ compatible = "nvmem-cells";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ cal_art_1000: calibration at 1000 {
+ reg = <0x1000 0x440>;
+ };
+ };
+
+ partition at 90000 {
+ compatible = "seama";
+ label = "firmware";
+ reg = <0x090000 0x770000>;
+ };
+ };
+ };
+};
+
+&wmac {
+ status = "okay";
+
+ nvmem-cells = <&cal_art_1000>, <&macaddr_mfcdata_51>;
+ nvmem-cell-names = "calibration", "mac-address-ascii";
+};
diff --git a/target/linux/ath79/generic/base-files/etc/board.d/02_network b/target/linux/ath79/generic/base-files/etc/board.d/02_network
index 20352095a4..610e70e500 100644
--- a/target/linux/ath79/generic/base-files/etc/board.d/02_network
+++ b/target/linux/ath79/generic/base-files/etc/board.d/02_network
@@ -278,6 +278,7 @@ ath79_setup_interfaces()
ucidef_add_switch "switch0" \
"0 at eth0" "1:lan:2" "2:lan:1"
;;
+ dlink,dir-629-a1|\
dlink,dir-825-c1|\
dlink,dir-835-a1|\
dlink,dir-842-c1|\
@@ -623,6 +624,9 @@ ath79_setup_macs()
dlink,dap-3662-a1)
label_mac=$(mtd_get_mac_ascii bdcfg "wlanmac")
;;
+ dlink,dir-629-a1)
+ wan_mac=$(mtd_get_mac_text "mfcdata" 0x6a)
+ ;;
dlink,dir-825-b1|\
trendnet,tew-673gru)
lan_mac=$(mtd_get_mac_text "caldata" 0xffa0)
diff --git a/target/linux/ath79/generic/base-files/etc/uci-defaults/09_fix-checksum b/target/linux/ath79/generic/base-files/etc/uci-defaults/09_fix-checksum
index 92048fd810..4d961f26d2 100644
--- a/target/linux/ath79/generic/base-files/etc/uci-defaults/09_fix-checksum
+++ b/target/linux/ath79/generic/base-files/etc/uci-defaults/09_fix-checksum
@@ -21,6 +21,7 @@ dlink,dap-3320-a1|\
dlink,dap-3662-a1)
fixwrgg
;;
+dlink,dir-629-a1|\
qihoo,c301)
fix_seama_header
;;
diff --git a/target/linux/ath79/image/generic.mk b/target/linux/ath79/image/generic.mk
index 7712247d39..3e32a08295 100644
--- a/target/linux/ath79/image/generic.mk
+++ b/target/linux/ath79/image/generic.mk
@@ -1010,6 +1010,19 @@ define Device/dlink_dir-505
endef
TARGET_DEVICES += dlink_dir-505
+define Device/dlink_dir-629-a1
+ $(Device/seama)
+ SOC := qca9558
+ IMAGE_SIZE := 7616k
+ DEVICE_VENDOR := D-Link
+ DEVICE_MODEL := DIR-629
+ DEVICE_VARIANT := A1
+ DEVICE_PACKAGES := -uboot-envtools
+ SEAMA_MTDBLOCK := 6
+ SEAMA_SIGNATURE := wrgn83_dlob.hans_dir629
+endef
+TARGET_DEVICES += dlink_dir-629-a1
+
define Device/dlink_dir-825-b1
SOC := ar7161
DEVICE_VENDOR := D-Link
More information about the lede-commits
mailing list