123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- --- a/arch/mips/ath79/Kconfig
- +++ b/arch/mips/ath79/Kconfig
- @@ -70,9 +70,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,48 +66,10 @@ static struct gpio_keys_button ubnt_xm_g
- }
- };
-
- -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 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);
-
- @@ -114,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,
|