ath79: add support for Buffalo WZR-600DHP
authorAdrian Schmutzler <freifunk@adrianschmutzler.de>
Sun, 13 Sep 2020 13:27:49 +0000 (15:27 +0200)
committerAdrian Schmutzler <freifunk@adrianschmutzler.de>
Wed, 16 Sep 2020 15:32:12 +0000 (17:32 +0200)
The hardware of this device seems to be identical to WZR-HP-AG300H.
It was already implemented as a clone in ar71xx.

Specification:
- 680 MHz CPU (Qualcomm Atheros AR7161)
- 128 MiB RAM
- 32 MiB Flash
- WiFi 5 GHz a/n
- WiFi 2.4 GHz b/g/n
- 5x 1000Base-T Ethernet
- 1x USB 2.0

Installation of OpenWRT from vendor firmware:
- Connect to the Web-interface at http://192.168.11.1
- Go to “Administration” → “Firmware Upgrade”
- Upload the OpenWrt factory image

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
target/linux/ath79/dts/ar7161_buffalo_wzr-600dhp.dts [new file with mode: 0644]
target/linux/ath79/dts/ar7161_buffalo_wzr-hp-ag300h.dts
target/linux/ath79/dts/ar7161_buffalo_wzr-hp-ag300h.dtsi [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/10-ath9k-eeprom
target/linux/ath79/image/generic.mk

diff --git a/target/linux/ath79/dts/ar7161_buffalo_wzr-600dhp.dts b/target/linux/ath79/dts/ar7161_buffalo_wzr-600dhp.dts
new file mode 100644 (file)
index 0000000..beee19e
--- /dev/null
@@ -0,0 +1,9 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/dts-v1/;
+
+#include "ar7161_buffalo_wzr-hp-ag300h.dtsi"
+
+/ {
+       compatible = "buffalo,wzr-600dhp", "qca,ar7161";
+       model = "Buffalo WZR-600DHP";
+};
index 43f35683bdf40a9b4fa9ce593793caf81aa267d6..807f76cf17696e38f2fd44f86b227e8b9c8e457e 100644 (file)
@@ -1,272 +1,9 @@
 // SPDX-License-Identifier: GPL-2.0-or-later OR MIT
 /dts-v1/;
 
-#include <dt-bindings/gpio/gpio.h>
-#include <dt-bindings/input/input.h>
-
-#include "ar7100.dtsi"
+#include "ar7161_buffalo_wzr-hp-ag300h.dtsi"
 
 / {
        compatible = "buffalo,wzr-hp-ag300h", "qca,ar7161";
-       model = "Buffalo WZR-HP-AG300H/WZR-600DHP";
-
-       aliases {
-               led-boot = &led_diag;
-               led-failsafe = &led_diag;
-               led-upgrade = &led_diag;
-       };
-
-       extosc: ref {
-               compatible = "fixed-clock";
-               #clock-cells = <0>;
-               clock-output-names = "ref";
-               clock-frequency = <40000000>;
-       };
-
-       leds {
-               compatible = "gpio-leds";
-
-               led_diag: diag {
-                       label = "buffalo:red:diag";
-                       gpios = <&gpio 1 GPIO_ACTIVE_LOW>;
-               };
-       };
-
-       ath9k-leds {
-               compatible = "gpio-leds";
-
-               band2g_a {
-                       label = "buffalo:amber:band2g";
-                       gpios = <&ath9k0 1 GPIO_ACTIVE_LOW>;
-               };
-
-               usb {
-                       label = "buffalo:green:usb";
-                       gpios = <&ath9k0 3 GPIO_ACTIVE_LOW>;
-                       trigger-sources = <&usb_ohci_port>, <&usb_ehci_port>;
-                       linux,default-trigger = "usbport";
-               };
-
-               band2g_g {
-                       label = "buffalo:green:band2g";
-                       gpios = <&ath9k0 5 GPIO_ACTIVE_LOW>;
-                       linux,default-trigger = "phy0tpt";
-               };
-
-               band5g_g {
-                       label = "buffalo:green:band5g";
-                       gpios = <&ath9k1 1 GPIO_ACTIVE_LOW>;
-                       linux,default-trigger = "phy1tpt";
-               };
-
-               router {
-                       label = "buffalo:green:router";
-                       gpios = <&ath9k1 3 GPIO_ACTIVE_LOW>;
-               };
-
-               movie_engine {
-                       label = "buffalo:blue:movie_engine";
-                       gpios = <&ath9k1 4 GPIO_ACTIVE_LOW>;
-               };
-
-               band5g_a {
-                       label = "buffalo:amber:band5g";
-                       gpios = <&ath9k1 5 GPIO_ACTIVE_LOW>;
-               };
-       };
-
-       keys {
-               compatible = "gpio-keys";
-
-               reset {
-                       linux,code = <KEY_RESTART>;
-                       gpios = <&gpio 11 GPIO_ACTIVE_LOW>;
-                       debounce-interval = <60>;
-               };
-
-               usb {
-                       linux,code = <BTN_2>;
-                       gpios = <&gpio 3 GPIO_ACTIVE_LOW>;
-                       debounce-interval = <60>;
-               };
-
-               aoss {
-                       linux,code = <KEY_WPS_BUTTON>;
-                       gpios = <&gpio 5 GPIO_ACTIVE_LOW>;
-                       debounce-interval = <60>;
-               };
-
-               router_auto {
-                       linux,code = <BTN_6>;
-                       gpios = <&gpio 6 GPIO_ACTIVE_LOW>;
-                       debounce-interval = <60>;
-               };
-
-               router_off {
-                       linux,code = <BTN_5>;
-                       gpios = <&gpio 7 GPIO_ACTIVE_LOW>;
-                       debounce-interval = <60>;
-               };
-
-               movie_engine {
-                       linux,code = <BTN_7>;
-                       gpios = <&gpio 8 GPIO_ACTIVE_LOW>;
-                       debounce-interval = <60>;
-               };
-       };
-
-       gpio-export {
-               compatible = "gpio-export";
-
-               gpio_usb_power {
-                       gpio-export,name = "buffalo:power:usb";
-                       gpio-export,output = <1>;
-                       gpios = <&gpio 2 GPIO_ACTIVE_HIGH>;
-               };
-       };
-
-       flash {
-               compatible = "mtd-concat";
-
-               devices = <&flash0 &flash1>;
-
-               partitions {
-                       compatible = "fixed-partitions";
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       partition@0 {
-                               label = "u-boot";
-                               reg = <0x0000000 0x0040000>;
-                               read-only;
-                       };
-
-                       partition@40000 {
-                               label = "u-boot-env";
-                               reg = <0x0040000 0x0010000>;
-                               read-only;
-                       };
-
-                       art: partition@50000 {
-                               label = "art";
-                               reg = <0x0050000 0x0010000>;
-                               read-only;
-                       };
-
-                       partition@60000 {
-                               compatible = "denx,uimage";
-                               label = "firmware";
-                               reg = <0x0060000 0x1f90000>;
-                       };
-
-                       partition@1ff0000 {
-                               label = "user_property";
-                               reg = <0x1ff0000 0x0010000>;
-                               read-only;
-                       };
-               };
-       };
-};
-
-&usb_phy {
-       status = "okay";
-};
-
-&usb1 {
-       #address-cells = <1>;
-       #size-cells = <0>;
-       status = "okay";
-
-       usb_ohci_port: port@1 {
-               reg = <1>;
-               #trigger-source-cells = <0>;
-       };
-};
-
-&usb2 {
-       #address-cells = <1>;
-       #size-cells = <0>;
-       status = "okay";
-
-       usb_ehci_port: port@1 {
-               reg = <1>;
-               #trigger-source-cells = <0>;
-       };
-};
-
-&pcie0 {
-       status = "okay";
-
-       ath9k0: wifi@0,11 {
-               compatible = "pci168c,0029";
-               reg = <0x8800 0 0 0 0>;
-               qca,no-eeprom;
-               #gpio-cells = <2>;
-               gpio-controller;
-       };
-
-       ath9k1: wifi@0,12 {
-               compatible = "pci168c,0029";
-               reg = <0x9000 0 0 0 0>;
-               qca,no-eeprom;
-               #gpio-cells = <2>;
-               gpio-controller;
-       };
-};
-
-&uart {
-       status = "okay";
-};
-
-&pll {
-       clocks = <&extosc>;
-};
-
-&spi {
-       status = "okay";
-
-       num-cs = <2>;
-       cs-gpios = <0>, <0>;
-
-       flash0: flash@0 {
-               compatible = "jedec,spi-nor";
-               reg = <0>;
-               spi-max-frequency = <50000000>;
-               m25p,fast-read;
-       };
-
-       flash1: flash@1 {
-               compatible = "jedec,spi-nor";
-               reg = <1>;
-               spi-max-frequency = <50000000>;
-               m25p,fast-read;
-       };
-};
-
-&mdio0 {
-       status = "okay";
-
-       phy4: ethernet-phy@4 {
-               reg = <4>;
-               phy-mode = "rgmii";
-       };
-};
-
-&eth0 {
-       status = "okay";
-
-       mtd-mac-address = <&art 0x120c>;
-
-       fixed-link {
-               speed = <1000>;
-               full-duplex;
-       };
-};
-
-&eth1 {
-       status = "okay";
-
-       mtd-mac-address = <&art 0x520c>;
-       mtd-mac-address-increment = <1>;
-
-       phy-handle = <&phy4>;
+       model = "Buffalo WZR-HP-AG300H";
 };
diff --git a/target/linux/ath79/dts/ar7161_buffalo_wzr-hp-ag300h.dtsi b/target/linux/ath79/dts/ar7161_buffalo_wzr-hp-ag300h.dtsi
new file mode 100644 (file)
index 0000000..c0040b4
--- /dev/null
@@ -0,0 +1,268 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+
+#include "ar7100.dtsi"
+
+/ {
+       aliases {
+               led-boot = &led_diag;
+               led-failsafe = &led_diag;
+               led-upgrade = &led_diag;
+       };
+
+       extosc: ref {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-output-names = "ref";
+               clock-frequency = <40000000>;
+       };
+
+       leds {
+               compatible = "gpio-leds";
+
+               led_diag: diag {
+                       label = "buffalo:red:diag";
+                       gpios = <&gpio 1 GPIO_ACTIVE_LOW>;
+               };
+       };
+
+       ath9k-leds {
+               compatible = "gpio-leds";
+
+               band2g_a {
+                       label = "buffalo:amber:band2g";
+                       gpios = <&ath9k0 1 GPIO_ACTIVE_LOW>;
+               };
+
+               usb {
+                       label = "buffalo:green:usb";
+                       gpios = <&ath9k0 3 GPIO_ACTIVE_LOW>;
+                       trigger-sources = <&usb_ohci_port>, <&usb_ehci_port>;
+                       linux,default-trigger = "usbport";
+               };
+
+               band2g_g {
+                       label = "buffalo:green:band2g";
+                       gpios = <&ath9k0 5 GPIO_ACTIVE_LOW>;
+                       linux,default-trigger = "phy0tpt";
+               };
+
+               band5g_g {
+                       label = "buffalo:green:band5g";
+                       gpios = <&ath9k1 1 GPIO_ACTIVE_LOW>;
+                       linux,default-trigger = "phy1tpt";
+               };
+
+               router {
+                       label = "buffalo:green:router";
+                       gpios = <&ath9k1 3 GPIO_ACTIVE_LOW>;
+               };
+
+               movie_engine {
+                       label = "buffalo:blue:movie_engine";
+                       gpios = <&ath9k1 4 GPIO_ACTIVE_LOW>;
+               };
+
+               band5g_a {
+                       label = "buffalo:amber:band5g";
+                       gpios = <&ath9k1 5 GPIO_ACTIVE_LOW>;
+               };
+       };
+
+       keys {
+               compatible = "gpio-keys";
+
+               reset {
+                       linux,code = <KEY_RESTART>;
+                       gpios = <&gpio 11 GPIO_ACTIVE_LOW>;
+                       debounce-interval = <60>;
+               };
+
+               usb {
+                       linux,code = <BTN_2>;
+                       gpios = <&gpio 3 GPIO_ACTIVE_LOW>;
+                       debounce-interval = <60>;
+               };
+
+               aoss {
+                       linux,code = <KEY_WPS_BUTTON>;
+                       gpios = <&gpio 5 GPIO_ACTIVE_LOW>;
+                       debounce-interval = <60>;
+               };
+
+               router_auto {
+                       linux,code = <BTN_6>;
+                       gpios = <&gpio 6 GPIO_ACTIVE_LOW>;
+                       debounce-interval = <60>;
+               };
+
+               router_off {
+                       linux,code = <BTN_5>;
+                       gpios = <&gpio 7 GPIO_ACTIVE_LOW>;
+                       debounce-interval = <60>;
+               };
+
+               movie_engine {
+                       linux,code = <BTN_7>;
+                       gpios = <&gpio 8 GPIO_ACTIVE_LOW>;
+                       debounce-interval = <60>;
+               };
+       };
+
+       gpio-export {
+               compatible = "gpio-export";
+
+               gpio_usb_power {
+                       gpio-export,name = "buffalo:power:usb";
+                       gpio-export,output = <1>;
+                       gpios = <&gpio 2 GPIO_ACTIVE_HIGH>;
+               };
+       };
+
+       flash {
+               compatible = "mtd-concat";
+
+               devices = <&flash0 &flash1>;
+
+               partitions {
+                       compatible = "fixed-partitions";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       partition@0 {
+                               label = "u-boot";
+                               reg = <0x0000000 0x0040000>;
+                               read-only;
+                       };
+
+                       partition@40000 {
+                               label = "u-boot-env";
+                               reg = <0x0040000 0x0010000>;
+                               read-only;
+                       };
+
+                       art: partition@50000 {
+                               label = "art";
+                               reg = <0x0050000 0x0010000>;
+                               read-only;
+                       };
+
+                       partition@60000 {
+                               compatible = "denx,uimage";
+                               label = "firmware";
+                               reg = <0x0060000 0x1f90000>;
+                       };
+
+                       partition@1ff0000 {
+                               label = "user_property";
+                               reg = <0x1ff0000 0x0010000>;
+                               read-only;
+                       };
+               };
+       };
+};
+
+&usb_phy {
+       status = "okay";
+};
+
+&usb1 {
+       #address-cells = <1>;
+       #size-cells = <0>;
+       status = "okay";
+
+       usb_ohci_port: port@1 {
+               reg = <1>;
+               #trigger-source-cells = <0>;
+       };
+};
+
+&usb2 {
+       #address-cells = <1>;
+       #size-cells = <0>;
+       status = "okay";
+
+       usb_ehci_port: port@1 {
+               reg = <1>;
+               #trigger-source-cells = <0>;
+       };
+};
+
+&pcie0 {
+       status = "okay";
+
+       ath9k0: wifi@0,11 {
+               compatible = "pci168c,0029";
+               reg = <0x8800 0 0 0 0>;
+               qca,no-eeprom;
+               #gpio-cells = <2>;
+               gpio-controller;
+       };
+
+       ath9k1: wifi@0,12 {
+               compatible = "pci168c,0029";
+               reg = <0x9000 0 0 0 0>;
+               qca,no-eeprom;
+               #gpio-cells = <2>;
+               gpio-controller;
+       };
+};
+
+&uart {
+       status = "okay";
+};
+
+&pll {
+       clocks = <&extosc>;
+};
+
+&spi {
+       status = "okay";
+
+       num-cs = <2>;
+       cs-gpios = <0>, <0>;
+
+       flash0: flash@0 {
+               compatible = "jedec,spi-nor";
+               reg = <0>;
+               spi-max-frequency = <50000000>;
+               m25p,fast-read;
+       };
+
+       flash1: flash@1 {
+               compatible = "jedec,spi-nor";
+               reg = <1>;
+               spi-max-frequency = <50000000>;
+               m25p,fast-read;
+       };
+};
+
+&mdio0 {
+       status = "okay";
+
+       phy4: ethernet-phy@4 {
+               reg = <4>;
+               phy-mode = "rgmii";
+       };
+};
+
+&eth0 {
+       status = "okay";
+
+       mtd-mac-address = <&art 0x120c>;
+
+       fixed-link {
+               speed = <1000>;
+               full-duplex;
+       };
+};
+
+&eth1 {
+       status = "okay";
+
+       mtd-mac-address = <&art 0x520c>;
+       mtd-mac-address-increment = <1>;
+
+       phy-handle = <&phy4>;
+};
index f437f7432f7dc07141199e08c8187554fc00546e..40ea14fa9bc903325de5bd2702922d7243128c5b 100755 (executable)
@@ -94,6 +94,7 @@ ath79_setup_interfaces()
                ucidef_add_switch "switch0" \
                        "0@eth1" "1:lan" "2:lan" "3:lan" "4:lan" "5:wan" "6@eth0"
                ;;
+       buffalo,wzr-600dhp|\
        buffalo,wzr-hp-ag300h|\
        tplink,archer-c25-v1|\
        tplink,archer-c60-v1|\
index 5ecae96cd1687723ceb804cf4b4d95ff0f6e17d6..3983b1f8c0eaf3e2fa648d68b35aec161e3343c9 100644 (file)
@@ -132,6 +132,7 @@ case "$FIRMWARE" in
        ;;
 "ath9k-eeprom-pci-0000:00:11.0.bin")
        case $board in
+       buffalo,wzr-600dhp|\
        buffalo,wzr-hp-ag300h|\
        netgear,wndr3700|\
        netgear,wndr3700-v2|\
@@ -155,6 +156,7 @@ case "$FIRMWARE" in
        ;;
 "ath9k-eeprom-pci-0000:00:12.0.bin")
        case $board in
+       buffalo,wzr-600dhp|\
        buffalo,wzr-hp-ag300h|\
        netgear,wndr3700|\
        netgear,wndr3700-v2|\
index 4b6cdaa8262e1e761d35cc29e4d2565c9d89a7e6..7e5b09af2bdcdb7ca10535b676862d144d521f78 100644 (file)
@@ -333,16 +333,26 @@ define Device/buffalo_bhr-4grv2
 endef
 TARGET_DEVICES += buffalo_bhr-4grv2
 
-define Device/buffalo_wzr-hp-ag300h
+define Device/buffalo_wzr_ar7161
   $(Device/buffalo_common)
   SOC := ar7161
-  DEVICE_MODEL := WZR-HP-AG300H
   BUFFALO_PRODUCT := WZR-HP-AG300H
   DEVICE_PACKAGES := kmod-usb-ohci kmod-usb2 kmod-usb-ledtrig-usbport \
        kmod-leds-reset kmod-owl-loader
   IMAGE_SIZE := 32320k
   SUPPORTED_DEVICES += wzr-hp-ag300h
 endef
+
+define Device/buffalo_wzr-600dhp
+  $(Device/buffalo_wzr_ar7161)
+  DEVICE_MODEL := WZR-600DHP
+endef
+TARGET_DEVICES += buffalo_wzr-600dhp
+
+define Device/buffalo_wzr-hp-ag300h
+  $(Device/buffalo_wzr_ar7161)
+  DEVICE_MODEL := WZR-HP-AG300H
+endef
 TARGET_DEVICES += buffalo_wzr-hp-ag300h
 
 define Device/buffalo_wzr-hp-g302h-a1a0