![Florian Schilhabel](/assets/img/avatar_default.png)
added the necessary infrastructure for the leds on the device this is a port from Realteks driver. leds are now working partially. Signed-off-by: Florian Schilhabel <florian.c.schilhabel@googlemail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
94 lines
2.9 KiB
C
94 lines
2.9 KiB
C
/******************************************************************************
|
|
* 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 <wlanfae@realtek.com>
|
|
******************************************************************************/
|
|
#ifndef __INC_HAL8192USBLED_H
|
|
#define __INC_HAL8192USBLED_H
|
|
|
|
#include <linux/types.h>
|
|
#include <linux/timer.h>
|
|
|
|
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
|
|
|