From ae70358b1b0dc6b5881ad931213e00793d8df9c2 Mon Sep 17 00:00:00 2001 From: John Crispin Date: Thu, 22 Jan 2015 09:35:46 +0000 Subject: ar71xx: add support for the UniFi AP Outdoor Plus the GPIO controlling the rf filter is not configured properly by this patch. Signed-off-by: Matthias Schiffer SVN-Revision: 44077 --- .../patches-3.14/616-MIPS-ath79-ubnt-xw.patch | 61 +++++++++++++++++++++- 1 file changed, 60 insertions(+), 1 deletion(-) (limited to 'target/linux/ar71xx/patches-3.14/616-MIPS-ath79-ubnt-xw.patch') 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 3675518f45..8e16697d1b 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); -- cgit v1.2.3