1
0
mirror of git://projects.qi-hardware.com/openwrt-xburst.git synced 2025-02-02 16:41:07 +02:00

backfire: ar71xx: improve the wndr3700 quirks (backport of r23822, r23875)

- move most of the code out of ath9k and instead allow the
  platform device to specify gpio overrides
- fixes 5ghz signal strength issues

git-svn-id: svn://svn.openwrt.org/openwrt/branches/backfire@24921 3c298f89-4303-0410-b956-a3cf2f4a3e73
This commit is contained in:
juhosg 2011-01-08 10:17:35 +00:00
parent 2cfc5db509
commit e21f26857b
4 changed files with 39 additions and 12 deletions

View File

@ -17,7 +17,9 @@
#include "dev-ap91-pci.h" #include "dev-ap91-pci.h"
static struct ath9k_platform_data ap91_wmac_data; static struct ath9k_platform_data ap91_wmac_data = {
.led_pin = -1,
};
static char ap91_wmac_mac[6]; static char ap91_wmac_mac[6];
static int ap91_pci_fixup_enabled; static int ap91_pci_fixup_enabled;

View File

@ -17,8 +17,12 @@
#include "dev-ap94-pci.h" #include "dev-ap94-pci.h"
static struct ath9k_platform_data ap94_wmac0_data; static struct ath9k_platform_data ap94_wmac0_data = {
static struct ath9k_platform_data ap94_wmac1_data; .led_pin = -1,
};
static struct ath9k_platform_data ap94_wmac1_data = {
.led_pin = -1,
};
static char ap94_wmac0_mac[6]; static char ap94_wmac0_mac[6];
static char ap94_wmac1_mac[6]; static char ap94_wmac1_mac[6];
static int ap94_pci_fixup_enabled; static int ap94_pci_fixup_enabled;
@ -127,8 +131,17 @@ DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_ATHEROS, PCI_ANY_ID, ap94_pci_fixup);
void __init ap94_pci_enable_quirk_wndr3700(void) void __init ap94_pci_enable_quirk_wndr3700(void)
{ {
ap94_wmac0_data.quirk_wndr3700 = 1; /* WNDR3700 uses GPIO 6-9 for antenna configuration */
ap94_wmac1_data.quirk_wndr3700 = 1;
ap94_wmac0_data.led_pin = 5;
ap94_wmac0_data.gpio_mask = (0xf << 6);
/* 2.4 GHz uses the first fixed antenna group (0, 1, 0, 1) */
ap94_wmac0_data.gpio_val = (10 << 6);
ap94_wmac1_data.led_pin = 5;
ap94_wmac1_data.gpio_mask = (0xf << 6);
/* 5 GHz uses the second fixed antenna group (0, 1, 1, 0) */
ap94_wmac1_data.gpio_val = (6 << 6);
} }
void __init ap94_pci_init(u8 *cal_data0, u8 *mac_addr0, void __init ap94_pci_init(u8 *cal_data0, u8 *mac_addr0,

View File

@ -22,7 +22,9 @@
#include "dev-ar913x-wmac.h" #include "dev-ar913x-wmac.h"
static struct ath9k_platform_data ar913x_wmac_data; static struct ath9k_platform_data ar913x_wmac_data = {
.led_pin = -1,
};
static char ar913x_wmac_mac[6]; static char ar913x_wmac_mac[6];
static struct resource ar913x_wmac_resources[] = { static struct resource ar913x_wmac_resources[] = {

View File

@ -1,11 +1,19 @@
/* /*
* ath9k platform data defines * Copyright (c) 2008 Atheros Communications Inc.
* Copyright (c) 2009 Gabor Juhos <juhosg@openwrt.org>
* Copyright (c) 2009 Imre Kaloz <kaloz@openwrt.org>
* *
* Copyright (C) 2008 Gabor Juhos <juhosg@openwrt.org> * Permission to use, copy, modify, and/or distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
* copyright notice and this permission notice appear in all copies.
* *
* This program is free software; you can redistribute it and/or modify it * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
* under the terms of the GNU General Public License version 2 as published * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
* by the Free Software Foundation. * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/ */
#ifndef _LINUX_ATH9K_PLATFORM_H #ifndef _LINUX_ATH9K_PLATFORM_H
@ -17,7 +25,9 @@ struct ath9k_platform_data {
u16 eeprom_data[ATH9K_PLAT_EEP_MAX_WORDS]; u16 eeprom_data[ATH9K_PLAT_EEP_MAX_WORDS];
u8 *macaddr; u8 *macaddr;
unsigned long quirk_wndr3700:1; int led_pin;
u32 gpio_mask;
u32 gpio_val;
}; };
#endif /* _LINUX_ATH9K_PLATFORM_H */ #endif /* _LINUX_ATH9K_PLATFORM_H */