ath79: add support for COMFAST CF-E130N v2
authorPavel Balan <admin@kryma.net>
Fri, 27 Mar 2020 03:32:55 +0000 (03:32 +0000)
committerAdrian Schmutzler <freifunk@adrianschmutzler.de>
Wed, 27 May 2020 23:47:54 +0000 (01:47 +0200)
This patch adds support for the COMFAST CF-E130N v2, an outdoor wireless
CPE with a single Ethernet port and a 802.11bgn radio.

Specifications:

 - QCA9531 SoC
 - 1x 10/100 Mbps Ethernet with PoE-in support
 - 64 MB of RAM (DDR2)
 - 16 MB of FLASH
 - 5 dBi built-in antenna
 - POWER/LAN/WLAN green LEDs
 - 4x RSSI LEDs (2x red, 2x green)
 - UART (115200 8N1) and GPIO (J9) headers on PCB

Flashing instructions:

 The original firmware is based on OpenWrt so a sysupgrade image can be
 installed via the stock web GUI.

 The U-boot bootloader also contains a backup TFTP client to upload the
 firmware from. Upon boot, it checks its ethernet network for the IP
 192.168.1.10. Host a TFTP server and provide the image to be flashed as
 file firmware_auto.bin.

MAC address setup:

The art partition contains four consecutive MAC addresses:

0x0    aa:bb:cc:xx:xx:c4
0x6    aa:bb:cc:xx:xx:c6
0x1002 aa:bb:cc:xx:xx:c5
0x5006 aa:bb:cc:xx:xx:c7

However, the manufacturer in its infinite wisdom decided that one address
is enough and both eth0 and WiFi get the MAC address from 0x0 (yes, that's
overwriting the existing and valid address in 0x1002). This is obviously
also the address on the device's label.

Signed-off-by: Pavel Balan <admin@kryma.net>
[fix configs partition, fix IMAGE_SIZE, add MAC address comment, rename
ATH_SOC to SOC]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
target/linux/ath79/dts/qca9531_comfast_cf-e130n-v2.dts [new file with mode: 0644]
target/linux/ath79/generic/base-files/etc/board.d/01_leds
target/linux/ath79/generic/base-files/etc/board.d/02_network
target/linux/ath79/image/generic.mk

diff --git a/target/linux/ath79/dts/qca9531_comfast_cf-e130n-v2.dts b/target/linux/ath79/dts/qca9531_comfast_cf-e130n-v2.dts
new file mode 100644 (file)
index 0000000..a6ef6ad
--- /dev/null
@@ -0,0 +1,150 @@
+// 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-e130n-v2", "qca,qca9531";
+       model = "COMFAST CF-E130N v2";
+
+       aliases {
+               serial0 = &uart;
+               led-boot = &led_rssihigh;
+               led-failsafe = &led_rssihigh;
+               led-upgrade = &led_rssihigh;
+               label-mac-device = &eth1;
+       };
+
+       leds {
+               compatible = "gpio-leds";
+
+               pinctrl-names = "default";
+
+               wlan {
+                       label = "cf-e130n-v2:green:wlan";
+                       gpios = <&gpio 0 GPIO_ACTIVE_LOW>;
+                       linux,default-trigger = "phy0tpt";
+               };
+
+               lan {
+                       label = "cf-e130n-v2:green:lan";
+                       gpios = <&gpio 2 GPIO_ACTIVE_LOW>;
+               };
+
+               unused {
+                       label = "cf-e130n-v2:green:unused";
+                       gpios = <&gpio 3 GPIO_ACTIVE_LOW>;
+               };
+
+               rssilow {
+                       label = "cf-e130n-v2:red:rssilow";
+                       gpios = <&gpio 11 GPIO_ACTIVE_LOW>;
+               };
+
+               rssimediumlow {
+                       label = "cf-e130n-v2:red:rssimediumlow";
+                       gpios = <&gpio 12 GPIO_ACTIVE_LOW>;
+               };
+
+               rssimediumhigh {
+                       label = "cf-e130n-v2:green:rssimediumhigh";
+                       gpios = <&gpio 14 GPIO_ACTIVE_LOW>;
+               };
+
+               led_rssihigh: rssihigh {
+                       label = "cf-e130n-v2:green:rssihigh";
+                       gpios = <&gpio 16 GPIO_ACTIVE_LOW>;
+               };
+       };
+
+       keys {
+               compatible = "gpio-keys";
+
+               reset {
+                       label = "reset";
+                       linux,code = <KEY_RESTART>;
+                       gpios = <&gpio 17 GPIO_ACTIVE_LOW>;
+                       debounce-interval = <60>;
+               };
+       };
+};
+
+&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 0x7c0000>;
+                       };
+
+                       partition@7e0000 {
+                               label = "configs";
+                               reg = <0x7e0000 0x010000>;
+                               read-only;
+                       };
+
+                       partition@7f0000 {
+                               label = "nvram";
+                               reg = <0x7f0000 0x010000>;
+                               read-only;
+                       };
+               };
+       };
+};
+
+&uart {
+       status = "okay";
+
+};
+
+&eth0 {
+       compatible = "syscon", "simple-mfd";
+};
+
+&eth1 {
+       status = "okay";
+
+       phy-handle = <&swphy0>;
+
+       mtd-mac-address = <&art 0x0>;
+
+       gmac-config {
+               device = <&gmac>;
+               switch-phy-swap = <1>;
+       };
+};
+
+&wmac {
+       status = "okay";
+
+       mtd-mac-address = <&art 0x0>;
+       mtd-cal-data = <&art 0x1000>;
+};
index 90adc3a97f9201ed310f32ec5634c0a91873d14e..8e3b5e17afff9a8e1eca8d8f4fc64b4c6f00de16 100755 (executable)
@@ -57,6 +57,14 @@ comfast,cf-e120a-v3)
        ucidef_set_led_rssi "rssimediumhigh" "RSSIMEDIUMHIGH" "$boardname:green:rssimediumhigh" "wlan0" "51" "100"
        ucidef_set_led_rssi "rssihigh" "RSSIHIGH" "$boardname:green:rssihigh" "wlan0" "76" "100"
        ;;
+comfast,cf-e130n-v2)
+       ucidef_set_led_netdev "lan" "LAN" "$boardname:green:lan" "eth0"
+       ucidef_set_rssimon "wlan0" "200000" "1"
+       ucidef_set_led_rssi "rssilow" "RSSILOW" "$boardname:red:rssilow" "wlan0" "1" "100"
+       ucidef_set_led_rssi "rssimediumlow" "RSSIMEDIUMLOW" "$boardname:red:rssimediumlow" "wlan0" "26" "100"
+       ucidef_set_led_rssi "rssimediumhigh" "RSSIMEDIUMHIGH" "$boardname:green:rssimediumhigh" "wlan0" "51" "100"
+       ucidef_set_led_rssi "rssihigh" "RSSIHIGH" "$boardname:green:rssihigh" "wlan0" "76" "100"
+       ;;
 comfast,cf-e313ac)
        ucidef_set_led_switch "lan" "LAN" "$boardname:green:lan" "switch0" "0x02"
        ucidef_set_led_netdev "wan" "WAN" "$boardname:green:wan" "eth1"
index a99d5f65320d44772931e5ad421fb5dfdf2774d0..6fe76817ffd39ce58ee50cc03c6b8fe7fd8aa283 100755 (executable)
@@ -16,6 +16,7 @@ ath79_setup_interfaces()
        avm,fritz1750e|\
        avm,fritz300e|\
        comfast,cf-wr752ac-v1|\
+       comfast,cf-e130n-v2|\
        devolo,dvl1200i|\
        devolo,dvl1750c|\
        devolo,dvl1750i|\
index 7f06740c987e91f65a55878f24b85635c03a1690..45dfc6bdaded858504b0e4bbbedf4e349f058a1b 100644 (file)
@@ -304,6 +304,16 @@ define Device/comfast_cf-e120a-v3
 endef
 TARGET_DEVICES += comfast_cf-e120a-v3
 
+define Device/comfast_cf-e130n-v2
+  SOC := qca9531
+  DEVICE_VENDOR := COMFAST
+  DEVICE_MODEL := CF-E130N
+  DEVICE_VARIANT := v2
+  DEVICE_PACKAGES := rssileds kmod-leds-gpio -swconfig -uboot-envtools
+  IMAGE_SIZE := 7936k
+endef
+TARGET_DEVICES += comfast_cf-e130n-v2
+
 define Device/comfast_cf-e313ac
   SOC := qca9531
   DEVICE_VENDOR := COMFAST