ath79: add support for MikroTik RouterBOARD hAP ac lite
authorThibaut VARÈNE <hacks@slashdirt.org>
Mon, 2 May 2022 15:07:45 +0000 (17:07 +0200)
committerDavid Bauer <mail@david-bauer.net>
Sat, 21 May 2022 11:54:02 +0000 (13:54 +0200)
The MikroTik RB952Ui-5ac2nD (sold as hAP ac lite) is an indoor 2.4Ghz
and 5GHz AP/router with a 2 dBi integrated antenna.

See https://mikrotik.com/product/RB952Ui-5ac2nD for more details.

Specifications:
 - SoC: QCA9533
 - RAM: 64MB
 - Storage: 16MB NOR
 - Wireless: QCA9533 802.11b/g/n 2x2 / QCA9887 802.11a/n/ac 2x2
 - Ethernet: AR934X switch, 5x 10/100 ports,
    10-28 V passive PoE in port 1, 500 mA PoE out on port 5
 - 6 user-controllable LEDs:
   - 1x user (green)
   - 5x port status (green)

Flashing:
 TFTP boot initramfs image and then perform sysupgrade. The "Internet"
 port (port number 1) must be used to upload the TFTP image, then
 connect to any other port to access the OpenWRT system.
 Follow common MikroTik procedure as in
 https://openwrt.org/toh/mikrotik/common.

Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
target/linux/ath79/dts/qca9533_mikrotik_routerboard-952ui-5ac2nd.dts [new file with mode: 0644]
target/linux/ath79/dts/qca9533_mikrotik_routerboard-95x.dtsi [new file with mode: 0644]
target/linux/ath79/image/mikrotik.mk
target/linux/ath79/mikrotik/base-files/etc/board.d/01_leds
target/linux/ath79/mikrotik/base-files/etc/board.d/02_network
target/linux/ath79/mikrotik/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom
target/linux/ath79/mikrotik/base-files/etc/hotplug.d/firmware/11-ath10k-caldata

diff --git a/target/linux/ath79/dts/qca9533_mikrotik_routerboard-952ui-5ac2nd.dts b/target/linux/ath79/dts/qca9533_mikrotik_routerboard-952ui-5ac2nd.dts
new file mode 100644 (file)
index 0000000..b32d38a
--- /dev/null
@@ -0,0 +1,18 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+
+#include "qca9533_mikrotik_routerboard-95x.dtsi"
+
+/ {
+       compatible = "mikrotik,routerboard-952ui-5ac2nd", "qca,qca9533";
+       model = "MikroTik RouterBOARD 952Ui-5ac2nD (hAP ac lite)";
+};
+
+&pcie0 {
+       status = "okay";
+
+       wifi@0,0 {
+               compatible = "qcom,ath10k";
+               reg = <0 0 0 0 0>;
+       };
+};
+
diff --git a/target/linux/ath79/dts/qca9533_mikrotik_routerboard-95x.dtsi b/target/linux/ath79/dts/qca9533_mikrotik_routerboard-95x.dtsi
new file mode 100644 (file)
index 0000000..79c9f44
--- /dev/null
@@ -0,0 +1,98 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+
+#include "qca9533_mikrotik_routerboard-16m.dtsi"
+
+/ {
+       aliases {
+               led-boot = &led_user;
+               led-failsafe = &led_user;
+               led-running = &led_user;
+               led-upgrade = &led_user;
+       };
+
+       leds {
+               compatible = "gpio-leds";
+
+               led_user: user {
+                       label = "green:user";
+                       gpios = <&gpio 4 GPIO_ACTIVE_HIGH>;
+               };
+
+               port1 {
+                       label = "green:port1";
+                       gpios = <&gpio_ext 0 GPIO_ACTIVE_LOW>;
+               };
+
+               port2 {
+                       label = "green:port2";
+                       gpios = <&gpio_ext 1 GPIO_ACTIVE_LOW>;
+               };
+
+               port3 {
+                       label = "green:port3";
+                       gpios = <&gpio_ext 2 GPIO_ACTIVE_LOW>;
+               };
+
+               port4 {
+                       label = "green:port4";
+                       gpios = <&gpio_ext 3 GPIO_ACTIVE_LOW>;
+               };
+
+               port5 {
+                       label = "green:port5";
+                       gpios = <&gpio_ext 4 GPIO_ACTIVE_LOW>;
+               };
+
+       };
+
+       gpio-export {
+               compatible = "gpio-export";
+
+               usb_power {
+                       gpio-export,name = "usb-power";
+                       gpio-export,output = <1>;
+                       gpios = <&gpio_ext 5 GPIO_ACTIVE_LOW>;
+               };
+
+               enable_poe_port5 {
+                       gpio-export,name = "enable-poe:port5";
+                       gpio-export,output = <0>;
+                       gpios = <&gpio 14 GPIO_ACTIVE_HIGH>;
+               };
+       };
+};
+
+&spi {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pin_spi_cs1>;
+
+       gpio_ext: gpio_ext@1 {
+               compatible = "fairchild,74hc595";
+               reg = <1>;
+               gpio-controller;
+               #gpio-cells = <2>;
+               registers-number = <1>;
+               spi-max-frequency = <25000000>;
+       };
+};
+
+
+&pinmux {
+       pin_spi_cs1: pinmux_spi_cs1 {
+               pinctrl-single,bits = <0x8 0x0a000000 0xff000000>;
+       };
+};
+
+&eth0 {
+       status = "okay";
+
+       phy-handle = <&swphy4>;
+};
+
+&usb0 {
+       status = "okay";
+};
+
+&usb_phy {
+       status = "okay";
+};
index 30c1761134df8cb502e9c791e4f43d39a164c90e..869c46627835e224c24d59cdb5c32d7b8e67e945 100644 (file)
@@ -38,6 +38,16 @@ define Device/mikrotik_routerboard-922uags-5hpacd
 endef
 TARGET_DEVICES += mikrotik_routerboard-922uags-5hpacd
 
+define Device/mikrotik_routerboard-952ui-5ac2nd
+  $(Device/mikrotik_nor)
+  SOC := qca9533
+  DEVICE_MODEL := RouterBOARD 952Ui-5ac2nD (hAP ac lite)
+  DEVICE_PACKAGES += kmod-ath10k-ct-smallbuffers ath10k-firmware-qca9887-ct
+  IMAGE_SIZE := 16256k
+  SUPPORTED_DEVICES += rb-952ui-5ac2nd
+endef
+TARGET_DEVICES += mikrotik_routerboard-952ui-5ac2nd
+
 define Device/mikrotik_routerboard-962uigs-5hact2hnt
   $(Device/mikrotik_nor)
   SOC := qca9558
index f5b927ea96b3be29bb1fc2c7ec7d2b9d43620dce..baf6d004129ad31339e37d2345769dad21c9cf81 100644 (file)
@@ -6,6 +6,13 @@ board_config_update
 board=$(board_name)
 
 case "$board" in
+mikrotik,routerboard-952ui-5ac2nd)
+       ucidef_set_led_netdev "port1" "port1" "green:port1" "eth1"
+       ucidef_set_led_switch "port2" "port2" "green:port2" "switch0" "0x10"
+       ucidef_set_led_switch "port3" "port3" "green:port3" "switch0" "0x08"
+       ucidef_set_led_switch "port4" "port4" "green:port4" "switch0" "0x04"
+       ucidef_set_led_switch "port5" "port5" "green:port5" "switch0" "0x02"
+       ;;
 mikrotik,routerboard-lhg-2nd|\
 mikrotik,routerboard-mapl-2nd|\
 mikrotik,routerboard-wap-2nd)
index 999ce0dd991d2a44a029b4ba2b22ede505c6f80b..9417e839e4bde390395548357f67c1f9f02b07a2 100644 (file)
@@ -24,6 +24,11 @@ ath79_setup_interfaces()
        mikrotik,routerboard-wapr-2nd)
                ucidef_set_interface_lan "eth0"
                ;;
+       mikrotik,routerboard-952ui-5ac2nd)
+               ucidef_set_interface_wan "eth1"
+               ucidef_add_switch "switch0" \
+                       "0@eth0" "1:lan:4" "2:lan:3" "3:lan:2" "4:lan:1"
+               ;;
        mikrotik,routerboard-962uigs-5hact2hnt)
                ucidef_add_switch "switch0" \
                        "0@eth0" "2:lan" "3:lan" "4:lan" "5:lan" "1:wan"
index 800ce11d5126a9801632b0fe869a978fda4bc9de..b5651f15e89d342008e936d9ef26b102893bfe92 100644 (file)
@@ -35,6 +35,9 @@ case "$FIRMWARE" in
        mikrotik,routerboard-wap-g-5hact2hnd)
                caldata_mikrotik_ath9k 0x1000 0x440 $(macaddr_add "$mac_base" 2)
                ;;
+       mikrotik,routerboard-952ui-5ac2nd)
+               caldata_mikrotik_ath9k 0x1000 0x440 $(macaddr_add "$mac_base" 6)
+               ;;
        mikrotik,routerboard-962uigs-5hact2hnt)
                caldata_mikrotik_ath9k 0x1000 0x440 $(macaddr_add "$mac_base" 7)
                ;;
index 77cd47f6a0ec0925e313825f6d8fee36ada3e21a..32fc4a6f6d9ff087e6d8ec9b9a5b8e9268f58436 100644 (file)
@@ -12,6 +12,7 @@ case "$FIRMWARE" in
 "ath10k/cal-pci-0000:00:00.0.bin")
        case $board in
        mikrotik,routerboard-921gs-5hpacd-15s|\
+       mikrotik,routerboard-952ui-5ac2nd|\
        mikrotik,routerboard-962uigs-5hact2hnt|\
        mikrotik,routerboard-wap-g-5hact2hnd)
                caldata_sysfsload_from_file $wlan_data 0x5000 0x844