From 25f2f66eeaf720e3db154019fe0b32a146c6082f Mon Sep 17 00:00:00 2001 From: Adrian Schmutzler Date: Sun, 13 Sep 2020 15:27:49 +0200 Subject: [PATCH] ath79: add support for Buffalo WZR-600DHP MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- .../ath79/dts/ar7161_buffalo_wzr-600dhp.dts | 9 + .../dts/ar7161_buffalo_wzr-hp-ag300h.dts | 267 +---------------- .../dts/ar7161_buffalo_wzr-hp-ag300h.dtsi | 268 ++++++++++++++++++ .../generic/base-files/etc/board.d/02_network | 1 + .../etc/hotplug.d/firmware/10-ath9k-eeprom | 2 + target/linux/ath79/image/generic.mk | 14 +- 6 files changed, 294 insertions(+), 267 deletions(-) create mode 100644 target/linux/ath79/dts/ar7161_buffalo_wzr-600dhp.dts create mode 100644 target/linux/ath79/dts/ar7161_buffalo_wzr-hp-ag300h.dtsi 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 index 0000000000..beee19ed6f --- /dev/null +++ b/target/linux/ath79/dts/ar7161_buffalo_wzr-600dhp.dts @@ -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"; +}; diff --git a/target/linux/ath79/dts/ar7161_buffalo_wzr-hp-ag300h.dts b/target/linux/ath79/dts/ar7161_buffalo_wzr-hp-ag300h.dts index 43f35683bd..807f76cf17 100644 --- a/target/linux/ath79/dts/ar7161_buffalo_wzr-hp-ag300h.dts +++ b/target/linux/ath79/dts/ar7161_buffalo_wzr-hp-ag300h.dts @@ -1,272 +1,9 @@ // SPDX-License-Identifier: GPL-2.0-or-later OR MIT /dts-v1/; -#include -#include - -#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 = ; - gpios = <&gpio 11 GPIO_ACTIVE_LOW>; - debounce-interval = <60>; - }; - - usb { - linux,code = ; - gpios = <&gpio 3 GPIO_ACTIVE_LOW>; - debounce-interval = <60>; - }; - - aoss { - linux,code = ; - gpios = <&gpio 5 GPIO_ACTIVE_LOW>; - debounce-interval = <60>; - }; - - router_auto { - linux,code = ; - gpios = <&gpio 6 GPIO_ACTIVE_LOW>; - debounce-interval = <60>; - }; - - router_off { - linux,code = ; - gpios = <&gpio 7 GPIO_ACTIVE_LOW>; - debounce-interval = <60>; - }; - - movie_engine { - linux,code = ; - 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"; - }; -}; - -ð0 { - status = "okay"; - - mtd-mac-address = <&art 0x120c>; - - fixed-link { - speed = <1000>; - full-duplex; - }; -}; - -ð1 { - 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 index 0000000000..c0040b4bbe --- /dev/null +++ b/target/linux/ath79/dts/ar7161_buffalo_wzr-hp-ag300h.dtsi @@ -0,0 +1,268 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT + +#include +#include + +#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 = ; + gpios = <&gpio 11 GPIO_ACTIVE_LOW>; + debounce-interval = <60>; + }; + + usb { + linux,code = ; + gpios = <&gpio 3 GPIO_ACTIVE_LOW>; + debounce-interval = <60>; + }; + + aoss { + linux,code = ; + gpios = <&gpio 5 GPIO_ACTIVE_LOW>; + debounce-interval = <60>; + }; + + router_auto { + linux,code = ; + gpios = <&gpio 6 GPIO_ACTIVE_LOW>; + debounce-interval = <60>; + }; + + router_off { + linux,code = ; + gpios = <&gpio 7 GPIO_ACTIVE_LOW>; + debounce-interval = <60>; + }; + + movie_engine { + linux,code = ; + 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"; + }; +}; + +ð0 { + status = "okay"; + + mtd-mac-address = <&art 0x120c>; + + fixed-link { + speed = <1000>; + full-duplex; + }; +}; + +ð1 { + status = "okay"; + + mtd-mac-address = <&art 0x520c>; + mtd-mac-address-increment = <1>; + + phy-handle = <&phy4>; +}; 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 f437f7432f..40ea14fa9b 100755 --- a/target/linux/ath79/generic/base-files/etc/board.d/02_network +++ b/target/linux/ath79/generic/base-files/etc/board.d/02_network @@ -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|\ diff --git a/target/linux/ath79/generic/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom b/target/linux/ath79/generic/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom index 5ecae96cd1..3983b1f8c0 100644 --- a/target/linux/ath79/generic/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom +++ b/target/linux/ath79/generic/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom @@ -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|\ diff --git a/target/linux/ath79/image/generic.mk b/target/linux/ath79/image/generic.mk index 4b6cdaa826..7e5b09af2b 100644 --- a/target/linux/ath79/image/generic.mk +++ b/target/linux/ath79/image/generic.mk @@ -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