forked from Minki/linux
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:
parent
6fb1b1e18f
commit
6de66dd963
@ -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,
|
||||||
|
@ -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;
|
||||||
|
|
||||||
|
@ -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;
|
||||||
|
@ -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 */
|
||||||
|
Loading…
Reference in New Issue
Block a user