|
@@ -21,6 +21,33 @@
|
|
|
/********************************/
|
|
|
|
|
|
#ifdef CONFIG_MAC80211_LEDS
|
|
|
+
|
|
|
+void ath_fill_led_pin(struct ath_softc *sc)
|
|
|
+{
|
|
|
+ struct ath_hw *ah = sc->sc_ah;
|
|
|
+
|
|
|
+ /* Set default led pin if invalid */
|
|
|
+ if (ah->led_pin < 0) {
|
|
|
+ if (AR_SREV_9287(ah))
|
|
|
+ ah->led_pin = ATH_LED_PIN_9287;
|
|
|
+ else if (AR_SREV_9485(ah))
|
|
|
+ ah->led_pin = ATH_LED_PIN_9485;
|
|
|
+ else if (AR_SREV_9300(ah))
|
|
|
+ ah->led_pin = ATH_LED_PIN_9300;
|
|
|
+ else if (AR_SREV_9462(ah) || AR_SREV_9565(ah))
|
|
|
+ ah->led_pin = ATH_LED_PIN_9462;
|
|
|
+ else
|
|
|
+ ah->led_pin = ATH_LED_PIN_DEF;
|
|
|
+ }
|
|
|
+
|
|
|
+ /* Configure gpio for output */
|
|
|
+ ath9k_hw_gpio_request_out(ah, ah->led_pin, "ath9k-led",
|
|
|
+ AR_GPIO_OUTPUT_MUX_AS_OUTPUT);
|
|
|
+
|
|
|
+ /* LED off, active low */
|
|
|
+ ath9k_hw_set_gpio(ah, ah->led_pin, ah->config.led_active_high ? 0 : 1);
|
|
|
+}
|
|
|
+
|
|
|
static void ath_led_brightness(struct led_classdev *led_cdev,
|
|
|
enum led_brightness brightness)
|
|
|
{
|
|
@@ -51,6 +78,8 @@ void ath_init_leds(struct ath_softc *sc)
|
|
|
if (AR_SREV_9100(sc->sc_ah))
|
|
|
return;
|
|
|
|
|
|
+ ath_fill_led_pin(sc);
|
|
|
+
|
|
|
if (!ath9k_led_blink)
|
|
|
sc->led_cdev.default_trigger =
|
|
|
ieee80211_get_radio_led_name(sc->hw);
|
|
@@ -66,39 +95,6 @@ void ath_init_leds(struct ath_softc *sc)
|
|
|
|
|
|
sc->led_registered = true;
|
|
|
}
|
|
|
-
|
|
|
-void ath_fill_led_pin(struct ath_softc *sc)
|
|
|
-{
|
|
|
- struct ath_hw *ah = sc->sc_ah;
|
|
|
-
|
|
|
- if (AR_SREV_9100(ah))
|
|
|
- return;
|
|
|
-
|
|
|
- if (ah->led_pin >= 0) {
|
|
|
- if (!((1 << ah->led_pin) & AR_GPIO_OE_OUT_MASK))
|
|
|
- ath9k_hw_gpio_request_out(ah, ah->led_pin, "ath9k-led",
|
|
|
- AR_GPIO_OUTPUT_MUX_AS_OUTPUT);
|
|
|
- return;
|
|
|
- }
|
|
|
-
|
|
|
- if (AR_SREV_9287(ah))
|
|
|
- ah->led_pin = ATH_LED_PIN_9287;
|
|
|
- else if (AR_SREV_9485(sc->sc_ah))
|
|
|
- ah->led_pin = ATH_LED_PIN_9485;
|
|
|
- else if (AR_SREV_9300(sc->sc_ah))
|
|
|
- ah->led_pin = ATH_LED_PIN_9300;
|
|
|
- else if (AR_SREV_9462(sc->sc_ah) || AR_SREV_9565(sc->sc_ah))
|
|
|
- ah->led_pin = ATH_LED_PIN_9462;
|
|
|
- else
|
|
|
- ah->led_pin = ATH_LED_PIN_DEF;
|
|
|
-
|
|
|
- /* Configure gpio 1 for output */
|
|
|
- ath9k_hw_gpio_request_out(ah, ah->led_pin, "ath9k-led",
|
|
|
- AR_GPIO_OUTPUT_MUX_AS_OUTPUT);
|
|
|
-
|
|
|
- /* LED off, active low */
|
|
|
- ath9k_hw_set_gpio(ah, ah->led_pin, (ah->config.led_active_high) ? 0 : 1);
|
|
|
-}
|
|
|
#endif
|
|
|
|
|
|
/*******************/
|