aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--target/linux/ath79/dts/ar9344_ubnt_unifi-ap-pro.dts158
-rwxr-xr-xtarget/linux/ath79/generic/base-files/etc/board.d/02_network4
-rw-r--r--target/linux/ath79/generic/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom1
-rw-r--r--target/linux/ath79/image/generic-ubnt.mk25
4 files changed, 188 insertions, 0 deletions
diff --git a/target/linux/ath79/dts/ar9344_ubnt_unifi-ap-pro.dts b/target/linux/ath79/dts/ar9344_ubnt_unifi-ap-pro.dts
new file mode 100644
index 0000000000..f8ffb6f0b9
--- /dev/null
+++ b/target/linux/ath79/dts/ar9344_ubnt_unifi-ap-pro.dts
@@ -0,0 +1,158 @@
+// 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 "ar9344.dtsi"
+
+/ {
+ model = "Ubiquiti UniFi AP Pro";
+ compatible = "ubnt,unifi-ap-pro";
+
+ aliases {
+ led-boot = &led_white;
+ led-failsafe = &led_white;
+ led-running = &led_blue;
+ led-upgrade = &led_blue;
+ label-mac-device = &eth0;
+ };
+
+ leds {
+ compatible = "gpio-leds";
+
+ led_white: led-white {
+ label = "ubnt:white:dome";
+ gpios = <&gpio 12 GPIO_ACTIVE_HIGH>;
+ };
+
+ led_blue: led-blue {
+ label = "ubnt:blue:dome";
+ gpios = <&gpio 13 GPIO_ACTIVE_HIGH>;
+ };
+ };
+
+ keys {
+ compatible = "gpio-keys";
+
+ reset {
+ linux,code = <KEY_RESTART>;
+ gpios = <&gpio 17 GPIO_ACTIVE_LOW>;
+ debounce-interval = <60>;
+ };
+ };
+};
+
+&ref {
+ clock-frequency = <40000000>;
+};
+
+&uart {
+ status = "okay";
+};
+
+&spi {
+ status = "okay";
+
+ num-cs = <1>;
+
+ flash@0 {
+ compatible = "jedec,spi-nor";
+ reg = <0>;
+ spi-max-frequency = <50000000>;
+
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ uboot: partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x40000>;
+ read-only;
+ };
+
+ partition@40000 {
+ label = "u-boot-env";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0xf60000>;
+
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "kernel";
+ reg = <0x0 0x300000>;
+ /* Can be resized w/o issues.
+ * U-Boot can load kernel from the
+ * entirety of the "firmware" partition space.
+ */
+ };
+
+ partition@300000 {
+ label = "rootfs";
+ reg = <0x300000 0xc60000>;
+ };
+ };
+
+ partition@fb0000 {
+ label = "cfg";
+ reg = <0xfb0000 0x40000>;
+ read-only;
+ };
+
+ art: partition@ff0000 {
+ label = "art";
+ reg = <0xff0000 0x10000>;
+ read-only;
+ };
+ };
+ };
+};
+
+&pcie {
+ status = "okay";
+
+ wifi@0,0 {
+ compatible = "pci168c,0033";
+ reg = <0 0 0 0 0>;
+ qca,no-eeprom;
+ };
+};
+
+&wmac {
+ status = "okay";
+
+ mtd-cal-data = <&art 0x1000>;
+};
+
+&mdio0 {
+ status = "okay";
+
+ phy0: ethernet-phy@0 {
+ reg = <0>;
+
+ qca,ar8327-initvals = <
+ 0x4 0x7600000 /* PORT0 PAD MODE CTRL */
+ 0x10 0x80000080 /* POWER_ON_STRAP */
+ 0x7c 0x7e /* PORT0_STATUS */
+ >;
+ };
+};
+
+&eth0 {
+ status = "okay";
+
+ pll-data = <0x6000000 0x101 0x1616>;
+
+ mtd-mac-address = <&art 0x0>;
+
+ phy-mode = "rgmii";
+ phy-handle = <&phy0>;
+};
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 40ea14fa9b..518ca6f91a 100755
--- a/target/linux/ath79/generic/base-files/etc/board.d/02_network
+++ b/target/linux/ath79/generic/base-files/etc/board.d/02_network
@@ -371,6 +371,10 @@ ath79_setup_interfaces()
ucidef_add_switch "switch0" \
"0@eth0" "2:lan:1" "3:lan:2"
;;
+ ubnt,unifi-ap-pro)
+ ucidef_add_switch "switch0" \
+ "0@eth0" "1:lan" "2:lan"
+ ;;
zbtlink,zbt-wd323|\
xiaomi,mi-router-4q)
ucidef_set_interface_wan "eth1"
diff --git a/target/linux/ath79/generic/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom b/target/linux/ath79/generic/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom
index 3983b1f8c0..88d43e25c4 100644
--- a/target/linux/ath79/generic/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom
+++ b/target/linux/ath79/generic/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom
@@ -98,6 +98,7 @@ case "$FIRMWARE" in
tplink,tl-wdr4300-v1-il|\
tplink,tl-wdr4310-v1|\
tplink,tl-wdr4900-v2|\
+ ubnt,unifi-ap-pro|\
winchannel,wb2000)
caldata_extract "art" 0x5000 0x440
;;
diff --git a/target/linux/ath79/image/generic-ubnt.mk b/target/linux/ath79/image/generic-ubnt.mk
index b945183776..6939edd25d 100644
--- a/target/linux/ath79/image/generic-ubnt.mk
+++ b/target/linux/ath79/image/generic-ubnt.mk
@@ -13,6 +13,14 @@ define Build/mkubntimage
-k $(IMAGE_KERNEL) -r $@ -o $@
endef
+define Build/mkubntimage2
+ -$(STAGING_DIR_HOST)/bin/mkfwimage2 -f 0x9f000000 \
+ -v $(UBNT_TYPE).$(UBNT_CHIP).v6.0.0-$(VERSION_DIST)-$(REVISION) \
+ -p jffs2:0x50000:0xf60000:0:0:$@ \
+ -o $@.new
+ @mv $@.new $@
+endef
+
# all UBNT XM/WA devices expect the kernel image to have 1024k while flash, when
# booting the image, the size doesn't matter.
define Build/mkubntimage-split
@@ -369,3 +377,20 @@ define Device/ubnt_unifiac-pro
SUPPORTED_DEVICES += unifiac-pro
endef
TARGET_DEVICES += ubnt_unifiac-pro
+
+define Device/ubnt_unifi-ap-pro
+ SOC := ar9344
+ DEVICE_VENDOR := Ubiquiti
+ DEVICE_MODEL := UniFi AP Pro
+ UBNT_TYPE := BZ
+ UBNT_CHIP := ar934x
+ KERNEL_SIZE := 3072k
+ IMAGE_SIZE := 15744k
+ KERNEL := kernel-bin | append-dtb | lzma | uImage lzma | jffs2 kernel0
+ IMAGES := sysupgrade.bin factory.bin
+ IMAGE/sysupgrade.bin := append-kernel | pad-to $$$$(KERNEL_SIZE) | append-rootfs |\
+ pad-rootfs | append-metadata | check-size
+ IMAGE/factory.bin := $$(IMAGE/sysupgrade.bin) | mkubntimage2
+ SUPPORTED_DEVICES += uap-pro
+endef
+TARGET_DEVICES += ubnt_unifi-ap-pro