[openwrt/openwrt] ath79: add support for MikroTik SXT 5nD r2 (SXT Lite5)

LEDE Commits lede-commits at lists.infradead.org
Wed Aug 12 08:03:58 EDT 2020


adrian pushed a commit to openwrt/openwrt.git, branch master:
https://git.openwrt.org/151e43df7a9bc364080bd13402d81c17d4c8ba7e

commit 151e43df7a9bc364080bd13402d81c17d4c8ba7e
Author: Roger Pueyo Centelles <roger.pueyo at guifi.net>
AuthorDate: Thu Jun 11 14:22:54 2020 +0200

    ath79: add support for MikroTik SXT 5nD r2 (SXT Lite5)
    
    The MikroTik SXT Lite5 (product code RBSXT5nDr2, also SXT 5nD r2) is
    an outdoor 5GHz CPE with a 16 dBi integrated antenna built around the
    Atheros AR9344 SoC. It is based on the "sxt5n" board platform.
    
    Specifications:
     - SoC: Atheros AR9344
     - RAM: 64 MB
     - Storage: 128 MB NAND
     - Wireless: Atheros AR9340 (SoC) 802.11a/n 2x2:2
     - Ethernet: Atheros AR8229 switch (SoC), 1x 10/100 port,
        8-32 Vdc PoE in
     - 6 user-controllable LEDs:
      · 1x power (blue)
      · 1x wlan (green)
      · 4x rssi (green)
     - 1 GPIO-controlled buzzer
    
     See https://mikrotik.com/product/RBSXT5nDr2 for more details.
    
    Notes:
     The device was already supported in the ar71xx target. There, the
     Ethernet port was handled by GMAC1. Here in ath79 it is handled by
     GMAC0, which allows to get link information (loss, speed, duplex) on
     the eth0 interface.
    
    Flashing:
     TFTP boot initramfs image and then perform sysupgrade. Follow common
     MikroTik procedure as in https://openwrt.org/toh/mikrotik/common.
    
    Acknowledgments:
     Michael Pratt (@mpratt14) for helping on the network settings.
    
    Signed-off-by: Roger Pueyo Centelles <roger.pueyo at guifi.net>
    [rebase, use mikrotik LED label prefix, make names consistent,
    add reg for bootloader2, use led_user for boot indication etc.,
    minor cosmetic changes]
    Signed-off-by: Adrian Schmutzler <freifunk at adrianschmutzler.de>
---
 .../dts/ar9344_mikrotik_routerboard-sxt-5n.dtsi    | 193 +++++++++++++++++++++
 .../dts/ar9344_mikrotik_routerboard-sxt-5nd-r2.dts |   9 +
 target/linux/ath79/image/mikrotik.mk               |   9 +
 .../ath79/mikrotik/base-files/etc/board.d/01_leds  |   8 +
 .../mikrotik/base-files/etc/board.d/02_network     |   2 +
 .../etc/hotplug.d/firmware/10-ath9k-eeprom         |   3 +-
 .../mikrotik/base-files/lib/upgrade/platform.sh    |   3 +-
 7 files changed, 225 insertions(+), 2 deletions(-)

diff --git a/target/linux/ath79/dts/ar9344_mikrotik_routerboard-sxt-5n.dtsi b/target/linux/ath79/dts/ar9344_mikrotik_routerboard-sxt-5n.dtsi
new file mode 100644
index 0000000000..100976e2c8
--- /dev/null
+++ b/target/linux/ath79/dts/ar9344_mikrotik_routerboard-sxt-5n.dtsi
@@ -0,0 +1,193 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+
+#include "ar9344.dtsi"
+
+/ {
+	compatible = "mikrotik,routerboard-sxt-5n", "qca,ar9344";
+	model = "MikroTik SXT 5N platform";
+
+	aliases {
+		led-boot = &led_user;
+		led-failsafe = &led_user;
+		led-running = &led_user;
+		led-upgrade = &led_user;
+		serial0 = &uart;
+	};
+
+	leds {
+		compatible = "gpio-leds";
+
+		power {
+			label = "mikrotik:green:power";
+			gpios = <&gpio 11 GPIO_ACTIVE_HIGH>;
+			default-state = "on";
+		};
+
+		rssilow {
+			label = "mikrotik:green:rssilow";
+			gpios = <&gpio 13 GPIO_ACTIVE_LOW>;
+		};
+
+		rssimediumlow {
+			label = "mikrotik:green:rssimediumlow";
+			gpios = <&gpio 12 GPIO_ACTIVE_LOW>;
+		};
+
+		rssimedium {
+			label = "mikrotik:green:rssimedium";
+			gpios = <&gpio 4 GPIO_ACTIVE_LOW>;
+		};
+
+		rssimediumhigh {
+			label = "mikrotik:green:rssimediumhigh";
+			gpios = <&gpio 21 GPIO_ACTIVE_LOW>;
+		};
+
+		rssihigh {
+			label = "mikrotik:green:rssihigh";
+			gpios = <&gpio 18 GPIO_ACTIVE_LOW>;
+		};
+
+		led_user: user {
+			label = "mikrotik:green:user";
+			gpios = <&gpio 3 GPIO_ACTIVE_LOW>;
+		};
+	};
+
+	keys {
+		compatible = "gpio-keys";
+
+		reset {
+			label = "reset";
+			linux,code = <KEY_RESTART>;
+			gpios = <&gpio 15 GPIO_ACTIVE_LOW>;
+			debounce-interval = <60>;
+		};
+	};
+
+	gpio-export {
+		compatible = "gpio-export";
+
+		gpio_nand_power {
+			gpio-export,name = "sxt5n:power:nand";
+			gpio-export,output = <0>;
+			gpios = <&gpio 14 GPIO_ACTIVE_LOW>;
+		};
+	};
+
+	beeper {
+		compatible = "gpio-beeper";
+		gpios = <&gpio 19 GPIO_ACTIVE_HIGH>;
+	};
+};
+
+&spi {
+	status = "okay";
+
+	num-cs = <1>;
+
+	flash at 0 {
+		compatible = "jedec,spi-nor";
+		reg = <0>;
+		spi-max-frequency = <40000000>;
+
+		partitions {
+			compatible = "fixed-partitions";
+			#address-cells = <1>;
+			#size-cells = <1>;
+
+			partition at 0 {
+				label = "RouterBoot";
+				reg = <0x0 0x20000>;
+				read-only;
+				compatible = "mikrotik,routerboot-partitions";
+				#address-cells = <1>;
+				#size-cells = <1>;
+
+				partition at 0 {
+					label = "bootloader1";
+					reg = <0x0 0x0>;
+					read-only;
+				};
+
+				hard_config: hard_config {
+					read-only;
+				};
+
+				bios {
+					size = <0x1000>;
+					read-only;
+				};
+
+				partition at 10000 {
+					label = "bootloader2";
+					reg = <0x10000 0x0>;
+					read-only;
+				};
+
+				soft_config {
+				};
+			};
+		};
+	};
+};
+
+&nand {
+	status = "okay";
+
+	nand-ecc-mode = "soft";
+	qca,nand-swap-dma;
+	qca,nand-scan-fixup;
+
+	partitions {
+		compatible = "fixed-partitions";
+		#address-cells = <1>;
+		#size-cells = <1>;
+
+		partition at 0 {
+			label = "booter";
+			reg = <0x0000000 0x0040000>;
+			read-only;
+		};
+
+		partition at 40000 {
+			label = "kernel";
+			reg = <0x0040000 0x03c0000>;
+		};
+
+		partition at 400000 {
+			label = "ubi";
+			reg = <0x0400000 0x7c00000>;
+		};
+	};
+};
+
+&uart {
+	status = "okay";
+};
+
+&eth0 {
+	status = "okay";
+
+	phy-handle = <&swphy0>;
+
+	gmac-config {
+		device = <&gmac>;
+		switch-phy-swap = <1>;
+	};
+};
+
+&eth1 {
+	status = "okay";
+
+	compatible = "syscon", "simple-mfd";
+};
+
+&wmac {
+	status = "okay";
+
+	qca,no-eeprom;
+};
diff --git a/target/linux/ath79/dts/ar9344_mikrotik_routerboard-sxt-5nd-r2.dts b/target/linux/ath79/dts/ar9344_mikrotik_routerboard-sxt-5nd-r2.dts
new file mode 100644
index 0000000000..82b78c85bb
--- /dev/null
+++ b/target/linux/ath79/dts/ar9344_mikrotik_routerboard-sxt-5nd-r2.dts
@@ -0,0 +1,9 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/dts-v1/;
+
+#include "ar9344_mikrotik_routerboard-sxt-5n.dtsi"
+
+/ {
+	compatible = "mikrotik,routerboard-sxt-5nd-r2", "qca,ar9344";
+	model = "MikroTik RouterBOARD SXT 5nD r2 (SXT Lite5)";
+};
diff --git a/target/linux/ath79/image/mikrotik.mk b/target/linux/ath79/image/mikrotik.mk
index 6066d8a147..3752c891a7 100644
--- a/target/linux/ath79/image/mikrotik.mk
+++ b/target/linux/ath79/image/mikrotik.mk
@@ -35,6 +35,15 @@ define Device/mikrotik_routerboard-lhg-2nd
 endef
 TARGET_DEVICES += mikrotik_routerboard-lhg-2nd
 
+define Device/mikrotik_routerboard-sxt-5nd-r2
+  $(Device/mikrotik_nand)
+  SOC := ar9344
+  DEVICE_MODEL := RouterBOARD SXT 5nD r2 (SXT Lite5)
+  DEVICE_PACKAGES += rssileds kmod-gpio-beeper
+  SUPPORTED_DEVICES += rb-sxt5n
+endef
+TARGET_DEVICES += mikrotik_routerboard-sxt-5nd-r2
+
 define Device/mikrotik_routerboard-wap-g-5hact2hnd
   $(Device/mikrotik_nor)
   SOC := qca9556
diff --git a/target/linux/ath79/mikrotik/base-files/etc/board.d/01_leds b/target/linux/ath79/mikrotik/base-files/etc/board.d/01_leds
index adbaee1266..6085830595 100755
--- a/target/linux/ath79/mikrotik/base-files/etc/board.d/01_leds
+++ b/target/linux/ath79/mikrotik/base-files/etc/board.d/01_leds
@@ -11,6 +11,14 @@ case "$board" in
 mikrotik,routerboard-lhg-2nd)
 	ucidef_set_led_netdev "lan" "lan" "mikrotik:green:lan" "eth0"
 	;;
+mikrotik,routerboard-sxt-5nd-r2)
+	ucidef_set_rssimon "wlan0" "200000" "1"
+	ucidef_set_led_rssi "rssilow" "rssilow" "sxt5n:green:rssilow" "wlan0" "1" "100"
+	ucidef_set_led_rssi "rssimediumlow" "rssimediumlow" "sxt5n:green:rssimediumlow" "wlan0" "20" "100"
+	ucidef_set_led_rssi "rssimedium" "rssimedium" "sxt5n:green:rssimedium" "wlan0" "40" "100"
+	ucidef_set_led_rssi "rssimediumhigh" "rssimediumhigh" "sxt5n:green:rssimediumhigh" "wlan0" "60" "100"
+	ucidef_set_led_rssi "rssihigh" "rssihigh" "sxt5n:green:rssihigh" "wlan0" "80" "100"
+	;;
 esac
 
 board_config_flush
diff --git a/target/linux/ath79/mikrotik/base-files/etc/board.d/02_network b/target/linux/ath79/mikrotik/base-files/etc/board.d/02_network
index f0799a0b8c..6bc4822551 100755
--- a/target/linux/ath79/mikrotik/base-files/etc/board.d/02_network
+++ b/target/linux/ath79/mikrotik/base-files/etc/board.d/02_network
@@ -18,6 +18,7 @@ ath79_setup_interfaces()
 	mikrotik,routerboard-921gs-5hpacd-15s|\
 	mikrotik,routerboard-922uags-5hpacd|\
 	mikrotik,routerboard-lhg-2nd|\
+	mikrotik,routerboard-sxt-5nd-r2|\
 	mikrotik,routerboard-wap-g-5hact2hnd)
 		ucidef_set_interface_lan "eth0"
 		;;
@@ -38,6 +39,7 @@ ath79_setup_macs()
 	case "$board" in
 	mikrotik,routerboard-921gs-5hpacd-15s|\
 	mikrotik,routerboard-lhg-2nd|\
+	mikrotik,routerboard-sxt-5nd-r2|\
 	mikrotik,routerboard-wap-g-5hact2hnd)
 		label_mac="$mac_base"
 		lan_mac="$mac_base"
diff --git a/target/linux/ath79/mikrotik/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom b/target/linux/ath79/mikrotik/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom
index 61c323552b..30a7759ef2 100644
--- a/target/linux/ath79/mikrotik/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom
+++ b/target/linux/ath79/mikrotik/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom
@@ -12,7 +12,8 @@ board=$(board_name)
 case "$FIRMWARE" in
 "ath9k-eeprom-ahb-18100000.wmac.bin")
 	case $board in
-	mikrotik,routerboard-lhg-2nd)
+	mikrotik,routerboard-lhg-2nd|\
+	mikrotik,routerboard-sxt-5nd-r2)
 		caldata_from_file $wlan_data 0x1000 0x440 /tmp/$FIRMWARE
 		ath9k_patch_mac $(macaddr_add "$mac_base" +1) /tmp/$FIRMWARE
 		caldata_sysfsload_from_file /tmp/$FIRMWARE 0x0 0x440
diff --git a/target/linux/ath79/mikrotik/base-files/lib/upgrade/platform.sh b/target/linux/ath79/mikrotik/base-files/lib/upgrade/platform.sh
index 3297b0abaf..d79bd03af5 100644
--- a/target/linux/ath79/mikrotik/base-files/lib/upgrade/platform.sh
+++ b/target/linux/ath79/mikrotik/base-files/lib/upgrade/platform.sh
@@ -33,7 +33,8 @@ platform_do_upgrade() {
 	case "$board" in
 	mikrotik,routerboard-493g|\
 	mikrotik,routerboard-921gs-5hpacd-15s|\
-	mikrotik,routerboard-922uags-5hpacd)
+	mikrotik,routerboard-922uags-5hpacd|\
+	mikrotik,routerboard-sxt-5nd-r2)
 		platform_do_upgrade_mikrotik_nand "$1"
 		;;
 	*)



More information about the lede-commits mailing list