mirror of https://github.com/hak5/openwrt-owl.git
110 lines
2.7 KiB
Diff
110 lines
2.7 KiB
Diff
|
--- a/arch/mips/ath79/Kconfig
|
||
|
+++ b/arch/mips/ath79/Kconfig
|
||
|
@@ -57,9 +57,10 @@ config ATH79_MACH_PB44
|
||
|
config ATH79_MACH_UBNT_XM
|
||
|
bool "Ubiquiti Networks XM (rev 1.0) board"
|
||
|
select SOC_AR724X
|
||
|
+ select ATH79_DEV_AP9X_PCI if PCI
|
||
|
select ATH79_DEV_GPIO_BUTTONS
|
||
|
select ATH79_DEV_LEDS_GPIO
|
||
|
- select ATH79_DEV_SPI
|
||
|
+ select ATH79_DEV_M25P80
|
||
|
help
|
||
|
Say 'Y' here if you want your kernel to support the
|
||
|
Ubiquiti Networks XM (rev 1.0) board.
|
||
|
--- a/arch/mips/ath79/mach-ubnt-xm.c
|
||
|
+++ b/arch/mips/ath79/mach-ubnt-xm.c
|
||
|
@@ -16,10 +16,11 @@
|
||
|
|
||
|
#include <asm/mach-ath79/irq.h>
|
||
|
|
||
|
-#include "machtypes.h"
|
||
|
+#include "dev-ap9x-pci.h"
|
||
|
#include "dev-gpio-buttons.h"
|
||
|
#include "dev-leds-gpio.h"
|
||
|
-#include "dev-spi.h"
|
||
|
+#include "dev-m25p80.h"
|
||
|
+#include "machtypes.h"
|
||
|
#include "pci.h"
|
||
|
|
||
|
#define UBNT_XM_GPIO_LED_L1 0
|
||
|
@@ -32,7 +33,7 @@
|
||
|
#define UBNT_XM_KEYS_POLL_INTERVAL 20
|
||
|
#define UBNT_XM_KEYS_DEBOUNCE_INTERVAL (3 * UBNT_XM_KEYS_POLL_INTERVAL)
|
||
|
|
||
|
-#define UBNT_XM_EEPROM_ADDR (u8 *) KSEG1ADDR(0x1fff1000)
|
||
|
+#define UBNT_XM_EEPROM_ADDR 0x1fff1000
|
||
|
|
||
|
static struct gpio_led ubnt_xm_leds_gpio[] __initdata = {
|
||
|
{
|
||
|
@@ -65,54 +66,10 @@ static struct gpio_keys_button ubnt_xm_g
|
||
|
}
|
||
|
};
|
||
|
|
||
|
-static struct ath79_spi_controller_data ubnt_xm_spi0_data = {
|
||
|
- .cs_type = ATH79_SPI_CS_TYPE_INTERNAL,
|
||
|
- .cs_line = 0,
|
||
|
-};
|
||
|
-
|
||
|
-static struct spi_board_info ubnt_xm_spi_info[] = {
|
||
|
- {
|
||
|
- .bus_num = 0,
|
||
|
- .chip_select = 0,
|
||
|
- .max_speed_hz = 25000000,
|
||
|
- .modalias = "mx25l6405d",
|
||
|
- .controller_data = &ubnt_xm_spi0_data,
|
||
|
- }
|
||
|
-};
|
||
|
-
|
||
|
-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 int ubnt_xm_pci_plat_dev_init(struct pci_dev *dev)
|
||
|
-{
|
||
|
- switch (PCI_SLOT(dev->devfn)) {
|
||
|
- case 0:
|
||
|
- dev->dev.platform_data = &ubnt_xm_eeprom_data;
|
||
|
- break;
|
||
|
- }
|
||
|
-
|
||
|
- return 0;
|
||
|
-}
|
||
|
-
|
||
|
-static void __init ubnt_xm_pci_init(void)
|
||
|
-{
|
||
|
- memcpy(ubnt_xm_eeprom_data.eeprom_data, UBNT_XM_EEPROM_ADDR,
|
||
|
- sizeof(ubnt_xm_eeprom_data.eeprom_data));
|
||
|
-
|
||
|
- ath79_pci_set_plat_dev_init(ubnt_xm_pci_plat_dev_init);
|
||
|
- ath79_register_pci();
|
||
|
-}
|
||
|
-#else
|
||
|
-static inline void ubnt_xm_pci_init(void) {}
|
||
|
-#endif /* CONFIG_PCI */
|
||
|
-
|
||
|
static void __init ubnt_xm_init(void)
|
||
|
{
|
||
|
+ u8 *eeprom = (u8 *) KSEG1ADDR(UBNT_XM_EEPROM_ADDR);
|
||
|
+
|
||
|
ath79_register_leds_gpio(-1, ARRAY_SIZE(ubnt_xm_leds_gpio),
|
||
|
ubnt_xm_leds_gpio);
|
||
|
|
||
|
@@ -120,10 +77,8 @@ static void __init ubnt_xm_init(void)
|
||
|
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));
|
||
|
-
|
||
|
- ubnt_xm_pci_init();
|
||
|
+ ath79_register_m25p80(NULL);
|
||
|
+ ap91_pci_init(eeprom, NULL);
|
||
|
}
|
||
|
|
||
|
MIPS_MACHINE(ATH79_MACH_UBNT_XM,
|