From 6f35d8b5003904de6eb320bfeb833d89601c2dd0 Mon Sep 17 00:00:00 2001 From: Gabor Juhos Date: Fri, 2 Jan 2009 18:54:33 +0000 Subject: [PATCH] prepare for ath9k support SVN-Revision: 13825 --- .../ar71xx/files/arch/mips/ar71xx/platform.c | 17 ++++++++++++++++ .../files/include/linux/ath9k_platform.h | 20 +++++++++++++++++++ 2 files changed, 37 insertions(+) create mode 100644 target/linux/ar71xx/files/include/linux/ath9k_platform.h diff --git a/target/linux/ar71xx/files/arch/mips/ar71xx/platform.c b/target/linux/ar71xx/files/arch/mips/ar71xx/platform.c index e4e95389865b..ef70867a2b7c 100644 --- a/target/linux/ar71xx/files/arch/mips/ar71xx/platform.c +++ b/target/linux/ar71xx/files/arch/mips/ar71xx/platform.c @@ -17,6 +17,7 @@ #include #include #include +#include #include #include @@ -605,14 +606,30 @@ static struct resource ar91xx_wmac_resources[] = { }, }; +static struct ath9k_platform_data ar91xx_wmac_data; + static struct platform_device ar91xx_wmac_device = { .name = "ath9k", .id = -1, .resource = ar91xx_wmac_resources, .num_resources = ARRAY_SIZE(ar91xx_wmac_resources), + .dev = { + .platform_data = &ar91xx_wmac_data, + }, }; void __init ar91xx_add_device_wmac(void) { + u8 *ee = (u8 *) KSEG1ADDR(0x1fff1000); + + memcpy(ar91xx_wmac_data.eeprom_data, ee, + sizeof(ar91xx_wmac_data.eeprom_data)); + + ar71xx_device_stop(RESET_MODULE_AMBA2WMAC); + mdelay(10); + + ar71xx_device_start(RESET_MODULE_AMBA2WMAC); + mdelay(10); + platform_device_register(&ar91xx_wmac_device); } diff --git a/target/linux/ar71xx/files/include/linux/ath9k_platform.h b/target/linux/ar71xx/files/include/linux/ath9k_platform.h new file mode 100644 index 000000000000..d76956079571 --- /dev/null +++ b/target/linux/ar71xx/files/include/linux/ath9k_platform.h @@ -0,0 +1,20 @@ +/* + * ath9k platform data defines + * + * Copyright (C) 2008 Gabor Juhos + * + * 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. + */ + +#ifndef _LINUX_ATH9K_PLATFORM_H +#define _LINUX_ATH9L_PLATFORM_H + +#define ATH9K_PLAT_EEP_MAX_WORDS 2048 + +struct ath9k_platform_data { + u16 eeprom_data[ATH9K_PLAT_EEP_MAX_WORDS]; +}; + +#endif /* _LINUX_ATH9K_PLATFORM_H */ -- 2.30.2