ath79: add support for MikroTik RouterBOARD 921GS-5HPacD-15s
authorSven Roederer <devel-sven@geroedel.de>
Mon, 22 Jun 2020 21:05:51 +0000 (23:05 +0200)
committerAdrian Schmutzler <freifunk@adrianschmutzler.de>
Wed, 12 Aug 2020 12:03:17 +0000 (14:03 +0200)
The MikroTik RouterBOARD 921GS-5HPacD-15s (mANTBox 15s) is an outdoor
antenna for 5 GHz with an built-in router. This ports the board from
ar71xx.

See https://mikrotik.com/product/RB921GS-5HPacD-15S for more info.

Specifications:
 - SoC: Qualcomm Atheros QCA9558 (720 MHz)
 - RAM: 128 MB
 - Storage: 128 MB NAND
 - Wireless: external QCA9892 802.11a/ac 2x2:2
 - Ethernet: 1x 1000/100/10 Mbps, integrated, via AR8031 PHY, passive PoE in
 - SFP: 1x host

Working:
 - NAND storage detection
 - Ethernet
 - Wireless
 - 1x user LED (blinks during boot, sysupgrade)
 - Reset button
 - Sysupgrade

Untested:
 - SFP cage (probably not working)

Installation (untested):
 - Boot initramfs image via TFTP and then flash sysupgrade image

As the embedded RB921-pcb is a stripped down version of the RB922 this patch
adds a common dtsi for this series and includes this to the final dts-files.

Signed-off-by: Sven Roederer <devel-sven@geroedel.de>
[move ath10k-leds closer to ath10k definition in DTS files]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
target/linux/ath79/dts/qca9558_mikrotik_routerboard-921gs-5hpacd-15s.dts [new file with mode: 0644]
target/linux/ath79/dts/qca9558_mikrotik_routerboard-922uags-5hpacd.dts
target/linux/ath79/dts/qca9558_mikrotik_routerboard-92x.dtsi [new file with mode: 0644]
target/linux/ath79/image/mikrotik.mk
target/linux/ath79/mikrotik/base-files/etc/board.d/02_network
target/linux/ath79/mikrotik/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
target/linux/ath79/mikrotik/base-files/lib/upgrade/platform.sh

diff --git a/target/linux/ath79/dts/qca9558_mikrotik_routerboard-921gs-5hpacd-15s.dts b/target/linux/ath79/dts/qca9558_mikrotik_routerboard-921gs-5hpacd-15s.dts
new file mode 100644 (file)
index 0000000..8cd0fa7
--- /dev/null
@@ -0,0 +1,30 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/dts-v1/;
+
+#include "qca9558_mikrotik_routerboard-92x.dtsi"
+
+/ {
+       compatible = "mikrotik,routerboard-921gs-5hpacd-15s", "qca,qca9558";
+       model = "MikroTik RouterBOARD 921GS-5HPacD-15s";
+
+       ath10k-leds {
+               compatible = "gpio-leds";
+
+               wlan5g {
+                       label = "mikrotik:green:wlan5g";
+                       gpios = <&ath10k 0 GPIO_ACTIVE_LOW>;
+                       linux,default-trigger = "phy0tpt";
+               };
+       };
+};
+
+&pcie1 {
+       status = "okay";
+
+       ath10k: wifi@0,0 {
+               compatible = "qcom,ath10k";
+               reg = <0 0 0 0 0>;
+               #gpio-cells = <2>;
+               gpio-controller;
+       };
+};
index a3f42f87bfe53ddff9ab5ee94d0a2b4dc5ba8422..92a1772e201fdf6d105796b1befc87a31480a370 100644 (file)
@@ -1,31 +1,12 @@
 // 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 "qca955x.dtsi"
+#include "qca9558_mikrotik_routerboard-92x.dtsi"
 
 / {
        compatible = "mikrotik,routerboard-922uags-5hpacd", "qca,qca9558";
        model = "MikroTik RouterBOARD 922UAGS-5HPacD";
 
-       aliases {
-               led-boot = &led_user;
-               led-failsafe = &led_user;
-               led-upgrade = &led_user;
-               serial0 = &uart;
-       };
-
-       leds {
-               compatible = "gpio-leds";
-
-               led_user: user {
-                       label = "mikrotik:green:user";
-                       gpios = <&gpio 12 GPIO_ACTIVE_LOW>;
-               };
-       };
-
        ath10k-leds {
                compatible = "gpio-leds";
 
                };
        };
 
-       keys {
-               compatible = "gpio-keys";
-
-               reset {
-                       label = "reset";
-                       linux,code = <KEY_RESTART>;
-                       gpios = <&gpio 20 GPIO_ACTIVE_LOW>;
-                       debounce-interval = <60>;
-               };
-       };
-
        gpio-export {
-               compatible = "gpio-export";
-
                gpio_usb_power {
                        gpio-export,name = "mikrotik:power:usb";
                        gpio-export,output = <0>;
                        gpios = <&gpio 13 GPIO_ACTIVE_HIGH>;
                };
-
-               gpio_nand_power {
-                       gpio-export,name = "mikrotik:power:nand";
-                       gpio-export,output = <0>;
-                       gpios = <&gpio 23 GPIO_ACTIVE_LOW>;
-               };
-       };
-};
-
-&mdio0 {
-       status = "okay";
-
-       phy4: ethernet-phy@4 {
-               reg = <4>;
-       };
-};
-
-&eth0 {
-       status = "okay";
-
-       phy-handle = <&phy4>;
-       pll-data = <0x8f000000 0xa0000101 0xa0001313>;
-
-       gmac-config {
-               device = <&gmac>;
-               rgmii-enabled = <1>;
        };
 };
 
-&spi {
-       status = "okay";
-
-       flash@0 {
-               compatible = "jedec,spi-nor";
-               reg = <0>;
-               spi-max-frequency = <25000000>;
-
-               partitions {
-                       compatible = "mikrotik,routerboot-partitions";
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-
-                       partition@0 {
-                               label = "routerboot";
-                               reg = <0x0 0x0>;
-                               read-only;
-                       };
-
-                       hard_config: hard_config {
-                               read-only;
-                       };
-
-                       bios {
-                               read-only;
-                       };
-
-                       soft_config {
-                       };
-               };
-       };
-};
-
-&nand {
-       status = "okay";
-
-       nand-ecc-mode = "soft";
-       qca,nand-swap-dma;
-       qca,nand-scan-fixup;
-
-       partitions {
-               compatible = "fixed-partitions";
-               #size-cells = <1>;
-
-               partition@0 {
-                       label = "booter";
-                       reg = <0x0000000 0x0040000>;
-                       read-only;
-               };
-
-               partition@40000 {
-                       label = "kernel";
-                       reg = <0x0040000 0x03c0000>;
-               };
-
-               partition@400000 {
-                       label = "ubi";
-                       reg = <0x0400000 0x7c00000>;
-               };
-       };
-};
-
-&uart {
-       status = "okay";
-};
-
 &pcie0 {
        status = "okay";
 
diff --git a/target/linux/ath79/dts/qca9558_mikrotik_routerboard-92x.dtsi b/target/linux/ath79/dts/qca9558_mikrotik_routerboard-92x.dtsi
new file mode 100644 (file)
index 0000000..c48f997
--- /dev/null
@@ -0,0 +1,131 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+
+#include "qca955x.dtsi"
+
+/ {
+       aliases {
+               led-boot = &led_user;
+               led-failsafe = &led_user;
+               led-upgrade = &led_user;
+               serial0 = &uart;
+       };
+
+       leds {
+               compatible = "gpio-leds";
+
+               led_user: user {
+                       label = "mikrotik:green:user";
+                       gpios = <&gpio 12 GPIO_ACTIVE_LOW>;
+               };
+       };
+
+       keys {
+               compatible = "gpio-keys";
+
+               reset {
+                       label = "reset";
+                       linux,code = <KEY_RESTART>;
+                       gpios = <&gpio 20 GPIO_ACTIVE_LOW>;
+                       debounce-interval = <60>;
+               };
+       };
+
+       gpio-export {
+               compatible = "gpio-export";
+
+               gpio_nand_power {
+                       gpio-export,name = "mikrotik:power:nand";
+                       gpio-export,output = <0>;
+                       gpios = <&gpio 23 GPIO_ACTIVE_LOW>;
+               };
+       };
+};
+
+&mdio0 {
+       status = "okay";
+
+       phy4: ethernet-phy@4 {
+               reg = <4>;
+       };
+};
+
+&eth0 {
+       status = "okay";
+
+       phy-handle = <&phy4>;
+       pll-data = <0x8f000000 0xa0000101 0xa0001313>;
+
+       gmac-config {
+               device = <&gmac>;
+               rgmii-enabled = <1>;
+       };
+};
+
+&spi {
+       status = "okay";
+
+       flash@0 {
+               compatible = "jedec,spi-nor";
+               reg = <0>;
+               spi-max-frequency = <25000000>;
+
+               partitions {
+                       compatible = "mikrotik,routerboot-partitions";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+
+                       partition@0 {
+                               label = "routerboot";
+                               reg = <0x0 0x0>;
+                               read-only;
+                       };
+
+                       hard_config: hard_config {
+                               read-only;
+                       };
+
+                       bios {
+                               read-only;
+                       };
+
+                       soft_config {
+                       };
+               };
+       };
+};
+
+&nand {
+       status = "okay";
+
+       nand-ecc-mode = "soft";
+       qca,nand-swap-dma;
+       qca,nand-scan-fixup;
+
+       partitions {
+               compatible = "fixed-partitions";
+               #size-cells = <1>;
+
+               partition@0 {
+                       label = "booter";
+                       reg = <0x0000000 0x0040000>;
+                       read-only;
+               };
+
+               partition@40000 {
+                       label = "kernel";
+                       reg = <0x0040000 0x03c0000>;
+               };
+
+               partition@400000 {
+                       label = "ubi";
+                       reg = <0x0400000 0x7c00000>;
+               };
+       };
+};
+
+&uart {
+       status = "okay";
+};
index 1d4a1390ef7559294db224015d47bb852349ee76..6066d8a147cdf3926ffb17e8ef0aea57cda131bd 100644 (file)
@@ -9,6 +9,15 @@ define Device/mikrotik_routerboard-493g
 endef
 TARGET_DEVICES += mikrotik_routerboard-493g
 
+define Device/mikrotik_routerboard-921gs-5hpacd-15s
+  $(Device/mikrotik_nand)
+  SOC := qca9558
+  DEVICE_MODEL := RouterBOARD 921GS-5HPacD-15s (mANTBox 15s)
+  DEVICE_PACKAGES += kmod-ath10k-ct ath10k-firmware-qca988x-ct
+  SUPPORTED_DEVICES += rb-921gs-5hpacd-r2
+endef
+TARGET_DEVICES += mikrotik_routerboard-921gs-5hpacd-15s
+
 define Device/mikrotik_routerboard-922uags-5hpacd
   $(Device/mikrotik_nand)
   SOC := qca9558
index c6384378ca03fdf400291dfa33d7c16bf0c1fe38..f0799a0b8c0656fcf3f9b77369ef382bcef397c2 100755 (executable)
@@ -15,6 +15,7 @@ ath79_setup_interfaces()
                ucidef_add_switch "switch1" \
                        "0@eth1" "1:lan:4" "2:lan:1" "3:lan:2" "4:lan:3"
                ;;
+       mikrotik,routerboard-921gs-5hpacd-15s|\
        mikrotik,routerboard-922uags-5hpacd|\
        mikrotik,routerboard-lhg-2nd|\
        mikrotik,routerboard-wap-g-5hact2hnd)
@@ -35,6 +36,7 @@ ath79_setup_macs()
        local mac_base="$(cat /sys/firmware/mikrotik/hard_config/mac_base)"
 
        case "$board" in
+       mikrotik,routerboard-921gs-5hpacd-15s|\
        mikrotik,routerboard-lhg-2nd|\
        mikrotik,routerboard-wap-g-5hact2hnd)
                label_mac="$mac_base"
index 531c21678f460825dbfd08e7b2ece7c7345b8deb..31d4eeedbcce0ac92c7418df60f5924ec64ef910 100644 (file)
@@ -11,6 +11,7 @@ board=$(board_name)
 case "$FIRMWARE" in
 "ath10k/cal-pci-0000:00:00.0.bin")
        case $board in
+       mikrotik,routerboard-921gs-5hpacd-15s|\
        mikrotik,routerboard-wap-g-5hact2hnd)
                caldata_sysfsload_from_file $wlan_data 0x5000 0x844
                ;;
index 8d11cfc0ce64740eb789669c20eb5487ec466d9b..3297b0abafe9eea3be8c4bdf84e64fe9beb3295e 100644 (file)
@@ -32,6 +32,7 @@ platform_do_upgrade() {
 
        case "$board" in
        mikrotik,routerboard-493g|\
+       mikrotik,routerboard-921gs-5hpacd-15s|\
        mikrotik,routerboard-922uags-5hpacd)
                platform_do_upgrade_mikrotik_nand "$1"
                ;;