aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRoman Hampel <rhamp@arcor.de>2020-03-20 17:32:30 +0100
committerAdrian Schmutzler <freifunk@adrianschmutzler.de>2020-04-09 01:06:37 +0200
commitcd510e775bc7c806b3ad6981221258385554b9e8 (patch)
tree15cc47f1513a932e81b8bf9d7479b85d8967e29f
parentb299002877c801202c3b61d5e09865e88f506176 (diff)
downloadupstream-cd510e775bc7c806b3ad6981221258385554b9e8.tar.gz
upstream-cd510e775bc7c806b3ad6981221258385554b9e8.tar.bz2
upstream-cd510e775bc7c806b3ad6981221258385554b9e8.zip
ath79: add support for Comfast CF-WR752AC v1
Specifications: - Qualcomm QCA9531 + QCA9886 - dual band, antenna 2*3dBi - Output power 50mW (17dBm) - 1x 10/100 Mbps LAN RJ45 - 128 MB RAM / 16 MB FLASH (w25q128) - 3 LEDs (red/green/blue) incorporated in "color wheel reset switch" - UART 115200 8N1 Flashing instructions: The U-boot bootloader contains a recovery HTTP server to upload the firmware. Push the reset button while powering the device on and keep it pressed for ~10 seconds. The device's LEDs will blink several times and the recovery page will be at http://192.168.1.1; use it to upload the sysupgrade image. Alternatively, the original firmware is based on OpenWrt so a sysupgrade image can be installed via the stock web GUI. Settings from the original firmware will be saved and restored on the new one, so a factory reset will be needed. To do so, once the new firmware is flashed, enter into failsafe mode by pressing the reset button several times during the boot process, until it starts flashing. Once in failsafe mode, perform a factory reset as usual. LED-Info: The LEDs on the Comfast stock fw have a very proprietary behaviour, corresponding to the user selected working mode (AP, ROUTER or REPEATER). In the first two cases, only blue is used for status and LAN signaling. When using the latter, blue is always off (except for sysupgrade), either red signals bad rssi on master-link, or green good. Since the default working mode of OpenWrt resembles that of a router/AP, the default behavior is implemented accordingly. MAC addresses (art partition): location address (example) use in vendor firmware 0x0 xx:xx:xx:xx:xc:f8 -> eth0 0x6 xx:xx:xx:xx:xc:fa -> wlan5g (+2) 0x1002 xx:xx:xx:xx:xc:f9 -> not used 0x5006 xx:xx:xx:xx:xc:fb -> not used --- xx:xx:xx:xx:xd:02 -> wlan2g (+10) The same strange situation has already been observed and documented for COMFAST CF-E560AC. Signed-off-by: Roman Hampel <rhamp@arcor.de> Co-developed-by: Joao Albuquerque <joaohccalbu@gmail.com> Signed-off-by: Joao Albuquerque <joaohccalbu@gmail.com> [adjust and extend commit message, rebase, minor DTS adjustments, add correct MAC address for wmac, change RSSI LED names and behavior] Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
-rw-r--r--target/linux/ath79/dts/qca9531_comfast_cf-wr752ac-v1.dts133
-rwxr-xr-xtarget/linux/ath79/generic/base-files/etc/board.d/01_leds7
-rwxr-xr-xtarget/linux/ath79/generic/base-files/etc/board.d/02_network1
-rw-r--r--target/linux/ath79/generic/base-files/etc/hotplug.d/firmware/11-ath10k-caldata3
-rw-r--r--target/linux/ath79/image/generic.mk11
5 files changed, 151 insertions, 4 deletions
diff --git a/target/linux/ath79/dts/qca9531_comfast_cf-wr752ac-v1.dts b/target/linux/ath79/dts/qca9531_comfast_cf-wr752ac-v1.dts
new file mode 100644
index 0000000000..4530c59031
--- /dev/null
+++ b/target/linux/ath79/dts/qca9531_comfast_cf-wr752ac-v1.dts
@@ -0,0 +1,133 @@
+// 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 "qca953x.dtsi"
+
+/ {
+ compatible = "comfast,cf-wr752ac-v1", "qca,qca9531";
+ model = "COMFAST CF-WR752AC v1";
+
+ aliases {
+ serial0 = &uart;
+ led-boot = &led_lan;
+ led-failsafe = &led_lan;
+ led-upgrade = &led_lan;
+ };
+
+ leds {
+ compatible = "gpio-leds";
+
+ pinctrl-names = "default";
+ pinctrl-0 = <&jtag_disable_pins &pinmux_led_rssihigh &pinmux_led_rssilow>;
+
+ led_lan: lan {
+ label = "cf-wr752ac-v1:blue:lan";
+ gpios = <&gpio 12 GPIO_ACTIVE_LOW>;
+ };
+
+ rssihigh {
+ label = "cf-wr752ac-v1:green:rssihigh";
+ gpios = <&gpio 15 GPIO_ACTIVE_LOW>;
+ };
+
+ rssilow {
+ label = "cf-wr752ac-v1:red:rssilow";
+ gpios = <&gpio 11 GPIO_ACTIVE_LOW>;
+ };
+ };
+
+ keys {
+ compatible = "gpio-keys";
+
+ button {
+ label = "reset";
+ linux,code = <KEY_RESTART>;
+ gpios = <&gpio 17 GPIO_ACTIVE_LOW>;
+ debounce-interval = <60>;
+ };
+ };
+};
+
+&pinmux {
+ pinmux_led_rssihigh: pinmux_led_rssihigh {
+ pinctrl-single,bits = <0xc 0x0 0xff000000>;
+ };
+
+ pinmux_led_rssilow: pinmux_led_rssilow {
+ pinctrl-single,bits = <0x8 0x0 0xff000000>;
+ };
+};
+
+&pcie0 {
+ status = "okay";
+};
+
+&spi {
+ status = "okay";
+
+ num-cs = <1>;
+
+ flash@0 {
+ compatible = "jedec,spi-nor";
+ reg = <0>;
+ spi-max-frequency = <25000000>;
+
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x000000 0x010000>;
+ read-only;
+ };
+
+ art: partition@10000 {
+ label = "art";
+ reg = <0x010000 0x010000>;
+ read-only;
+ };
+
+ partition@20000 {
+ compatible = "denx,uimage";
+ label = "firmware";
+ reg = <0x020000 0xfd0000>;
+ };
+
+ partition@ff0000 {
+ label = "nvram";
+ reg = <0xff0000 0x010000>;
+ read-only;
+ };
+ };
+ };
+};
+
+&uart {
+ status = "okay";
+};
+
+&eth0 {
+ status = "okay";
+
+ phy-handle = <&swphy4>;
+
+ mtd-mac-address = <&art 0x0>;
+};
+
+&eth1 {
+ compatible = "syscon", "simple-mfd";
+};
+
+&wmac {
+ status = "okay";
+
+ mtd-cal-data = <&art 0x1000>;
+
+ mtd-mac-address = <&art 0x0>;
+ mtd-mac-address-increment = <10>;
+};
diff --git a/target/linux/ath79/generic/base-files/etc/board.d/01_leds b/target/linux/ath79/generic/base-files/etc/board.d/01_leds
index 8e84ca25bf..b946d0c63b 100755
--- a/target/linux/ath79/generic/base-files/etc/board.d/01_leds
+++ b/target/linux/ath79/generic/base-files/etc/board.d/01_leds
@@ -84,6 +84,10 @@ comfast,cf-ew72)
ucidef_set_led_switch "lan" "LAN" "$boardname:blue:lan" "switch0" "0x02"
ucidef_set_led_netdev "wan" "WAN" "$boardname:blue:wan" "eth1"
;;
+comfast,cf-wr752ac-v1|\
+engenius,ecb1750)
+ ucidef_set_led_netdev "lan" "LAN" "$boardname:blue:lan" "eth0"
+ ;;
devolo,magic-2-wifi)
ucidef_set_led_netdev "plcw" "dLAN" "devolo:white:dlan" "eth0.1" "rx"
;;
@@ -93,9 +97,6 @@ dlink,dir-842-c3|\
dlink,dir-859-a1)
ucidef_set_led_switch "internet" "WAN" "$boardname:green:internet" "switch0" "0x20"
;;
-engenius,ecb1750)
- ucidef_set_led_netdev "lan" "LAN" "$boardname:blue:lan" "eth0"
- ;;
engenius,ews511ap)
ucidef_set_led_netdev "lan1" "LAN1" "$boardname:blue:lan1" "eth1"
ucidef_set_led_netdev "lan2" "LAN2" "$boardname:blue:lan2" "eth0"
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 48bdf657d0..77855d7ab7 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
@@ -14,6 +14,7 @@ ath79_setup_interfaces()
alfa-network,ap121f|\
aruba,ap-105|\
avm,fritz300e|\
+ comfast,cf-wr752ac-v1|\
devolo,dvl1200i|\
devolo,dvl1750c|\
devolo,dvl1750i|\
diff --git a/target/linux/ath79/generic/base-files/etc/hotplug.d/firmware/11-ath10k-caldata b/target/linux/ath79/generic/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
index 18bdfa2b22..c126d9df6a 100644
--- a/target/linux/ath79/generic/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
+++ b/target/linux/ath79/generic/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
@@ -141,7 +141,8 @@ case "$FIRMWARE" in
rm /lib/firmware/ath10k/QCA9888/hw2.0/board-2.bin
;;
comfast,cf-e560ac|\
- comfast,cf-ew72)
+ comfast,cf-ew72|\
+ comfast,cf-wr752ac-v1)
caldata_extract "art" 0x5000 0x2f20
ath10k_patch_mac $(macaddr_add $(mtd_get_mac_binary art 0x0) +2)
ln -sf /lib/firmware/ath10k/pre-cal-pci-0000\:00\:00.0.bin \
diff --git a/target/linux/ath79/image/generic.mk b/target/linux/ath79/image/generic.mk
index 87586492be..69067c9de0 100644
--- a/target/linux/ath79/image/generic.mk
+++ b/target/linux/ath79/image/generic.mk
@@ -356,6 +356,17 @@ define Device/comfast_cf-wr650ac-v2
endef
TARGET_DEVICES += comfast_cf-wr650ac-v2
+define Device/comfast_cf-wr752ac-v1
+ SOC := qca9531
+ DEVICE_VENDOR := COMFAST
+ DEVICE_MODEL := CF-WR752AC
+ DEVICE_VARIANT := v1
+ DEVICE_PACKAGES := kmod-usb2 kmod-ath10k-ct ath10k-firmware-qca9888-ct \
+ -uboot-envtools
+ IMAGE_SIZE := 16192k
+endef
+TARGET_DEVICES += comfast_cf-wr752ac-v1
+
define Device/devolo_dvl1200e
SOC := qca9558
DEVICE_VENDOR := devolo