ath9k: add support for overriding LED pin and GPIO settings from platform data

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
Felix Fietkau 2011-03-19 13:55:40 +01:00 committed by John W. Linville
parent 6fb1b1e18f
commit 6de66dd963
4 changed files with 20 additions and 8 deletions

View File

@ -41,12 +41,14 @@ void ath_init_leds(struct ath_softc *sc)
{ {
int ret; int ret;
if (sc->sc_ah->led_pin < 0) {
if (AR_SREV_9287(sc->sc_ah)) if (AR_SREV_9287(sc->sc_ah))
sc->sc_ah->led_pin = ATH_LED_PIN_9287; sc->sc_ah->led_pin = ATH_LED_PIN_9287;
else if (AR_SREV_9485(sc->sc_ah)) else if (AR_SREV_9485(sc->sc_ah))
sc->sc_ah->led_pin = ATH_LED_PIN_9485; sc->sc_ah->led_pin = ATH_LED_PIN_9485;
else else
sc->sc_ah->led_pin = ATH_LED_PIN_DEF; sc->sc_ah->led_pin = ATH_LED_PIN_DEF;
}
/* Configure gpio 1 for output */ /* Configure gpio 1 for output */
ath9k_hw_cfg_output(sc->sc_ah, sc->sc_ah->led_pin, ath9k_hw_cfg_output(sc->sc_ah, sc->sc_ah->led_pin,

View File

@ -798,7 +798,7 @@ struct ath_hw {
u32 originalGain[22]; u32 originalGain[22];
int initPDADC; int initPDADC;
int PDADCdelta; int PDADCdelta;
u8 led_pin; int led_pin;
u32 gpio_mask; u32 gpio_mask;
u32 gpio_val; u32 gpio_val;

View File

@ -553,8 +553,14 @@ static int ath9k_init_softc(u16 devid, struct ath_softc *sc, u16 subsysid,
ah->hw_version.subsysid = subsysid; ah->hw_version.subsysid = subsysid;
sc->sc_ah = ah; sc->sc_ah = ah;
if (!pdata) if (!pdata) {
ah->ah_flags |= AH_USE_EEPROM; ah->ah_flags |= AH_USE_EEPROM;
sc->sc_ah->led_pin = -1;
} else {
sc->sc_ah->gpio_mask = pdata->gpio_mask;
sc->sc_ah->gpio_val = pdata->gpio_val;
sc->sc_ah->led_pin = pdata->led_pin;
}
common = ath9k_hw_common(ah); common = ath9k_hw_common(ah);
common->ops = &ath9k_common_ops; common->ops = &ath9k_common_ops;

View File

@ -24,6 +24,10 @@
struct ath9k_platform_data { struct ath9k_platform_data {
u16 eeprom_data[ATH9K_PLAT_EEP_MAX_WORDS]; u16 eeprom_data[ATH9K_PLAT_EEP_MAX_WORDS];
u8 *macaddr; u8 *macaddr;
int led_pin;
u32 gpio_mask;
u32 gpio_val;
}; };
#endif /* _LINUX_ATH9K_PLATFORM_H */ #endif /* _LINUX_ATH9K_PLATFORM_H */