diff options
5 files changed, 32 insertions, 0 deletions
diff --git a/target/linux/ar71xx/files-2.6.28/arch/mips/include/asm/mach-ar71xx/platform.h b/target/linux/ar71xx/files-2.6.28/arch/mips/include/asm/mach-ar71xx/platform.h index a82d621a48..20d83bb748 100644 --- a/target/linux/ar71xx/files-2.6.28/arch/mips/include/asm/mach-ar71xx/platform.h +++ b/target/linux/ar71xx/files-2.6.28/arch/mips/include/asm/mach-ar71xx/platform.h @@ -82,4 +82,6 @@ extern void ar71xx_add_device_uart(void) __init; extern void ar71xx_add_device_wdt(void) __init; +extern void ar91xx_add_device_wmac(void) __init; + #endif /* __ASM_MACH_AR71XX_PLATFORM_H */ diff --git a/target/linux/ar71xx/files/arch/mips/ar71xx/mach-ap83.c b/target/linux/ar71xx/files/arch/mips/ar71xx/mach-ap83.c index 45eace8a31..13fe719069 100644 --- a/target/linux/ar71xx/files/arch/mips/ar71xx/mach-ap83.c +++ b/target/linux/ar71xx/files/arch/mips/ar71xx/mach-ap83.c @@ -80,6 +80,8 @@ static void __init ap83_setup(void) ap83_gpio_buttons); ar71xx_add_device_usb(); + + ar91xx_add_device_wmac(); } MIPS_MACHINE(AR71XX_MACH_AP83, "Atheros AP83", ap83_setup); diff --git a/target/linux/ar71xx/files/arch/mips/ar71xx/mach-tew-632brp.c b/target/linux/ar71xx/files/arch/mips/ar71xx/mach-tew-632brp.c index ac0f6c1869..01bab6c179 100644 --- a/target/linux/ar71xx/files/arch/mips/ar71xx/mach-tew-632brp.c +++ b/target/linux/ar71xx/files/arch/mips/ar71xx/mach-tew-632brp.c @@ -123,6 +123,8 @@ static void __init tew_632brp_setup(void) ar71xx_add_device_gpio_buttons(-1, TEW_632BRP_BUTTONS_POLL_INTERVAL, ARRAY_SIZE(tew_632brp_gpio_buttons), tew_632brp_gpio_buttons); + + ar91xx_add_device_wmac(); } MIPS_MACHINE(AR71XX_MACH_TEW_632BRP, "TRENDnet TEW-632BRP", tew_632brp_setup); diff --git a/target/linux/ar71xx/files/arch/mips/ar71xx/platform.c b/target/linux/ar71xx/files/arch/mips/ar71xx/platform.c index 705f24315a..e4e9538986 100644 --- a/target/linux/ar71xx/files/arch/mips/ar71xx/platform.c +++ b/target/linux/ar71xx/files/arch/mips/ar71xx/platform.c @@ -592,3 +592,27 @@ void __init ar71xx_parse_mac_addr(char *mac_str) printk(KERN_DEBUG "ar71xx: failed to parse mac address " "\"%s\"\n", mac_str); } + +static struct resource ar91xx_wmac_resources[] = { + { + .start = AR91XX_WMAC_BASE, + .end = AR91XX_WMAC_BASE + AR91XX_WMAC_SIZE - 1, + .flags = IORESOURCE_MEM, + }, { + .start = AR71XX_CPU_IRQ_WMAC, + .end = AR71XX_CPU_IRQ_WMAC, + .flags = IORESOURCE_IRQ, + }, +}; + +static struct platform_device ar91xx_wmac_device = { + .name = "ath9k", + .id = -1, + .resource = ar91xx_wmac_resources, + .num_resources = ARRAY_SIZE(ar91xx_wmac_resources), +}; + +void __init ar91xx_add_device_wmac(void) +{ + platform_device_register(&ar91xx_wmac_device); +} diff --git a/target/linux/ar71xx/files/include/asm-mips/mach-ar71xx/platform.h b/target/linux/ar71xx/files/include/asm-mips/mach-ar71xx/platform.h index a82d621a48..20d83bb748 100644 --- a/target/linux/ar71xx/files/include/asm-mips/mach-ar71xx/platform.h +++ b/target/linux/ar71xx/files/include/asm-mips/mach-ar71xx/platform.h @@ -82,4 +82,6 @@ extern void ar71xx_add_device_uart(void) __init; extern void ar71xx_add_device_wdt(void) __init; +extern void ar91xx_add_device_wmac(void) __init; + #endif /* __ASM_MACH_AR71XX_PLATFORM_H */ |