diff options
author | Gabor Juhos <juhosg@openwrt.org> | 2012-01-22 22:38:19 +0000 |
---|---|---|
committer | Gabor Juhos <juhosg@openwrt.org> | 2012-01-22 22:38:19 +0000 |
commit | fa34189a176636de92c5ed7e3cca5bd50a3e35cd (patch) | |
tree | dccbb34ba7bd86e0b13abd8226004f09f5766847 /target/linux/ar71xx/patches-3.2/018-Initial-support-for-the-Ubiquiti-Networks-XM-board-r.patch | |
parent | 2899e54bd7c81bb820e15e6afb8f78305ff637fb (diff) | |
download | master-187ad058-fa34189a176636de92c5ed7e3cca5bd50a3e35cd.tar.gz master-187ad058-fa34189a176636de92c5ed7e3cca5bd50a3e35cd.tar.bz2 master-187ad058-fa34189a176636de92c5ed7e3cca5bd50a3e35cd.zip |
ar71xx: add initial support for 3.2
Tested on the following boards:
ALFA AP96
TL-MR3220 v1
TL-WR1043ND v1
TL-WR2543ND v1
TL-WR703N v1
TL-WR741ND v1
TL-WR741ND v4
WNDR3700 v1
WZR-HP-G300NH
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@29868 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'target/linux/ar71xx/patches-3.2/018-Initial-support-for-the-Ubiquiti-Networks-XM-board-r.patch')
-rw-r--r-- | target/linux/ar71xx/patches-3.2/018-Initial-support-for-the-Ubiquiti-Networks-XM-board-r.patch | 184 |
1 files changed, 184 insertions, 0 deletions
diff --git a/target/linux/ar71xx/patches-3.2/018-Initial-support-for-the-Ubiquiti-Networks-XM-board-r.patch b/target/linux/ar71xx/patches-3.2/018-Initial-support-for-the-Ubiquiti-Networks-XM-board-r.patch new file mode 100644 index 0000000000..466a5372d9 --- /dev/null +++ b/target/linux/ar71xx/patches-3.2/018-Initial-support-for-the-Ubiquiti-Networks-XM-board-r.patch @@ -0,0 +1,184 @@ +From e6a1210bef8b48a946f1afb6d951f4b2448219ac Mon Sep 17 00:00:00 2001 +From: Rene Bolldorf <xsecute@googlemail.com> +Date: Fri, 18 Nov 2011 00:17:42 +0000 +Subject: [PATCH 18/27] Initial support for the Ubiquiti Networks XM board (rev 1.0). + +Signed-off-by: Rene Bolldorf <xsecute@googlemail.com> +Cc: linux-mips@linux-mips.org +Cc: linux-kernel@vger.kernel.org +Patchwork: https://patchwork.linux-mips.org/patch/3020/ +Signed-off-by: Ralf Baechle <ralf@linux-mips.org> +--- + arch/mips/ath79/Kconfig | 11 ++++ + arch/mips/ath79/Makefile | 1 + + arch/mips/ath79/mach-ubnt-xm.c | 119 ++++++++++++++++++++++++++++++++++++++++ + arch/mips/ath79/machtypes.h | 1 + + 4 files changed, 132 insertions(+), 0 deletions(-) + create mode 100644 arch/mips/ath79/mach-ubnt-xm.c + +--- a/arch/mips/ath79/Kconfig ++++ b/arch/mips/ath79/Kconfig +@@ -36,6 +36,16 @@ config ATH79_MACH_PB44 + Say 'Y' here if you want your kernel to support the + Atheros PB44 reference board. + ++config ATH79_MACH_UBNT_XM ++ bool "Ubiquiti Networks XM (rev 1.0) board" ++ select SOC_AR724X ++ select ATH79_DEV_GPIO_BUTTONS ++ select ATH79_DEV_LEDS_GPIO ++ select ATH79_DEV_SPI ++ help ++ Say 'Y' here if you want your kernel to support the ++ Ubiquiti Networks XM (rev 1.0) board. ++ + endmenu + + config SOC_AR71XX +@@ -46,6 +56,7 @@ config SOC_AR71XX + config SOC_AR724X + select USB_ARCH_HAS_EHCI + select USB_ARCH_HAS_OHCI ++ select HW_HAS_PCI + def_bool n + + config SOC_AR913X +--- a/arch/mips/ath79/Makefile ++++ b/arch/mips/ath79/Makefile +@@ -28,3 +28,4 @@ obj-$(CONFIG_ATH79_DEV_USB) += dev-usb. + obj-$(CONFIG_ATH79_MACH_AP121) += mach-ap121.o + obj-$(CONFIG_ATH79_MACH_AP81) += mach-ap81.o + obj-$(CONFIG_ATH79_MACH_PB44) += mach-pb44.o ++obj-$(CONFIG_ATH79_MACH_UBNT_XM) += mach-ubnt-xm.o +--- /dev/null ++++ b/arch/mips/ath79/mach-ubnt-xm.c +@@ -0,0 +1,119 @@ ++/* ++ * Ubiquiti Networks XM (rev 1.0) board support ++ * ++ * Copyright (C) 2011 René Bolldorf <xsecute@googlemail.com> ++ * ++ * Derived from: mach-pb44.c ++ * ++ * This program is free software; you can redistribute it and/or modify it ++ * under the terms of the GNU General Public License version 2 as published ++ * by the Free Software Foundation. ++ */ ++ ++#include <linux/init.h> ++#include <linux/pci.h> ++ ++#ifdef CONFIG_PCI ++#include <linux/ath9k_platform.h> ++#include <asm/mach-ath79/pci-ath724x.h> ++#endif /* CONFIG_PCI */ ++ ++#include "machtypes.h" ++#include "dev-gpio-buttons.h" ++#include "dev-leds-gpio.h" ++#include "dev-spi.h" ++ ++#define UBNT_XM_GPIO_LED_L1 0 ++#define UBNT_XM_GPIO_LED_L2 1 ++#define UBNT_XM_GPIO_LED_L3 11 ++#define UBNT_XM_GPIO_LED_L4 7 ++ ++#define UBNT_XM_GPIO_BTN_RESET 12 ++ ++#define UBNT_XM_KEYS_POLL_INTERVAL 20 ++#define UBNT_XM_KEYS_DEBOUNCE_INTERVAL (3 * UBNT_XM_KEYS_POLL_INTERVAL) ++ ++#define UBNT_XM_PCI_IRQ 48 ++#define UBNT_XM_EEPROM_ADDR (u8 *) KSEG1ADDR(0x1fff1000) ++ ++static struct gpio_led ubnt_xm_leds_gpio[] __initdata = { ++ { ++ .name = "ubnt-xm:red:link1", ++ .gpio = UBNT_XM_GPIO_LED_L1, ++ .active_low = 0, ++ }, { ++ .name = "ubnt-xm:orange:link2", ++ .gpio = UBNT_XM_GPIO_LED_L2, ++ .active_low = 0, ++ }, { ++ .name = "ubnt-xm:green:link3", ++ .gpio = UBNT_XM_GPIO_LED_L3, ++ .active_low = 0, ++ }, { ++ .name = "ubnt-xm:green:link4", ++ .gpio = UBNT_XM_GPIO_LED_L4, ++ .active_low = 0, ++ }, ++}; ++ ++static struct gpio_keys_button ubnt_xm_gpio_keys[] __initdata = { ++ { ++ .desc = "reset", ++ .type = EV_KEY, ++ .code = KEY_RESTART, ++ .debounce_interval = UBNT_XM_KEYS_DEBOUNCE_INTERVAL, ++ .gpio = UBNT_XM_GPIO_BTN_RESET, ++ .active_low = 1, ++ } ++}; ++ ++static struct spi_board_info ubnt_xm_spi_info[] = { ++ { ++ .bus_num = 0, ++ .chip_select = 0, ++ .max_speed_hz = 25000000, ++ .modalias = "mx25l6405d", ++ } ++}; ++ ++static struct ath79_spi_platform_data ubnt_xm_spi_data = { ++ .bus_num = 0, ++ .num_chipselect = 1, ++}; ++ ++#ifdef CONFIG_PCI ++static struct ath9k_platform_data ubnt_xm_eeprom_data; ++ ++static struct ath724x_pci_data ubnt_xm_pci_data[] = { ++ { ++ .irq = UBNT_XM_PCI_IRQ, ++ .pdata = &ubnt_xm_eeprom_data, ++ }, ++}; ++#endif /* CONFIG_PCI */ ++ ++static void __init ubnt_xm_init(void) ++{ ++ ath79_register_leds_gpio(-1, ARRAY_SIZE(ubnt_xm_leds_gpio), ++ ubnt_xm_leds_gpio); ++ ++ ath79_register_gpio_keys_polled(-1, UBNT_XM_KEYS_POLL_INTERVAL, ++ ARRAY_SIZE(ubnt_xm_gpio_keys), ++ ubnt_xm_gpio_keys); ++ ++ ath79_register_spi(&ubnt_xm_spi_data, ubnt_xm_spi_info, ++ ARRAY_SIZE(ubnt_xm_spi_info)); ++ ++#ifdef CONFIG_PCI ++ memcpy(ubnt_xm_eeprom_data.eeprom_data, UBNT_XM_EEPROM_ADDR, ++ sizeof(ubnt_xm_eeprom_data.eeprom_data)); ++ ++ ath724x_pci_add_data(ubnt_xm_pci_data, ARRAY_SIZE(ubnt_xm_pci_data)); ++#endif /* CONFIG_PCI */ ++ ++} ++ ++MIPS_MACHINE(ATH79_MACH_UBNT_XM, ++ "UBNT-XM", ++ "Ubiquiti Networks XM (rev 1.0) board", ++ ubnt_xm_init); +--- a/arch/mips/ath79/machtypes.h ++++ b/arch/mips/ath79/machtypes.h +@@ -19,6 +19,7 @@ enum ath79_mach_type { + ATH79_MACH_AP121, /* Atheros AP121 reference board */ + ATH79_MACH_AP81, /* Atheros AP81 reference board */ + ATH79_MACH_PB44, /* Atheros PB44 reference board */ ++ ATH79_MACH_UBNT_XM, /* Ubiquiti Networks XM board rev 1.0 */ + }; + + #endif /* _ATH79_MACHTYPE_H */ |