aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xtarget/linux/ath79/base-files/etc/board.d/02_network6
-rw-r--r--target/linux/ath79/base-files/etc/hotplug.d/firmware/11-ath10k-caldata8
-rw-r--r--target/linux/ath79/dts/qca9558_comfast_cf-wr650ac-v1.dts80
-rw-r--r--target/linux/ath79/dts/qca9558_comfast_cf-wr650ac-v2.dts80
-rw-r--r--target/linux/ath79/dts/qca9558_comfast_cf-wr650ac.dtsi98
-rw-r--r--target/linux/ath79/image/generic.mk18
6 files changed, 287 insertions, 3 deletions
diff --git a/target/linux/ath79/base-files/etc/board.d/02_network b/target/linux/ath79/base-files/etc/board.d/02_network
index dd9fa3c36b..466a0ee684 100755
--- a/target/linux/ath79/base-files/etc/board.d/02_network
+++ b/target/linux/ath79/base-files/etc/board.d/02_network
@@ -111,6 +111,12 @@ ath79_setup_interfaces()
ubnt,routerstation)
ucidef_set_interfaces_lan_wan "eth1" "eth0"
;;
+ comfast,cf-wr650ac-v1|\
+ comfast,cf-wr650ac-v2)
+ ucidef_set_interfaces_lan_wan "eth0" "eth1"
+ ucidef_add_switch "switch0" \
+ "0@eth0" "1:lan" "2:lan" "3:lan" "4:lan" "5:wan" "6@eth1"
+ ;;
devolo,dvl1200e|\
devolo,dvl1750e|\
ocedo,ursus)
diff --git a/target/linux/ath79/base-files/etc/hotplug.d/firmware/11-ath10k-caldata b/target/linux/ath79/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
index 501053e9d7..6f50a47271 100644
--- a/target/linux/ath79/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
+++ b/target/linux/ath79/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
@@ -87,6 +87,11 @@ board=$(board_name)
case "$FIRMWARE" in
"ath10k/cal-pci-0000:00:00.0.bin")
case $board in
+ comfast,cf-wr650ac-v1|\
+ comfast,cf-wr650ac-v2|\
+ yuncore,a770)
+ ath10kcal_extract "art" 20480 2116
+ ;;
devolo,dvl1200e|\
devolo,dvl1200i|\
devolo,dvl1750c|\
@@ -182,9 +187,6 @@ case "$FIRMWARE" in
ubnt,unifiac-pro)
ath10kcal_extract "EEPROM" 20480 2116
;;
- yuncore,a770)
- ath10kcal_extract "art" 20480 2116
- ;;
esac
;;
"ath10k/pre-cal-pci-0000:00:00.0.bin")
diff --git a/target/linux/ath79/dts/qca9558_comfast_cf-wr650ac-v1.dts b/target/linux/ath79/dts/qca9558_comfast_cf-wr650ac-v1.dts
new file mode 100644
index 0000000000..ff0fc0fe33
--- /dev/null
+++ b/target/linux/ath79/dts/qca9558_comfast_cf-wr650ac-v1.dts
@@ -0,0 +1,80 @@
+// 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 "qca9558_comfast_cf-wr650ac.dtsi"
+
+/ {
+ compatible = "comfast,cf-wr650ac-v1", "qca,qca9558";
+ model = "Comfast CF-WR650AC v1";
+
+ leds {
+ compatible = "gpio-leds";
+
+ wps {
+ label = "cf-wr650ac-v1:blue:wps";
+ gpios = <&gpio 20 GPIO_ACTIVE_LOW>;
+ };
+
+ network {
+ label = "cf-wr650ac-v1:blue:network";
+ gpios = <&gpio 4 GPIO_ACTIVE_LOW>;
+ };
+
+ wlan2g {
+ label = "cf-wr650ac-v1:blue:wlan2";
+ gpios = <&gpio 13 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "phy1tpt";
+ };
+
+ wlan5g {
+ label = "cf-wr650ac-v1:blue:wlan5";
+ gpios = <&gpio 2 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "phy0tpt";
+ };
+ };
+
+};
+
+&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 0x020000>;
+ read-only;
+ };
+
+ art: partition@20000 {
+ label = "art";
+ reg = <0x020000 0x010000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "firmware";
+ compatible = "denx,uimage";
+ reg = <0x030000 0xfc0000>;
+ };
+
+ partition@ff0000 {
+ label = "nvram";
+ reg = <0xff0000 0x010000>;
+ read-only;
+ };
+ };
+ };
+};
diff --git a/target/linux/ath79/dts/qca9558_comfast_cf-wr650ac-v2.dts b/target/linux/ath79/dts/qca9558_comfast_cf-wr650ac-v2.dts
new file mode 100644
index 0000000000..fc461d16d0
--- /dev/null
+++ b/target/linux/ath79/dts/qca9558_comfast_cf-wr650ac-v2.dts
@@ -0,0 +1,80 @@
+// 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 "qca9558_comfast_cf-wr650ac.dtsi"
+
+/ {
+ compatible = "comfast,cf-wr650ac-v2", "qca,qca9558";
+ model = "Comfast CF-WR650AC v2";
+
+ leds {
+ compatible = "gpio-leds";
+
+ wps {
+ label = "cf-wr650ac-v2:blue:wps";
+ gpios = <&gpio 20 GPIO_ACTIVE_LOW>;
+ };
+
+ network {
+ label = "cf-wr650ac-v2:blue:network";
+ gpios = <&gpio 4 GPIO_ACTIVE_LOW>;
+ };
+
+ wlan2g {
+ label = "cf-wr650ac-v2:blue:wlan2";
+ gpios = <&gpio 13 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "phy1tpt";
+ };
+
+ wlan5g {
+ label = "cf-wr650ac-v2:blue:wlan5";
+ gpios = <&gpio 2 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "phy0tpt";
+ };
+ };
+
+};
+
+&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 0x040000>;
+ read-only;
+ };
+
+ art: partition@40000 {
+ label = "art";
+ reg = <0x040000 0x010000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ compatible = "denx,uimage";
+ reg = <0x050000 0xfa0000>;
+ };
+
+ partition@ff0000 {
+ label = "nvram";
+ reg = <0xff0000 0x010000>;
+ read-only;
+ };
+ };
+ };
+};
diff --git a/target/linux/ath79/dts/qca9558_comfast_cf-wr650ac.dtsi b/target/linux/ath79/dts/qca9558_comfast_cf-wr650ac.dtsi
new file mode 100644
index 0000000000..5f7498a06e
--- /dev/null
+++ b/target/linux/ath79/dts/qca9558_comfast_cf-wr650ac.dtsi
@@ -0,0 +1,98 @@
+// 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 "qca9557.dtsi"
+
+/ {
+ chosen {
+ bootargs = "console=ttyS0,115200n8";
+ };
+
+ keys {
+ compatible = "gpio-keys";
+
+ button0 {
+ label = "reset";
+ linux,code = <KEY_RESTART>;
+ gpios = <&gpio 19 GPIO_ACTIVE_LOW>;
+ debounce-interval = <60>;
+ };
+ };
+
+ watchdog {
+ compatible = "linux,wdt-gpio";
+ gpios = <&gpio 17 GPIO_ACTIVE_LOW>;
+ hw_algo = "toggle";
+ hw_margin_ms = <500>;
+ always-running;
+ };
+};
+
+&pcie0 {
+ status = "okay";
+};
+
+&uart {
+ status = "okay";
+};
+
+&usb_phy0 {
+ status = "okay";
+};
+
+&usb0 {
+ status = "okay";
+};
+
+&mdio0 {
+ status = "okay";
+
+ switch0@1f {
+ compatible = "qca,ar8327";
+ reg = <0x1f>;
+ qca,ar8327-initvals = <
+ 0x04 0x87600000 /* PORT0 PAD MODE CTRL */
+ 0x0c 0x00080080 /* PORT6 PAD MODE CTRL */
+ 0x10 0x81000080 /* POWER_ON_STRIP */
+ 0x7c 0x0000007e /* PORT0_STATUS */
+ 0x94 0x0000007e /* PORT6 STATUS */
+ >;
+ };
+};
+
+&eth0 {
+ status = "okay";
+
+ pll-data = <0xa6000000 0x00000101 0x00001616>;
+ mtd-mac-address = <&art 0x0>;
+ fixed-link {
+ speed = <1000>;
+ full-duplex;
+ };
+};
+
+&eth1 {
+ status = "okay";
+
+ pll-data = <0x03000101 0x00000101 0x00001616>;
+ mtd-mac-address = <&art 0x6>;
+ fixed-link {
+ speed = <1000>;
+ full-duplex;
+ };
+};
+
+&wmac {
+ status = "okay";
+
+ mtd-cal-data = <&art 0x1000>;
+ mtd-mac-address = <&art 0x18>;
+};
+
+// This node is required for the Ethernet ports to work correctly.
+&gpio {
+ status = "okay";
+};
diff --git a/target/linux/ath79/image/generic.mk b/target/linux/ath79/image/generic.mk
index 7ceb5a8867..149e4ed300 100644
--- a/target/linux/ath79/image/generic.mk
+++ b/target/linux/ath79/image/generic.mk
@@ -275,6 +275,24 @@ define Device/comfast_cf-e5
endef
TARGET_DEVICES += comfast_cf-e5
+define Device/comfast_cf-wr650ac-v1
+ ATH_SOC := qca9558
+ DEVICE_VENDOR := COMFAST
+ DEVICE_MODEL := CF-WR650AC
+ DEVICE_VARIANT := v1
+ DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca988x-ct
+endef
+TARGET_DEVICES += comfast_cf-wr650ac-v1
+
+define Device/comfast_cf-wr650ac-v2
+ ATH_SOC := qca9558
+ DEVICE_VENDOR := COMFAST
+ DEVICE_MODEL := CF-WR650AC
+ DEVICE_VARIANT := v2
+ DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca988x-ct
+endef
+TARGET_DEVICES += comfast_cf-wr650ac-v2
+
define Device/devolo_dvl1200e
ATH_SOC := qca9558
DEVICE_VENDOR := devolo