Signed-off-by: Daniel Dickinson <[email protected]>
---
 .../base-files/etc/defconfig/unifi-outdoor/network |   15 +++++
 target/linux/ar71xx/base-files/lib/ar71xx.sh       |    3 +
 .../ar71xx/base-files/lib/upgrade/platform.sh      |    3 +-
 target/linux/ar71xx/generic/profiles/ubnt.mk       |   11 ++++
 target/linux/ar71xx/image/Makefile                 |    3 +-
 .../660-MIPS-ath79-ubnt-xm-add-unifi-outdoor.patch |   68 ++++++++++++++++++++
 .../660-MIPS-ath79-ubnt-xm-add-unifi-outdoor.patch |   68 ++++++++++++++++++++
 7 files changed, 169 insertions(+), 2 deletions(-)
 create mode 100644 
target/linux/ar71xx/base-files/etc/defconfig/unifi-outdoor/network
 create mode 100644 
target/linux/ar71xx/patches-3.3/660-MIPS-ath79-ubnt-xm-add-unifi-outdoor.patch
 create mode 100644 
target/linux/ar71xx/patches-3.6/660-MIPS-ath79-ubnt-xm-add-unifi-outdoor.patch

diff --git a/target/linux/ar71xx/base-files/etc/defconfig/unifi-outdoor/network 
b/target/linux/ar71xx/base-files/etc/defconfig/unifi-outdoor/network
new file mode 100644
index 0000000..c8f18c2
--- /dev/null
+++ b/target/linux/ar71xx/base-files/etc/defconfig/unifi-outdoor/network
@@ -0,0 +1,15 @@
+# Copyright (C) 2006 OpenWrt.org
+
+config interface loopback
+       option ifname   lo
+       option proto    static
+       option ipaddr   127.0.0.1
+       option netmask  255.0.0.0
+
+config interface lan
+       list ifname     eth0
+       list ifname     eth1
+       option type     bridge
+       option proto    static
+       option ipaddr   192.168.1.1
+       option netmask  255.255.255.0
diff --git a/target/linux/ar71xx/base-files/lib/ar71xx.sh 
b/target/linux/ar71xx/base-files/lib/ar71xx.sh
index 430ef8c..7ff43b8 100755
--- a/target/linux/ar71xx/base-files/lib/ar71xx.sh
+++ b/target/linux/ar71xx/base-files/lib/ar71xx.sh
@@ -387,6 +387,9 @@ ar71xx_board_detect() {
        *WLAE-AG300N)
                name="wlae-ag300n"
                ;;
+       *"UniFiAP Outdoor")
+               name="unifi-outdoor"
+               ;;
        *WP543)
                name="wp543"
                ;;
diff --git a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh 
b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
index 81535ce..5946cf6 100755
--- a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
+++ b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
@@ -126,7 +126,8 @@ platform_check_image() {
        whr-hp-gn | \
        wlae-ag300n | \
        nbg460n_550n_550nh | \
-       unifi )
+       unifi | \
+       unifi-outdoor )
                [ "$magic" != "2705" ] && {
                        echo "Invalid image type."
                        return 1
diff --git a/target/linux/ar71xx/generic/profiles/ubnt.mk 
b/target/linux/ar71xx/generic/profiles/ubnt.mk
index 668171b..dc26956 100644
--- a/target/linux/ar71xx/generic/profiles/ubnt.mk
+++ b/target/linux/ar71xx/generic/profiles/ubnt.mk
@@ -38,6 +38,17 @@ endef
 
 $(eval $(call Profile,UBNTUNIFI))
 
+define Profile/UBNTUNIFIOUTDOOR
+       NAME:=Ubiquiti UniFiAP Outdoor
+       PACKAGES:=
+endef
+
+define Profile/UBNTUNIFIOUTDOOR/Description
+       Package set optimized for the Ubiquiti UniFiAP Outdoor.
+endef
+
+$(eval $(call Profile,UBNTUNIFIOUTDOOR))
+
 define Profile/UBNT
        NAME:=Ubiquiti Products
        PACKAGES:=kmod-usb-core kmod-usb-ohci kmod-usb2
diff --git a/target/linux/ar71xx/image/Makefile 
b/target/linux/ar71xx/image/Makefile
index 2bf66cb..9678d66 100644
--- a/target/linux/ar71xx/image/Makefile
+++ b/target/linux/ar71xx/image/Makefile
@@ -885,6 +885,7 @@ $(eval $(call 
SingleProfile,UBNTXM,$(fs_64k),UBNTBULLETM,ubnt-bullet-m,UBNT-BM,t
 $(eval $(call 
SingleProfile,UBNTXM,$(fs_64k),UBNTROCKETM,ubnt-rocket-m,UBNT-RM,ttyS0,115200,XM,XM,ar7240))
 $(eval $(call 
SingleProfile,UBNTXM,$(fs_64k),UBNTNANOM,ubnt-nano-m,UBNT-NM,ttyS0,115200,XM,XM,ar7240))
 $(eval $(call 
SingleProfile,UBNTXM,$(fs_64k),UBNTUNIFI,ubnt-unifi,UBNT-UF,ttyS0,115200,XM,XM,ar7240))
+$(eval $(call 
SingleProfile,UBNTXM,$(fs_64k),UBNTUNIFIOUTDOOR,ubnt-unifi-outdoor,UBNT-U20,ttyS0,115200,XM,XM,ar7240))
 
 $(eval $(call 
SingleProfile,WHRHPG300N,$(fs_64k),WHRG301N,whr-g301n,WHR-G301N,ttyS0,115200,$$(whrhpg300n_mtdlayout),WHR-G301N))
 $(eval $(call 
SingleProfile,WHRHPG300N,$(fs_64k),WHRHPG300N,whr-hp-g300n,WHR-HP-G300N,ttyS0,115200,$$(whrhpg300n_mtdlayout),WHR-HP-G300N))
@@ -915,7 +916,7 @@ $(eval $(call MultiProfile,TLWR741,TLWR741NV1 TLWR741NV2 
TLWR741NV4))
 $(eval $(call MultiProfile,TLWR841,TLWR841NV15 TLWR841NV3 TLWR841NV5 
TLWR841NV7 TLWR841NV8))
 $(eval $(call MultiProfile,TLWR941,TLWR941NV2 TLWR941NV3 TLWR941NV4))
 $(eval $(call MultiProfile,TLWDR4300,TLWDR3600V1 TLWDR4300V1 TLWDR4310V1))
-$(eval $(call MultiProfile,UBNT,UBNTAIRROUTER UBNTRS UBNTRSPRO UBNTLSSR71 
UBNTBULLETM UBNTROCKETM UBNTNANOM UBNTUNIFI))
+$(eval $(call MultiProfile,UBNT,UBNTAIRROUTER UBNTRS UBNTRSPRO UBNTLSSR71 
UBNTBULLETM UBNTROCKETM UBNTNANOM UBNTUNIFI UBNTUNIFIOUTDOOR))
 $(eval $(call MultiProfile,WNDR3700,WNDR3700V1 WNDR3700V2 WNDR3800 WNDRMAC 
WNDRMACV2))
 $(eval $(call MultiProfile,WP543,WP543_2M WP543_4M WP543_8M WP543_16M))
 $(eval $(call MultiProfile,WPE72,WPE72_4M WPE72_8M WPE72_16M))
diff --git 
a/target/linux/ar71xx/patches-3.3/660-MIPS-ath79-ubnt-xm-add-unifi-outdoor.patch
 
b/target/linux/ar71xx/patches-3.3/660-MIPS-ath79-ubnt-xm-add-unifi-outdoor.patch
new file mode 100644
index 0000000..a2b462c
--- /dev/null
+++ 
b/target/linux/ar71xx/patches-3.3/660-MIPS-ath79-ubnt-xm-add-unifi-outdoor.patch
@@ -0,0 +1,68 @@
+Index: linux-3.3.8/arch/mips/ath79/mach-ubnt-xm.c
+===================================================================
+--- linux-3.3.8.orig/arch/mips/ath79/mach-ubnt-xm.c    2012-11-01 
19:26:43.649596509 -0400
++++ linux-3.3.8/arch/mips/ath79/mach-ubnt-xm.c 2012-11-01 19:26:46.717535358 
-0400
+@@ -170,6 +170,19 @@
+       }
+ };
+ 
++static struct gpio_led ubnt_unifi_outdoor_leds_gpio[] __initdata = {
++      {
++              .name           = "ubnt:orange:front",
++              .gpio           = 1,
++              .active_low     = 0,
++      }, {
++              .name           = "ubnt:green:front",
++              .gpio           = 0,
++              .active_low     = 0,
++      }
++};
++
++
+ static void __init ubnt_unifi_setup(void)
+ {
+       u8 *mac = (u8 *) KSEG1ADDR(0x1fff0000);
+@@ -194,3 +207,31 @@
+ 
+ MIPS_MACHINE(ATH79_MACH_UBNT_UNIFI, "UBNT-UF", "Ubiquiti UniFi",
+            ubnt_unifi_setup);
++
++
++#define UBNT_UNIFIOD_PRI_PHYMASK      BIT(4)
++#define UBNT_UNIFIOD_2ND_PHYMASK      (BIT(0) | BIT(1) | BIT(2) | BIT(3))
++
++static void __init ubnt_unifi_outdoor_setup(void)
++{
++      u8 *mac1 = (u8 *) KSEG1ADDR(0x1fff0000);
++      u8 *mac2 = (u8 *) KSEG1ADDR(0x1fff0000 + ETH_ALEN);
++      u8 *ee = (u8 *) KSEG1ADDR(0x1fff1000);
++
++      ath79_register_m25p80(NULL);
++
++      ath79_register_mdio(0, ~(UBNT_UNIFIOD_PRI_PHYMASK | 
UBNT_UNIFIOD_2ND_PHYMASK));
++
++      ath79_init_mac(ath79_eth0_data.mac_addr, mac1, 0);
++      ath79_init_mac(ath79_eth1_data.mac_addr, mac2, 0);
++      ath79_register_eth(0);
++      ath79_register_eth(1);
++
++      ap91_pci_init(ee, NULL);
++
++      ath79_register_leds_gpio(-1, ARRAY_SIZE(ubnt_unifi_outdoor_leds_gpio),
++                               ubnt_unifi_outdoor_leds_gpio);
++}
++
++MIPS_MACHINE(ATH79_MACH_UBNT_UNIFI_OUTDOOR, "UBNT-U20", "Ubiquiti UniFiAP 
Outdoor",
++           ubnt_unifi_outdoor_setup);
+Index: linux-3.3.8/arch/mips/ath79/machtypes.h
+===================================================================
+--- linux-3.3.8.orig/arch/mips/ath79/machtypes.h       2012-11-01 
19:26:43.677595951 -0400
++++ linux-3.3.8/arch/mips/ath79/machtypes.h    2012-11-01 19:26:46.717535358 
-0400
+@@ -96,6 +96,7 @@
+       ATH79_MACH_UBNT_RSPRO,          /* Ubiquiti RouterStation Pro */
+       ATH79_MACH_UBNT_RS,             /* Ubiquiti RouterStation */
+       ATH79_MACH_UBNT_UNIFI,          /* Ubiquiti Unifi */
++      ATH79_MACH_UBNT_UNIFI_OUTDOOR,  /* Ubiquiti UnifiAP Outdoor */
+       ATH79_MACH_UBNT_XM,             /* Ubiquiti Networks XM board rev 1.0 */
+       ATH79_MACH_WHR_G301N,           /* Buffalo WHR-G301N */
+       ATH79_MACH_WHR_HP_G300N,        /* Buffalo WHR-HP-G300N */
diff --git 
a/target/linux/ar71xx/patches-3.6/660-MIPS-ath79-ubnt-xm-add-unifi-outdoor.patch
 
b/target/linux/ar71xx/patches-3.6/660-MIPS-ath79-ubnt-xm-add-unifi-outdoor.patch
new file mode 100644
index 0000000..a2b462c
--- /dev/null
+++ 
b/target/linux/ar71xx/patches-3.6/660-MIPS-ath79-ubnt-xm-add-unifi-outdoor.patch
@@ -0,0 +1,68 @@
+Index: linux-3.3.8/arch/mips/ath79/mach-ubnt-xm.c
+===================================================================
+--- linux-3.3.8.orig/arch/mips/ath79/mach-ubnt-xm.c    2012-11-01 
19:26:43.649596509 -0400
++++ linux-3.3.8/arch/mips/ath79/mach-ubnt-xm.c 2012-11-01 19:26:46.717535358 
-0400
+@@ -170,6 +170,19 @@
+       }
+ };
+ 
++static struct gpio_led ubnt_unifi_outdoor_leds_gpio[] __initdata = {
++      {
++              .name           = "ubnt:orange:front",
++              .gpio           = 1,
++              .active_low     = 0,
++      }, {
++              .name           = "ubnt:green:front",
++              .gpio           = 0,
++              .active_low     = 0,
++      }
++};
++
++
+ static void __init ubnt_unifi_setup(void)
+ {
+       u8 *mac = (u8 *) KSEG1ADDR(0x1fff0000);
+@@ -194,3 +207,31 @@
+ 
+ MIPS_MACHINE(ATH79_MACH_UBNT_UNIFI, "UBNT-UF", "Ubiquiti UniFi",
+            ubnt_unifi_setup);
++
++
++#define UBNT_UNIFIOD_PRI_PHYMASK      BIT(4)
++#define UBNT_UNIFIOD_2ND_PHYMASK      (BIT(0) | BIT(1) | BIT(2) | BIT(3))
++
++static void __init ubnt_unifi_outdoor_setup(void)
++{
++      u8 *mac1 = (u8 *) KSEG1ADDR(0x1fff0000);
++      u8 *mac2 = (u8 *) KSEG1ADDR(0x1fff0000 + ETH_ALEN);
++      u8 *ee = (u8 *) KSEG1ADDR(0x1fff1000);
++
++      ath79_register_m25p80(NULL);
++
++      ath79_register_mdio(0, ~(UBNT_UNIFIOD_PRI_PHYMASK | 
UBNT_UNIFIOD_2ND_PHYMASK));
++
++      ath79_init_mac(ath79_eth0_data.mac_addr, mac1, 0);
++      ath79_init_mac(ath79_eth1_data.mac_addr, mac2, 0);
++      ath79_register_eth(0);
++      ath79_register_eth(1);
++
++      ap91_pci_init(ee, NULL);
++
++      ath79_register_leds_gpio(-1, ARRAY_SIZE(ubnt_unifi_outdoor_leds_gpio),
++                               ubnt_unifi_outdoor_leds_gpio);
++}
++
++MIPS_MACHINE(ATH79_MACH_UBNT_UNIFI_OUTDOOR, "UBNT-U20", "Ubiquiti UniFiAP 
Outdoor",
++           ubnt_unifi_outdoor_setup);
+Index: linux-3.3.8/arch/mips/ath79/machtypes.h
+===================================================================
+--- linux-3.3.8.orig/arch/mips/ath79/machtypes.h       2012-11-01 
19:26:43.677595951 -0400
++++ linux-3.3.8/arch/mips/ath79/machtypes.h    2012-11-01 19:26:46.717535358 
-0400
+@@ -96,6 +96,7 @@
+       ATH79_MACH_UBNT_RSPRO,          /* Ubiquiti RouterStation Pro */
+       ATH79_MACH_UBNT_RS,             /* Ubiquiti RouterStation */
+       ATH79_MACH_UBNT_UNIFI,          /* Ubiquiti Unifi */
++      ATH79_MACH_UBNT_UNIFI_OUTDOOR,  /* Ubiquiti UnifiAP Outdoor */
+       ATH79_MACH_UBNT_XM,             /* Ubiquiti Networks XM board rev 1.0 */
+       ATH79_MACH_WHR_G301N,           /* Buffalo WHR-G301N */
+       ATH79_MACH_WHR_HP_G300N,        /* Buffalo WHR-HP-G300N */
-- 
1.7.9.5

_______________________________________________
openwrt-devel mailing list
[email protected]
https://lists.openwrt.org/mailman/listinfo/openwrt-devel

Reply via email to