~ubuntu-branches/ubuntu/precise/linux-lowlatency/precise

« back to all changes in this revision

Viewing changes to drivers/staging/bcm/led_control.h

  • Committer: Package Import Robot
  • Author(s): Alessio Igor Bogani
  • Date: 2011-10-26 11:13:05 UTC
  • Revision ID: package-import@ubuntu.com-20111026111305-tz023xykf0i6eosh
Tags: upstream-3.2.0
ImportĀ upstreamĀ versionĀ 3.2.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#ifndef _LED_CONTROL_H
 
2
#define _LED_CONTROL_H
 
3
 
 
4
/*************************TYPE DEF**********************/
 
5
#define NUM_OF_LEDS 4
 
6
 
 
7
#define DSD_START_OFFSET                     0x0200
 
8
#define EEPROM_VERSION_OFFSET                    0x020E
 
9
#define EEPROM_HW_PARAM_POINTER_ADDRESS          0x0218
 
10
#define EEPROM_HW_PARAM_POINTER_ADDRRES_MAP5 0x0220
 
11
#define GPIO_SECTION_START_OFFSET                0x03
 
12
 
 
13
#define COMPATIBILITY_SECTION_LENGTH         42
 
14
#define COMPATIBILITY_SECTION_LENGTH_MAP5    84
 
15
 
 
16
 
 
17
#define EEPROM_MAP5_MAJORVERSION             5
 
18
#define EEPROM_MAP5_MINORVERSION             0
 
19
 
 
20
 
 
21
#define MAX_NUM_OF_BLINKS                                       10
 
22
#define NUM_OF_GPIO_PINS                                        16
 
23
 
 
24
#define DISABLE_GPIO_NUM                                        0xFF
 
25
#define EVENT_SIGNALED                                          1
 
26
 
 
27
#define MAX_FILE_NAME_BUFFER_SIZE                       100
 
28
 
 
29
#define TURN_ON_LED(GPIO, index) do{ \
 
30
                                                        UINT gpio_val = GPIO; \
 
31
                                                        (Adapter->LEDInfo.LEDState[index].BitPolarity == 1) ? \
 
32
                                                        wrmaltWithLock(Adapter,BCM_GPIO_OUTPUT_SET_REG, &gpio_val ,sizeof(gpio_val)) : \
 
33
                                                        wrmaltWithLock(Adapter,BCM_GPIO_OUTPUT_CLR_REG, &gpio_val, sizeof(gpio_val)); \
 
34
                                                }while(0);
 
35
 
 
36
#define TURN_OFF_LED(GPIO, index)  do { \
 
37
                                                        UINT gpio_val = GPIO; \
 
38
                                                        (Adapter->LEDInfo.LEDState[index].BitPolarity == 1) ? \
 
39
                                                        wrmaltWithLock(Adapter,BCM_GPIO_OUTPUT_CLR_REG,&gpio_val ,sizeof(gpio_val)) : \
 
40
                                                        wrmaltWithLock(Adapter,BCM_GPIO_OUTPUT_SET_REG,&gpio_val ,sizeof(gpio_val));  \
 
41
                                                }while(0);
 
42
 
 
43
#define B_ULONG32 unsigned long
 
44
 
 
45
/*******************************************************/
 
46
 
 
47
 
 
48
typedef enum _LEDColors{
 
49
        RED_LED = 1,
 
50
        BLUE_LED = 2,
 
51
        YELLOW_LED = 3,
 
52
        GREEN_LED = 4
 
53
} LEDColors;                            /*Enumerated values of different LED types*/
 
54
 
 
55
typedef enum LedEvents {
 
56
        SHUTDOWN_EXIT = 0x00,
 
57
        DRIVER_INIT = 0x1,
 
58
        FW_DOWNLOAD = 0x2,
 
59
        FW_DOWNLOAD_DONE = 0x4,
 
60
        NO_NETWORK_ENTRY = 0x8,
 
61
        NORMAL_OPERATION = 0x10,
 
62
        LOWPOWER_MODE_ENTER = 0x20,
 
63
        IDLEMODE_CONTINUE = 0x40,
 
64
        IDLEMODE_EXIT = 0x80,
 
65
        LED_THREAD_INACTIVE = 0x100,  //Makes the LED thread Inactivce. It wil be equivallent to putting the thread on hold.
 
66
        LED_THREAD_ACTIVE = 0x200    //Makes the LED Thread Active back.
 
67
} LedEventInfo_t;                       /*Enumerated values of different driver states*/
 
68
 
 
69
#define DRIVER_HALT 0xff
 
70
 
 
71
 
 
72
/*Structure which stores the information of different LED types
 
73
 *  and corresponding LED state information of driver states*/
 
74
typedef struct LedStateInfo_t
 
75
{
 
76
        UCHAR LED_Type; /* specify GPIO number - use 0xFF if not used */
 
77
        UCHAR LED_On_State; /* Bits set or reset for different states */
 
78
        UCHAR LED_Blink_State; /* Bits set or reset for blinking LEDs for different states */
 
79
        UCHAR GPIO_Num;
 
80
        UCHAR                   BitPolarity;                            /*To represent whether H/W is normal polarity or reverse
 
81
                                                                                          polarity*/
 
82
}LEDStateInfo, *pLEDStateInfo;
 
83
 
 
84
 
 
85
typedef struct _LED_INFO_STRUCT
 
86
{
 
87
        LEDStateInfo    LEDState[NUM_OF_LEDS];
 
88
        BOOLEAN                 bIdleMode_tx_from_host; /*Variable to notify whether driver came out
 
89
                                                                                        from idlemode due to Host or target*/
 
90
        BOOLEAN                 bIdle_led_off;
 
91
        wait_queue_head_t   notify_led_event;
 
92
        wait_queue_head_t       idleModeSyncEvent;
 
93
        struct task_struct  *led_cntrl_threadid;
 
94
    int                 led_thread_running;
 
95
        BOOLEAN                 bLedInitDone;
 
96
 
 
97
} LED_INFO_STRUCT, *PLED_INFO_STRUCT;
 
98
//LED Thread state.
 
99
#define BCM_LED_THREAD_DISABLED                          0 //LED Thread is not running.
 
100
#define BCM_LED_THREAD_RUNNING_ACTIVELY          1 //LED thread is running.
 
101
#define BCM_LED_THREAD_RUNNING_INACTIVELY        2 //LED thread has been put on hold
 
102
 
 
103
 
 
104
 
 
105
#endif
 
106