[openwrt/openwrt] ath79: add support for UniFi UK-Ultra

LEDE Commits lede-commits at lists.infradead.org
Tue Jan 9 19:59:51 PST 2024


blocktrron pushed a commit to openwrt/openwrt.git, branch openwrt-23.05:
https://git.openwrt.org/5ad05681f2de00c8c6d6449df2b958b0838dbc1a

commit 5ad05681f2de00c8c6d6449df2b958b0838dbc1a
Author: David Bauer <mail at david-bauer.net>
AuthorDate: Fri Jan 5 17:18:09 2024 +0100

    ath79: add support for UniFi UK-Ultra
    
    Hardware
    --------
    CPU:   Qualcomm Atheros QCA9563
    RAM:   128M DDR2
    FLASH: 16MB SPI-NOR
    WiFi:  Qualcomm Atheros QCA9563 2x2:2 802.11n 2.4GHz
           Qualcomm Atheros QCA9880 2x2:2 802.11ac 5GHz
    
    Antennas
    --------
    The device features internal antennas as well as external antenna
    connectors. By default, the internal antennas are used.
    
    Two GPIOs are exported by name, which can be used to control the
    antenna-path mux. Writing a logical 0 enables the external antenna
    connectors.
    
    Installation
    ------------
    1. Download the OpenWrt sysupgrade image to the device. You can use scp
       for this task. The default username and password are "ubnt" and the
       device is reachable at 192.168.1.20.
    
       $ scp -O openwrt-sysupgrade.bin ubnt at 192.168.1.20:/tmp/firmware.bin
    
    2. Connect to the device using SSH.
    
       $ ssh ubnt at 192.168.1.20
    
    3. Disable the write-protect
    
       $ echo "5edfacbf" > /proc/ubnthal/.uf
    
    4. Verify kernel0 and kernel1 match mtd2 and mtd3
    
       $ cat /proc/mtd
    
    5. Write the sysupgrade image to kernel0 and kernel1
    
       $ dd if=/tmp/firmware.bin of=/dev/mtdblock2
       $ dd if=/tmp/firmware.bin of=/dev/mtdblock3
    
    6. Write the bootselect flag to boot from kernel0
    
       $ dd if=/dev/zero bs=1 count=1 of=/dev/mtd4
    
    7. Reboot the device
    
       $ reboot
    
    Signed-off-by: David Bauer <mail at david-bauer.net>
    (cherry picked from commit bf94e0a38389b2ce5d33be9c97d104d36dd5ebd6)
---
 target/linux/ath79/dts/qca9563_ubnt_uk-ultra.dts   | 35 ++++++++++++++++++++++
 target/linux/ath79/dts/qca9563_ubnt_unifiac.dtsi   |  2 +-
 .../ath79/generic/base-files/etc/board.d/01_leds   |  7 +++++
 .../generic/base-files/etc/board.d/02_network      |  1 +
 .../base-files/etc/board.d/03_gpio_switches        |  4 +++
 .../etc/hotplug.d/firmware/11-ath10k-caldata       |  1 +
 target/linux/ath79/image/generic-ubnt.mk           |  7 +++++
 7 files changed, 56 insertions(+), 1 deletion(-)

diff --git a/target/linux/ath79/dts/qca9563_ubnt_uk-ultra.dts b/target/linux/ath79/dts/qca9563_ubnt_uk-ultra.dts
new file mode 100644
index 0000000000..1ba635117e
--- /dev/null
+++ b/target/linux/ath79/dts/qca9563_ubnt_uk-ultra.dts
@@ -0,0 +1,35 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+
+#include "qca9563_ubnt_unifiac-lite.dtsi"
+
+/ {
+	compatible = "ubnt,uk-ultra", "qca,qca9563";
+	model = "Ubiquiti UniFi Swiss Army Knife Ultra";
+};
+
+&leds {
+	led-rssi0 {
+		label = "white:rssi0";
+		gpios = <&gpio 21 GPIO_ACTIVE_HIGH>;
+	};
+
+	led-rssi1 {
+		label = "white:rssi1";
+		gpios = <&gpio 20 GPIO_ACTIVE_HIGH>;
+	};
+
+	led-rssi2 {
+		label = "white:rssi2";
+		gpios = <&gpio 15 GPIO_ACTIVE_HIGH>;
+	};
+
+	led-rssi3 {
+		label = "white:rssi3";
+		gpios = <&gpio 1 GPIO_ACTIVE_HIGH>;
+	};
+};
+
+/**
+ * Antenna selection on GPIO5 and GPIO6
+ * High = Internal ; Low = External
+ */
diff --git a/target/linux/ath79/dts/qca9563_ubnt_unifiac.dtsi b/target/linux/ath79/dts/qca9563_ubnt_unifiac.dtsi
index 6704ec983b..14fbee8ab3 100644
--- a/target/linux/ath79/dts/qca9563_ubnt_unifiac.dtsi
+++ b/target/linux/ath79/dts/qca9563_ubnt_unifiac.dtsi
@@ -13,7 +13,7 @@
 		led-upgrade = &led_blue;
 	};
 
-	leds {
+	leds: leds {
 		compatible = "gpio-leds";
 
 		led_white: led_white {
diff --git a/target/linux/ath79/generic/base-files/etc/board.d/01_leds b/target/linux/ath79/generic/base-files/etc/board.d/01_leds
index b5cc4abf65..aaa4ed94d5 100644
--- a/target/linux/ath79/generic/base-files/etc/board.d/01_leds
+++ b/target/linux/ath79/generic/base-files/etc/board.d/01_leds
@@ -494,6 +494,13 @@ ubnt,rocket-m)
 	ucidef_set_led_rssi "rssimediumhigh" "RSSIMEDIUMHIGH" "green:link3" "wlan0" "51" "100"
 	ucidef_set_led_rssi "rssihigh" "RSSIHIGH" "green:link4" "wlan0" "76" "100"
 	;;
+ubnt,uk-ultra)
+	ucidef_set_rssimon "wlan0" "200000" "1"
+	ucidef_set_led_rssi "rssilow" "RSSILOW" "white:rssi0" "wlan0" "1" "100"
+	ucidef_set_led_rssi "rssimediumlow" "RSSIMEDIUMLOW" "white:rssi1" "wlan0" "26" "100"
+	ucidef_set_led_rssi "rssimediumhigh" "RSSIMEDIUMHIGH" "white:rssi2" "wlan0" "51" "100"
+	ucidef_set_led_rssi "rssihigh" "RSSIHIGH" "white:rssi3" "wlan0" "76" "100"
+	;;
 wallys,dr531)
 	ucidef_set_led_netdev "lan" "LAN" "green:lan" "eth0"
 	ucidef_set_led_switch "wan" "WAN" "green:wan" "switch0" "0x2"
diff --git a/target/linux/ath79/generic/base-files/etc/board.d/02_network b/target/linux/ath79/generic/base-files/etc/board.d/02_network
index 0d7396a04d..ca35bd3223 100644
--- a/target/linux/ath79/generic/base-files/etc/board.d/02_network
+++ b/target/linux/ath79/generic/base-files/etc/board.d/02_network
@@ -113,6 +113,7 @@ ath79_setup_interfaces()
 	ubnt,powerbridge-m|\
 	ubnt,rocket-5ac-lite|\
 	ubnt,rocket-m|\
+	ubnt,uk-ultra|\
 	ubnt,unifiac-lite|\
 	ubnt,unifiac-lr|\
 	ubnt,unifiac-mesh|\
diff --git a/target/linux/ath79/generic/base-files/etc/board.d/03_gpio_switches b/target/linux/ath79/generic/base-files/etc/board.d/03_gpio_switches
index 899a8ba97e..279f518409 100644
--- a/target/linux/ath79/generic/base-files/etc/board.d/03_gpio_switches
+++ b/target/linux/ath79/generic/base-files/etc/board.d/03_gpio_switches
@@ -92,6 +92,10 @@ ubnt,nanostation-m)
 ubnt,nanostation-m-xw)
 	ucidef_add_gpio_switch "poe_passthrough" "PoE Passthrough" "2"
 	;;
+ubnt,uk-ultra)
+	ucidef_add_gpio_switch "ant0_internal" "ANT0 Internal" "5" "1"
+	ucidef_add_gpio_switch "ant1_internal" "ANT1 Internal" "6" "1"
+	;;
 zbtlink,zbt-wd323)
 	ucidef_add_gpio_switch "io0" "IO#0" "0"
 	ucidef_add_gpio_switch "io1" "IO#1" "1"
diff --git a/target/linux/ath79/generic/base-files/etc/hotplug.d/firmware/11-ath10k-caldata b/target/linux/ath79/generic/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
index f0a3755de9..cdb1b2bd9d 100644
--- a/target/linux/ath79/generic/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
+++ b/target/linux/ath79/generic/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
@@ -36,6 +36,7 @@ case "$FIRMWARE" in
 	sophos,ap100|\
 	sophos,ap100c|\
 	ubnt,bullet-ac|\
+	ubnt,uk-ultra|\
 	ubnt,unifiac-lite|\
 	ubnt,unifiac-lr|\
 	ubnt,unifiac-mesh|\
diff --git a/target/linux/ath79/image/generic-ubnt.mk b/target/linux/ath79/image/generic-ubnt.mk
index 92b764c389..68cef7d14b 100644
--- a/target/linux/ath79/image/generic-ubnt.mk
+++ b/target/linux/ath79/image/generic-ubnt.mk
@@ -229,6 +229,13 @@ define Device/ubnt_routerstation-pro
 endef
 TARGET_DEVICES += ubnt_routerstation-pro
 
+define Device/ubnt_uk-ultra
+  $(Device/ubnt_unifiac)
+  DEVICE_MODEL := UniFi Swiss Army Knife Ultra
+  DEVICE_PACKAGES += rssileds -swconfig
+endef
+TARGET_DEVICES += ubnt_uk-ultra
+
 define Device/ubnt_unifi-ap
   $(Device/ubnt-bz)
   DEVICE_MODEL := UniFi AP




More information about the lede-commits mailing list