diff options
4 files changed, 188 insertions, 0 deletions
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@1f { + compatible = "qca,ar8236"; + reg = <0x1f>; + }; +}; + +&spi { + status = "okay"; + + flash@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@0 { + label = "u-boot"; + reg = <0x000000 0x040000>; + read-only; + }; + + partition@40000 { + label = "u-boot-env"; + reg = <0x040000 0x008000>; + read-only; + }; + + partition@48000 { + label = "mfcdata"; + reg = <0x048000 0x008000>; + read-only; + + compatible = "nvmem-cells"; + #address-cells = <1>; + #size-cells = <1>; + + macaddr_mfcdata_35: macaddr@35 { + reg = <0x35 0x11>; + }; + + macaddr_mfcdata_51: macaddr@51 { + reg = <0x51 0x11>; + }; + }; + + partition@50000 { + label = "devconf"; + reg = <0x050000 0x010000>; + read-only; + }; + + partition@60000 { + label = "langpack"; + reg = <0x060000 0x020000>; + read-only; + }; + + partition@80000 { + label = "art"; + reg = <0x080000 0x010000>; + read-only; + + compatible = "nvmem-cells"; + #address-cells = <1>; + #size-cells = <1>; + + cal_art_1000: calibration@1000 { + reg = <0x1000 0x440>; + }; + }; + + partition@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@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 |