--- /dev/null
+// 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 = ð0;
+ };
+
+ 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 */
+ >;
+ };
+};
+
+ð0 {
+ status = "okay";
+
+ pll-data = <0x6000000 0x101 0x1616>;
+
+ mtd-mac-address = <&art 0x0>;
+
+ phy-mode = "rgmii";
+ phy-handle = <&phy0>;
+};
-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
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