[PATCH] ath79: add support for Mikrotik SXT-R LTE
Sergey Ryazanov
ryazanov.s.a at gmail.com
Mon Mar 7 18:02:27 PST 2022
Hello Mike,
On Fri, Mar 4, 2022 at 9:54 PM mk 378 <keitz24 at gmail.com> wrote:
> This adds support for the Mikrotik SXT-R LTE device, which is an
> outdoor router that hosts an LTE modem mini PCIe card for its WAN
> connection. The LTE antenna system claims a 9 dBi gain.
>
> Hardware:
> - SoC: QCA9531
> - Flash: 16 MiB SPI NOR
> - RAM: 64 MiB DDR2
> - WiFi: None (no antenna is connected to the SoC WiFi system)
> - Ethernet: 2 x 10/100 Mb.
> - PoE: Passive or 802.3af in on port 1. Unit must be powered by PoE.
> GPIO switchable passive PoE out on port 2.
> - Modem support: Mini PCIe slot wired only for USB2, no PCIe bus.
> Dual LTE antennas, two MicroSIM slots-- SIM card in use is
> selected by a GPIO output. GPIO control of the 3.3 volt power
> to the slot, and hardware control pins 22 and 20.
> - Serial: There is a set of 10 test pads on board near the flash chip.
> Pin 6 is RX and pin 7 is Tx. Tx GPIO pin is shared with the
> yellow LED on the eth1 socket. This DTS sets it as serial
> output for OpenWrt. The bootloader does not use serial.
> - LEDs: Power, LTE, 2x Ethernet Link, PoE out, 5x LTE signal level
> - Buttons: Reset, Mode
>
> Installation: Standard MikroTik-- RouterBOOT netboot the OpenWrt
> initramfs image, then flash the sysupgrade image from within OpenWrt.
> Under OpenWrt, the eth1 port (with PoE in) defaults to be LAN,
> and eth2 is WAN.
>
> Signed-off-by: Mike Keitz <keitz24 at gmail>
Please, do not mask the email address in the SoB line.
All whitespaces in the patch were mangled, probably by the gmail web
interface. Consider using git-send-email(1) to submit the patch.
> diff --git a/target/linux/ath79/image/mikrotik.mk
> b/target/linux/ath79/image/mikrotik.mk
> index ff3604f2fa..ad29158156 100644
> --- a/target/linux/ath79/image/mikrotik.mk
> +++ b/target/linux/ath79/image/mikrotik.mk
> @@ -64,6 +64,15 @@ define Device/mikrotik_routerboard-sxt-5nd-r2
> endef
> TARGET_DEVICES += mikrotik_routerboard-sxt-5nd-r2
>
> +define Device/mikrotik_routerboard-sxtr
> + $(Device/mikrotik_nor)
> + SOC := qca9531
> + DEVICE_MODEL := RouterBOARD SXTR (SXT-LTE)
> + DEVICE_PACKAGES += kmod-usb2 kmod-gpio-nxp-74hc164
If the only WAN interface is an LTE modem, should the firmware include
a package with a modem driver?
> + IMAGE_SIZE := 16256k
> +endef
> +TARGET_DEVICES += mikrotik_routerboard-sxtr
> +
> 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 25c0184568..1c91c57f38 100644
> --- a/target/linux/ath79/mikrotik/base-files/etc/board.d/01_leds
> +++ b/target/linux/ath79/mikrotik/base-files/etc/board.d/01_leds
> @@ -32,6 +32,10 @@ mikrotik,routerboard-sxt-5nd-r2)
> ucidef_set_led_rssi "rssimediumhigh" "rssimediumhigh"
> "green:rssimediumhigh" "wlan0" "60" "100"
> ucidef_set_led_rssi "rssihigh" "rssihigh" "green:rssihigh" "wlan0" "80" "100"
> ;;
> +mikrotik,routerboard-sxtr)
> + ucidef_set_led_netdev "eth1" "eth1" "green:eth1" "eth1"
> + ucidef_set_led_switch "eth2" "eth2" "green:eth2" "switch0"
> "4" "6" "link tx rx"
> + ;;
> 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 1a205e439c..90a018658b 100644
> --- a/target/linux/ath79/mikrotik/base-files/etc/board.d/02_network
> +++ b/target/linux/ath79/mikrotik/base-files/etc/board.d/02_network
> @@ -22,6 +22,9 @@ ath79_setup_interfaces()
> mikrotik,routerboard-wapr-2nd)
> ucidef_set_interface_lan "eth0"
> ;;
> + mikrotik,routerboard-sxtr)
> + ucidef_set_interfaces_lan_wan "eth1" "eth0"
> + ;;
> *)
> ucidef_set_interfaces_lan_wan "eth0" "eth1"
> ;;
> diff --git a/target/linux/ath79/dts/qca9531_mikrotik_routerboard-sxtr.dts
> b/target/linux/ath79/dts/qca9531_mikrotik_routerboard-sxtr.dts
> new file mode 100644
> index 0000000000..acd8c3e4eb
> --- /dev/null
> +++ b/target/linux/ath79/dts/qca9531_mikrotik_routerboard-sxtr.dts
> @@ -0,0 +1,192 @@
> +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
> +
> +#include "qca9533_mikrotik_routerboard-16m.dtsi"
> +
> +/ {
> + compatible = "mikrotik,routerboard-sxtr", "qca,qca9533";
> + model = "MikroTik RouterBOARD SXTR (SXT-LTE)";
> +
> + aliases {
> + led-boot = &led_power;
> + led-failsafe = &led_power;
> + led-upgrade = &led_power;
> + led-running = &led_power;
> + };
> +
> + leds {
> + compatible = "gpio-leds";
> + pinctrl-names = "default";
> +
> + led_power: power {
> + label = "green:power";
> + gpios = <&gpio 4 GPIO_ACTIVE_LOW>;
> + };
> +
> + lte {
> + label = "green:lte";
> + gpios = <&gpio 1 GPIO_ACTIVE_LOW>;
> + };
> +
> + eth1green {
> + label = "green:eth1";
> + gpios = <&gpio 2 GPIO_ACTIVE_LOW>;
> + };
> +
> + eth2green {
> + label = "green:eth2";
> + gpios = <&gpio 0 GPIO_ACTIVE_LOW>;
> + };
> +
> + eth2yellow {
> + label = "yellow:eth2";
> + gpios = <&gpio 17 GPIO_ACTIVE_LOW>;
> + };
> +
> + signal0 {
> + label = "green:rssilow";
> + gpios = <&gpio_ext 2 GPIO_ACTIVE_LOW>;
> + };
> +
> + signal1 {
> + label = "green:rssimediumlow";
> + gpios = <&gpio_ext 3 GPIO_ACTIVE_LOW>;
> + };
> +
> + signal2 {
> + label = "green:rssimedium";
> + gpios = <&gpio_ext 4 GPIO_ACTIVE_LOW>;
> + };
> +
> + signal3 {
> + label = "green:rssimediumhigh";
> + gpios = <&gpio_ext 5 GPIO_ACTIVE_LOW>;
> + };
> +
> + signal4 {
> + label = "green:rssihigh";
> + gpios = <&gpio_ext 6 GPIO_ACTIVE_LOW>;
> + };
> +
> + };
> +
> + gpio-export {
> + compatible = "gpio-export";
> +
> + modem_power {
> + gpio-export,name = "modem_power";
> + gpio-export,output = <0>;
> + gpios = <&gpio 13 GPIO_ACTIVE_HIGH>;
> + };
> +
> + poe_out {
> + gpio-export,name = "poe_out";
> + gpio-export,output = <0>;
> + gpios = <&gpio 14 GPIO_ACTIVE_HIGH>;
> + };
> +
> + poe_status {
> + gpio-export,name = "poe_status";
> + gpio-export,input;
> + gpios = <&gpio 12 GPIO_ACTIVE_HIGH>;
> + };
> +
> + sim_select {
> + gpio-export,name = "sim_select";
> + gpio-export,output = <0>;
> + gpios = <&gpio_ext 7 GPIO_ACTIVE_HIGH>;
> + };
> +
> + modem_reset {
> + gpio-export,name = "modem_reset";
> + gpio-export,output = <0>;
> + gpios = <&gpio_ext 0 GPIO_ACTIVE_HIGH>;
> + };
> +
> + modem_rfkill {
> + gpio-export,name = "modem_rfkill";
> + gpio-export,output = <0>;
> + gpios = <&gpio_ext 1 GPIO_ACTIVE_HIGH>;
> + };
> +
> + };
> +
> + keys {
> + compatible = "gpio-keys";
> +
> + mode {
> + label = "MODE button";
> + linux,code = <KEY_RFKILL>;
> + gpios = <&gpio 3 GPIO_ACTIVE_LOW>;
> + debounce-interval = <60>;
> + };
> + };
> +};
> +
> +
> +&spi {
> + status = "okay";
> + num-cs = <2>;
> + cs-gpios = <0>, <0>;
> +
> + pinctrl-names = "default";
> + pinctrl-0 = <&pmx_spi_ext>;
> +
> + gpio_ext: gpio_ext at 1 {
> + compatible = "fairchild,74hc595";
> + reg = <1>;
> + gpio-controller;
> + #gpio-cells = <2>;
> + registers-number = <1>;
> + spi-max-frequency = <10000000>;
> + };
> +};
> +
> +&pinmux {
> + pmx_spi_ext: spi_ext {
> + pinctrl-single,bits = <0x08 0x0a000000 0xff000000>; // Route
> SPI_CS1 to GPIO 11 for 74HC595.
> + };
> +
> + pmx_gpios: pmx_gpios {
> + pinctrl-single,bits = <0x00 0x00000000 0x00ff00ff>, // port green
> leds normal GPIO
> + <0x08 0x00001600 0x0000ff00>, // 10 is serial out -- will make eth1
> yellow light blink
> + <0x10 0x00000000 0x0000ff00>; // i7 normal mode for LED
> + };
> +};
> +
> +&gpio {
> + pinctrl-names = "default";
> + pinctrl-0 = <&pmx_gpios>;
> +};
> +
> +&usb0 {
> + #address-cells = <1>;
> + #size-cells = <0>;
> + status = "okay";
> +
> + hub_port: port at 1 {
> + reg = <1>;
> + #trigger-source-cells = <0>;
> + };
> +};
> +
> +&usb_phy {
> + status = "okay";
> +};
> +
> +ð0 {
> + status = "okay";
> + mtd-mac-address = <&hard_config 0x10>;
> + mtd-mac-address-increment = <1>;
> + phy-handle = <&swphy0>;
> +
> + gmac-config {
> + device = <&gmac>;
> + switch-phy-swap = <1>;
> + };
> +};
> +
> +ð1 {
> + status = "okay";
> + mtd-mac-address = <&hard_config 0x10>;
> +};
--
Sergey
More information about the openwrt-devel
mailing list