/****************************************************************************** * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * * You should have received a copy of the GNU General Public License along with * this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA * * The full GNU General Public License is included in this distribution in the * file called LICENSE. * * Contact Information: * wlanfae ******************************************************************************/ #ifndef __INC_HAL8192USBLED_H #define __INC_HAL8192USBLED_H #include #include typedef enum _LED_STATE_819xUsb{ LED_UNKNOWN = 0, LED_ON = 1, LED_OFF = 2, LED_BLINK_NORMAL = 3, LED_BLINK_SLOWLY = 4, LED_POWER_ON_BLINK = 5, LED_SCAN_BLINK = 6, LED_NO_LINK_BLINK = 7, LED_BLINK_StartToBlink = 8, LED_BLINK_WPS = 9, LED_TXRX_BLINK = 10, LED_BLINK_WPS_STOP = 11, LED_BLINK_WPS_STOP_OVERLAP = 12, }LED_STATE_819xUsb; #define IS_LED_WPS_BLINKING(_LED_819xUsb) (((PLED_819xUsb)_LED_819xUsb)->CurrLedState==LED_BLINK_WPS \ || ((PLED_819xUsb)_LED_819xUsb)->CurrLedState==LED_BLINK_WPS_STOP \ || ((PLED_819xUsb)_LED_819xUsb)->bLedWPSBlinkInProgress) #define IS_LED_BLINKING(_LED_819xUsb) (((PLED_819xUsb)_LED_819xUsb)->bLedWPSBlinkInProgress \ ||((PLED_819xUsb)_LED_819xUsb)->bLedScanBlinkInProgress) typedef enum _LED_PIN_819xUsb{ LED_PIN_GPIO0, LED_PIN_LED0, LED_PIN_LED1 }LED_PIN_819xUsb; typedef enum _LED_STRATEGY_819xUsb{ SW_LED_MODE0, /* SW control 1 LED via GPIO0. It is default option. */ SW_LED_MODE1, /* SW control for PCI Express */ SW_LED_MODE2, /* SW control for Cameo. */ SW_LED_MODE3, /* SW contorl for RunTop. */ SW_LED_MODE4, /* SW control for Netcore */ SW_LED_MODE5, HW_LED, /* HW control 2 LEDs, LED0 and LED1 (there are 4 different control modes) */ }LED_STRATEGY_819xUsb, *PLED_STRATEGY_819xUsb; typedef struct _LED_819xUsb{ struct net_device *dev; LED_PIN_819xUsb LedPin; LED_STATE_819xUsb CurrLedState; bool bLedOn; bool bSWLedCtrl; bool bLedBlinkInProgress; bool bLedNoLinkBlinkInProgress; bool bLedLinkBlinkInProgress; bool bLedStartToLinkBlinkInProgress; bool bLedScanBlinkInProgress; bool bLedWPSBlinkInProgress; u32 BlinkTimes; LED_STATE_819xUsb BlinkingLedState; struct timer_list BlinkTimer; } LED_819xUsb, *PLED_819xUsb; void InitSwLeds(struct net_device *dev); void DeInitSwLeds(struct net_device *dev); void LedControl8192SUsb(struct net_device *dev,LED_CTL_MODE LedAction); #endif