[OpenWrt-Devel] [PATCH] ar71xx: add support for the UniFi AP Outdoor Plus
John Crispin
blogic at openwrt.org
Sun Jan 18 01:54:05 EST 2015
On 30/12/2014 06:01, Matthias Schiffer wrote:
> I had read the mails regarding the issue and I've asked about it
> in #openwrt-devel (but didn't get an answer yet). I didn't try
> changing the channel though as I'm in a very noisy environment
> (WLAN-wise) at the moment, so I can't really do any proper
> testing.
>
> If it's only a GPIO issue, I could look at it, but I don't know
> enough about ath9k to do more complex fixes. Unfortunately, I don't
> have the device anymore, so I can't perform further tests myself.
>
can this wrong / missing GPIO cause permanent damage the SoC/wmac ?
>
> On 12/30/2014 05:42 AM, David Hutchison wrote:
>> Does the new kernel / ath9k address the RF Filter on this board?
>> I came up with an old patch for this board, but whenever I
>> changed the channel inside OpenWRT the signal would just
>> disappear. The RF Filter has to be toggled somehow ( I assume
>> it's a GPIO of some sort ). I am just curious on how it was
>> fixed, or if it's still an issue.
>>
>> -- Davey
>>
>> On Mon, Dec 29, 2014 at 8:01 PM, Matthias Schiffer
>> <mschiffer at universe-factory.net> wrote:
>>> Signed-off-by: Matthias Schiffer
>>> <mschiffer at universe-factory.net> ---
>>> target/linux/ar71xx/base-files/etc/diag.sh | 3 ++
>>> target/linux/ar71xx/base-files/lib/ar71xx.sh | 3 ++
>>> .../ar71xx/base-files/lib/upgrade/platform.sh | 2 +
>>> target/linux/ar71xx/image/Makefile | 3 +-
>>> .../610-MIPS-ath79-openwrt-machines.patch | 3 +-
>>> .../patches-3.14/616-MIPS-ath79-ubnt-xw.patch | 61
>>> +++++++++++++++++++++- 6 files changed, 72 insertions(+), 3
>>> deletions(-)
>>>
>>> diff --git a/target/linux/ar71xx/base-files/etc/diag.sh
>>> b/target/linux/ar71xx/base-files/etc/diag.sh index
>>> 06b96a3..30e4aeb 100755 ---
>>> a/target/linux/ar71xx/base-files/etc/diag.sh +++
>>> b/target/linux/ar71xx/base-files/etc/diag.sh @@ -254,6 +254,9
>>> @@ get_status_led() { uap-pro) status_led="ubnt:white:dome" ;;
>>> + unifi-outdoor-plus) +
>>> status_led="ubnt:white:front" + ;; airgateway)
>>> status_led="ubnt:white:status" ;; diff --git
>>> a/target/linux/ar71xx/base-files/lib/ar71xx.sh
>>> b/target/linux/ar71xx/base-files/lib/ar71xx.sh index
>>> 9b056e9..a12101a 100755 ---
>>> a/target/linux/ar71xx/base-files/lib/ar71xx.sh +++
>>> b/target/linux/ar71xx/base-files/lib/ar71xx.sh @@ -732,6 +732,9
>>> @@ ar71xx_board_detect() { *"UniFiAP Outdoor")
>>> name="unifi-outdoor" ;; + *"UniFiAP Outdoor+") +
>>> name="unifi-outdoor-plus" + ;; *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
>>> 6dabf4e..2752729 100755 ---
>>> a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh +++
>>> b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh @@
>>> -368,6 +368,7 @@ platform_check_image() { return 1 ;;
>>>
>>> + unifi-outdoor-plus | \ uap-pro) [ "$magic_long" !=
>>> "19852003" ] && { echo "Invalid image type." @@ -483,6 +484,7
>>> @@ platform_do_upgrade() { om5p) platform_do_upgrade_openmesh
>>> "$ARGV" ;; + unifi-outdoor-plus | \ uap-pro)
>>> MTD_CONFIG_ARGS="-s 0x180000" default_do_upgrade "$ARGV" diff
>>> --git a/target/linux/ar71xx/image/Makefile
>>> b/target/linux/ar71xx/image/Makefile index 18c9637..3eb2f07
>>> 100644 --- a/target/linux/ar71xx/image/Makefile +++
>>> b/target/linux/ar71xx/image/Makefile @@ -1333,6 +1333,7 @@
>>> $(eval $(call
>>> SingleProfile,TPLINK-LZMA,64kraw,SMART-300,smart-300,SMART-300,tty
>>>
>>>
$(eval $(call
SingleProfile,TPLINK-LZMA,64kraw,OOLITE,oolite,GS-OOLITE,ttyATH0,115200,0x3C000101,1,16Mlzma))
>>>
>>> $(eval $(call
>>> SingleProfile,UAPPRO,64k,UAPPRO,ubnt-uap-pro,UAP-PRO,ttyS0,115200,BZ,BZ,ar934x))
>>>
>>>
+$(eval $(call
SingleProfile,UAPPRO,64k,UBNTUNIFIOUTDOORPLUS,ubnt-unifi-outdoor-plus,UBNT-UOP,ttyS0,115200,BZ,BZ,ar7240))
>>>
>>> $(eval $(call
>>> SingleProfile,UBDEV,64kraw,UBDEV01,ubdev01,UBNT-UF,ttyS0,115200,XM,XM,ar7240))
>>>
>>>
>>>
@@ -1396,7 +1397,7 @@ $(eval $(call MultiProfile,TLWR941,TLWR941NV2
TLWR941NV3 TLWR941NV4 TLWR941NV6))
>>> $(eval $(call MultiProfile,TLWR1043,TLWR1043V1 TLWR1043V2))
>>> $(eval $(call MultiProfile,TLWDR4300,TLWDR3500V1 TLWDR3600V1
>>> TLWDR4300V1 TLWDR4300V1IL TLWDR4310V1 MW4530RV1)) $(eval $(call
>>> MultiProfile,TUBE2H,TUBE2H8M TUBE2H16M)) -$(eval $(call
>>> MultiProfile,UBNT,UBNTAIRROUTER UBNTRS UBNTRSPRO UBNTLSSR71
>>> UBNTBULLETM UBNTROCKETM UBNTNANOM UBNTNANOMXW UBNTLOCOXW
>>> UBNTUNIFI UBNTUNIFIOUTDOOR UAPPRO UBNTAIRGW)) +$(eval $(call
>>> MultiProfile,UBNT,UBNTAIRROUTER UBNTRS UBNTRSPRO UBNTLSSR71
>>> UBNTBULLETM UBNTROCKETM UBNTNANOM UBNTNANOMXW UBNTLOCOXW
>>> UBNTUNIFI UBNTUNIFIOUTDOOR UBNTUNIFIOUTDOORPLUS UAPPRO
>>> UBNTAIRGW)) $(eval $(call MultiProfile,WNDR3700,WNDR3700V1
>>> WNDR3700V2 WNDR3800 WNDR3800CH WNDRMAC WNDRMACV2)) $(eval
>>> $(call MultiProfile,WNR612V2,REALWNR612V2 N150R)) $(eval $(call
>>> MultiProfile,WP543,WP543_2M WP543_4M WP543_8M WP543_16M)) diff
>>> --git
>>> a/target/linux/ar71xx/patches-3.14/610-MIPS-ath79-openwrt-machines.patch
>>> b/target/linux/ar71xx/patches-3.14/610-MIPS-ath79-openwrt-machines.patch
>>>
>>>
index 4ce9268..b01c5de 100644
>>> ---
>>> a/target/linux/ar71xx/patches-3.14/610-MIPS-ath79-openwrt-machines.patch
>>>
>>>
+++ b/target/linux/ar71xx/patches-3.14/610-MIPS-ath79-openwrt-machines.patch
>>> @@ -1,6 +1,6 @@ --- a/arch/mips/ath79/machtypes.h +++
>>> b/arch/mips/ath79/machtypes.h -@@ -16,22 +16,145 @@ +@@ -16,22
>>> +16,146 @@
>>>
>>> enum ath79_mach_type { ATH79_MACH_GENERIC = 0, @@ -119,6 +119,7
>>> @@ ATH79_MACH_UBNT_UAP_PRO, /* Ubiquiti UniFi AP Pro */
>>> ATH79_MACH_UBNT_UNIFI, /* Ubiquiti Unifi */
>>> ATH79_MACH_UBNT_UNIFI_OUTDOOR, /* Ubiquiti UnifiAP Outdoor */
>>> ++ ATH79_MACH_UBNT_UNIFI_OUTDOOR_PLUS, /* 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.14/616-MIPS-ath79-ubnt-xw.patch
>>> b/target/linux/ar71xx/patches-3.14/616-MIPS-ath79-ubnt-xw.patch
>>>
>>>
index 3675518..8e16697 100644
>>> ---
>>> a/target/linux/ar71xx/patches-3.14/616-MIPS-ath79-ubnt-xw.patch
>>>
>>>
+++ b/target/linux/ar71xx/patches-3.14/616-MIPS-ath79-ubnt-xw.patch
>>> @@ -1,6 +1,65 @@ --- a/arch/mips/ath79/mach-ubnt-xm.c +++
>>> b/arch/mips/ath79/mach-ubnt-xm.c -@@ -332,3 +332,78 @@ static
>>> void __init ubnt_uap_pro_setup(vo +@@ -186,6 +186,19 @@ static
>>> struct gpio_led ubnt_unifi_outdoo + } + }; + ++static
>>> struct gpio_led ubnt_unifi_outdoor_plus_leds_gpio[] __initdata
>>> = { ++ { ++ .name =
>>> "ubnt:white:front", ++ .gpio = 1, ++
>>> .active_low = 0, ++ }, { ++ .name
>>> = "ubnt:blue:front", ++ .gpio = 0, ++
>>> .active_low = 0, ++ } ++}; ++ ++ + static void __init
>>> ubnt_unifi_setup(void) + { + u8 *mac = (u8 *)
>>> KSEG1ADDR(0x1fff0000); +@@ -245,6 +258,38 @@
>>> MIPS_MACHINE(ATH79_MACH_UBNT_UNIFI_OUTDO + "Ubiquiti
>>> UniFiAP Outdoor", + ubnt_unifi_outdoor_setup); + ++
>>> ++static void __init ubnt_unifi_outdoor_plus_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_plus_leds_gpio), ++
>>> ubnt_unifi_outdoor_plus_leds_gpio); ++ ++
>>> ath79_register_gpio_keys_polled(-1,
>>> UBNT_XM_KEYS_POLL_INTERVAL, ++
>>> ARRAY_SIZE(ubnt_xm_gpio_keys), ++
>>> ubnt_xm_gpio_keys); ++} ++
>>> ++MIPS_MACHINE(ATH79_MACH_UBNT_UNIFI_OUTDOOR_PLUS, "UBNT-UOP",
>>> ++ "Ubiquiti UniFiAP Outdoor+", ++
>>> ubnt_unifi_outdoor_plus_setup); ++ ++ + static struct gpio_led
>>> ubnt_uap_pro_gpio_leds[] __initdata = { + { +
>>> .name = "ubnt:white:dome", +@@ -332,3 +377,78 @@
>>> static void __init ubnt_uap_pro_setup(vo
>>> MIPS_MACHINE(ATH79_MACH_UBNT_UAP_PRO, "UAP-PRO", "Ubiquiti
>>> UniFi AP Pro", ubnt_uap_pro_setup);
>>>
>>> -- 2.2.1 _______________________________________________
>>> openwrt-devel mailing list openwrt-devel at lists.openwrt.org
>>> https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel
>
>>>
>
>
>
> _______________________________________________ openwrt-devel
> mailing list openwrt-devel at lists.openwrt.org
> https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel
>
_______________________________________________
openwrt-devel mailing list
openwrt-devel at lists.openwrt.org
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel
More information about the openwrt-devel
mailing list