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