ath79: add support for Compex WPJ531 (16M)
authorLeon M. George <leon@georgemail.eu>
Thu, 25 Jul 2019 01:06:32 +0000 (03:06 +0200)
committerAdrian Schmutzler <freifunk@adrianschmutzler.de>
Sat, 27 Jun 2020 22:26:39 +0000 (00:26 +0200)
Specifications:

SoC: QCA9531
DRAM: 128MB DDR2
Flash: 16MB SPI-NOR
2 100MBit ethernet ports
2×2 2.4GHz on-board radio
miniPCIe slot that supports 5GHz radio
PoE 24V - 48V IEEE 802.3af optional
USB 2.0 header

Installation:

To install, start a tftp server in bin/targets/ath79/generic/ and use the
u-boot prompt over UART:

tftpboot 0x80500000 openwrt-ath79-generic-compex_wpj531-16m-squashfs-sysupgrade.bin
erase 0x9f030000 +$filesize
erase 0x9f680000 +1
cp.b $fileaddr 0x9f030000 $filesize
boot

The cpximg file can be used with sysupgrade in the stock firmware (add SSH key
in luci for root access).

Another way is to hold the reset button during power up or running 'cpximg' in
the u-boot prompt.
Once the last LED starts flashing regularly, a TFTP-server under 192.168.1.1
will accept the image appropriate for the board revision that is etched on the
board.

For example, if the board is labelled '7A04':

tftp -v -m binary 192.168.1.1 -c put openwrt-ath79-generic-compex_wpj531-16m-squashfs-cpximg-7A04.bin

MAC addresses:

<&uboot 0x2e010>  *:cb  (label)
<&uboot 0x2e018>  *:cc
<&uboot 0x2e020>  *:cd
<&uboot 0x2e028>  *:ce

Only the first two are used (for ethernet), the WiFi modules have
separate (valid) addresses. The latter two addresses are not used.

Signed-off-by: Leon M. George <leon@georgemail.eu>
[commit title/message facelift, fix rssileds, add led aliases]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
target/linux/ath79/dts/qca9531_compex_wpj531-16m.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_compex_wpj531-16m.dts b/target/linux/ath79/dts/qca9531_compex_wpj531-16m.dts
new file mode 100644 (file)
index 0000000..343a02e
--- /dev/null
@@ -0,0 +1,141 @@
+// 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 = "compex,wpj531-16m", "qca,qca9531";
+       model = "Compex WPJ531 (16MB flash)";
+
+       aliases {
+               label-mac-device = &eth0;
+               led-boot = &led_sig4;
+               led-failsafe = &led_sig4;
+               led-running = &led_sig4;
+               led-upgrade = &led_sig4;
+       };
+
+       beeper {
+               compatible = "gpio-beeper";
+               gpios = <&gpio 4 GPIO_ACTIVE_HIGH>;
+       };
+
+       keys {
+               compatible = "gpio-keys";
+
+               reset {
+                       label = "reset";
+                       linux,code = <KEY_RESTART>;
+                       gpios = <&gpio 17 GPIO_ACTIVE_LOW>;
+               };
+       };
+
+       leds {
+               compatible = "gpio-leds";
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinmux_led_eth_pins>;
+
+               sig1 {
+                       label = "wpj531:red:sig1";
+                       gpios = <&gpio 12 GPIO_ACTIVE_LOW>;
+               };
+
+               sig2 {
+                       label = "wpj531:yellow:sig2";
+                       gpios = <&gpio 14 GPIO_ACTIVE_LOW>;
+               };
+
+               sig3 {
+                       label = "wpj531:green:sig3";
+                       gpios = <&gpio 15 GPIO_ACTIVE_LOW>;
+               };
+
+               led_sig4: sig4 {
+                       label = "wpj531:green:sig4";
+                       gpios = <&gpio 16 GPIO_ACTIVE_LOW>;
+               };
+       };
+};
+
+&uart {
+       status = "okay";
+};
+
+&pinmux {
+       pinmux_led_eth_pins: pinmux_led_eth_pins {
+               pinctrl-single,bits = <0x8 0x2b000000 0xff000000>, <0xc 0x00002d00 0x0000ff00>;
+       };
+};
+
+&spi {
+       status = "okay";
+
+       flash@0 {
+               compatible = "jedec,spi-nor";
+               reg = <0>;
+               spi-max-frequency = <25000000>;
+
+               partitions {
+                       compatible = "fixed-partitions";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+
+                       uboot: partition@0 {
+                               label = "u-boot";
+                               reg = <0x000000 0x030000>;
+                               read-only;
+                       };
+
+                       partition@30000 {
+                               label = "firmware";
+                               reg = <0x030000 0xfc0000>;
+                               compatible = "denx,uimage";
+                       };
+
+                       art: partition@ff0000 {
+                               label = "art";
+                               reg = <0xff0000 0x010000>;
+                               read-only;
+                       };
+               };
+       };
+};
+
+&eth1 {
+       mtd-mac-address = <&uboot 0x2e018>;
+};
+
+&eth0 {
+       status = "okay";
+
+       phy-handle = <&swphy4>;
+
+       mtd-mac-address = <&uboot 0x2e010>;
+};
+
+&wmac {
+       status = "okay";
+
+       mtd-cal-data = <&art 0x1000>;
+};
+
+&pcie0 {
+       status = "okay";
+
+       wifi@0,0 {
+               compatible = "pci168c,003c";
+               reg = <0x0000 0 0 0 0>;
+       };
+};
+
+&usb_phy {
+       status = "okay";
+};
+
+&usb0 {
+       status = "okay";
+};
index 398c9ed..aaa830c 100755 (executable)
@@ -115,6 +115,13 @@ engenius,ecb1750|\
 enterasys,ws-ap3705i)
        ucidef_set_led_netdev "lan" "LAN" "$boardname:blue:lan" "eth0"
        ;;
 enterasys,ws-ap3705i)
        ucidef_set_led_netdev "lan" "LAN" "$boardname:blue:lan" "eth0"
        ;;
+compex,wpj531-16m)
+       ucidef_set_rssimon "wlan0" "200000" "1"
+       ucidef_set_led_rssi "sig1" "SIG1" "wpj531:red:sig1" "wlan0" "85" "100"
+       ucidef_set_led_rssi "sig2" "SIG2" "wpj531:yellow:sig2" "wlan0" "75" "100"
+       ucidef_set_led_rssi "sig3" "SIG3" "wpj531:green:sig3" "wlan0" "65" "100"
+       ucidef_set_led_rssi "sig4" "SIG4" "wpj531:green:sig4" "wlan0" "50" "100"
+       ;;
 devolo,magic-2-wifi)
        ucidef_set_led_netdev "plcw" "dLAN" "devolo:white:dlan" "eth0.1" "rx"
        ;;
 devolo,magic-2-wifi)
        ucidef_set_led_netdev "plcw" "dLAN" "devolo:white:dlan" "eth0.1" "rx"
        ;;
index 4b74565..d0e73a5 100755 (executable)
@@ -108,6 +108,7 @@ ath79_setup_interfaces()
        comfast,cf-e110n-v2|\
        comfast,cf-e120a-v3|\
        comfast,cf-e314n-v2|\
        comfast,cf-e110n-v2|\
        comfast,cf-e120a-v3|\
        comfast,cf-e314n-v2|\
+       compex,wpj531-16m|\
        tplink,cpe210-v1|\
        tplink,cpe220-v2|\
        tplink,cpe220-v3|\
        tplink,cpe210-v1|\
        tplink,cpe220-v2|\
        tplink,cpe220-v3|\
index 9f296ad..35def34 100644 (file)
@@ -418,6 +418,17 @@ define Device/comfast_cf-wr752ac-v1
 endef
 TARGET_DEVICES += comfast_cf-wr752ac-v1
 
 endef
 TARGET_DEVICES += comfast_cf-wr752ac-v1
 
+define Device/compex_wpj531-16m
+  SOC := qca9531
+  DEVICE_PACKAGES := kmod-usb2
+  IMAGE_SIZE := 16128k
+  DEVICE_VENDOR := Compex
+  DEVICE_MODEL := WPJ531
+  DEVICE_VARIANT := 16M
+  SUPPORTED_DEVICES += wpj531
+endef
+TARGET_DEVICES += compex_wpj531-16m
+
 define Device/devolo_dvl1200e
   SOC := qca9558
   DEVICE_VENDOR := devolo
 define Device/devolo_dvl1200e
   SOC := qca9558
   DEVICE_VENDOR := devolo