diff options
Diffstat (limited to 'target/linux/ar71xx/files/arch/mips/ar71xx/mach-tl-wr741nd.c')
-rw-r--r-- | target/linux/ar71xx/files/arch/mips/ar71xx/mach-tl-wr741nd.c | 28 |
1 files changed, 27 insertions, 1 deletions
diff --git a/target/linux/ar71xx/files/arch/mips/ar71xx/mach-tl-wr741nd.c b/target/linux/ar71xx/files/arch/mips/ar71xx/mach-tl-wr741nd.c index cbf774849..10f7e8ead 100644 --- a/target/linux/ar71xx/files/arch/mips/ar71xx/mach-tl-wr741nd.c +++ b/target/linux/ar71xx/files/arch/mips/ar71xx/mach-tl-wr741nd.c @@ -8,12 +8,14 @@ * by the Free Software Foundation. */ +#include <linux/pci.h> #include <linux/platform_device.h> #include <linux/mtd/mtd.h> #include <linux/mtd/partitions.h> #include <linux/spi/spi.h> #include <linux/spi/flash.h> #include <linux/input.h> +#include <linux/ath9k_platform.h> #include <asm/mips_machine.h> @@ -105,6 +107,7 @@ static struct gpio_button tl_wr741nd_gpio_buttons[] __initdata = { } }; +#ifdef CONFIG_PCI static struct ar71xx_pci_irq tl_wr741nd_pci_irqs[] __initdata = { { .slot = 0, @@ -113,6 +116,29 @@ static struct ar71xx_pci_irq tl_wr741nd_pci_irqs[] __initdata = { } }; +static struct ath9k_platform_data tl_wr741nd_wmac_data; + +static int tl_wr741nd_pci_plat_dev_init(struct pci_dev *dev) +{ + dev->dev.platform_data = &tl_wr741nd_wmac_data; + return 0; +} + +static void tl_wr741nd_pci_init(void) +{ + u8 *ee = (u8 *) KSEG1ADDR(0x1fff1000); + + memcpy(tl_wr741nd_wmac_data.eeprom_data, ee, + sizeof(tl_wr741nd_wmac_data.eeprom_data)); + + ar71xx_pci_plat_dev_init = tl_wr741nd_pci_plat_dev_init; + + ar71xx_pci_init(ARRAY_SIZE(tl_wr741nd_pci_irqs), tl_wr741nd_pci_irqs); +} +#else +static inline void tl_wr741nd_pci_init(void) { }; +#endif /* CONFIG_PCI */ + static void __init tl_wr741nd_setup(void) { u8 *mac = (u8 *) KSEG1ADDR(0x1f01fc00); @@ -145,6 +171,6 @@ static void __init tl_wr741nd_setup(void) ARRAY_SIZE(tl_wr741nd_gpio_buttons), tl_wr741nd_gpio_buttons); - ar71xx_pci_init(ARRAY_SIZE(tl_wr741nd_pci_irqs), tl_wr741nd_pci_irqs); + tl_wr741nd_pci_init(); } MIPS_MACHINE(AR71XX_MACH_TL_WR741ND, "TP-LINK TL-WR741ND", tl_wr741nd_setup); |