summaryrefslogtreecommitdiffstats
path: root/drivers/staging/bcm/led_control.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/staging/bcm/led_control.h')
-rw-r--r--drivers/staging/bcm/led_control.h106
1 files changed, 106 insertions, 0 deletions
diff --git a/drivers/staging/bcm/led_control.h b/drivers/staging/bcm/led_control.h
new file mode 100644
index 0000000..0711ac2
--- /dev/null
+++ b/drivers/staging/bcm/led_control.h
@@ -0,0 +1,106 @@
+#ifndef _LED_CONTROL_H
+#define _LED_CONTROL_H
+
+/*************************TYPE DEF**********************/
+#define NUM_OF_LEDS 4
+
+#define DSD_START_OFFSET 0x0200
+#define EEPROM_VERSION_OFFSET 0x020E
+#define EEPROM_HW_PARAM_POINTER_ADDRESS 0x0218
+#define EEPROM_HW_PARAM_POINTER_ADDRRES_MAP5 0x0220
+#define GPIO_SECTION_START_OFFSET 0x03
+
+#define COMPATIBILITY_SECTION_LENGTH 42
+#define COMPATIBILITY_SECTION_LENGTH_MAP5 84
+
+
+#define EEPROM_MAP5_MAJORVERSION 5
+#define EEPROM_MAP5_MINORVERSION 0
+
+
+#define MAX_NUM_OF_BLINKS 10
+#define NUM_OF_GPIO_PINS 16
+
+#define DISABLE_GPIO_NUM 0xFF
+#define EVENT_SIGNALED 1
+
+#define MAX_FILE_NAME_BUFFER_SIZE 100
+
+#define TURN_ON_LED(GPIO, index) do{ \
+ UINT gpio_val = GPIO; \
+ (Adapter->LEDInfo.LEDState[index].BitPolarity == 1) ? \
+ wrmaltWithLock(Adapter,BCM_GPIO_OUTPUT_SET_REG, &gpio_val ,sizeof(gpio_val)) : \
+ wrmaltWithLock(Adapter,BCM_GPIO_OUTPUT_CLR_REG, &gpio_val, sizeof(gpio_val)); \
+ }while(0);
+
+#define TURN_OFF_LED(GPIO, index) do { \
+ UINT gpio_val = GPIO; \
+ (Adapter->LEDInfo.LEDState[index].BitPolarity == 1) ? \
+ wrmaltWithLock(Adapter,BCM_GPIO_OUTPUT_CLR_REG,&gpio_val ,sizeof(gpio_val)) : \
+ wrmaltWithLock(Adapter,BCM_GPIO_OUTPUT_SET_REG,&gpio_val ,sizeof(gpio_val)); \
+ }while(0);
+
+#define B_ULONG32 unsigned long
+
+/*******************************************************/
+
+
+typedef enum _LEDColors{
+ RED_LED = 1,
+ BLUE_LED = 2,
+ YELLOW_LED = 3,
+ GREEN_LED = 4
+} LEDColors; /*Enumerated values of different LED types*/
+
+typedef enum LedEvents {
+ SHUTDOWN_EXIT = 0x00,
+ DRIVER_INIT = 0x1,
+ FW_DOWNLOAD = 0x2,
+ FW_DOWNLOAD_DONE = 0x4,
+ NO_NETWORK_ENTRY = 0x8,
+ NORMAL_OPERATION = 0x10,
+ LOWPOWER_MODE_ENTER = 0x20,
+ IDLEMODE_CONTINUE = 0x40,
+ IDLEMODE_EXIT = 0x80,
+ LED_THREAD_INACTIVE = 0x100, //Makes the LED thread Inactivce. It wil be equivallent to putting the thread on hold.
+ LED_THREAD_ACTIVE = 0x200 //Makes the LED Thread Active back.
+} LedEventInfo_t; /*Enumerated values of different driver states*/
+
+#define DRIVER_HALT 0xff
+
+
+/*Structure which stores the information of different LED types
+ * and corresponding LED state information of driver states*/
+typedef struct LedStateInfo_t
+{
+ UCHAR LED_Type; /* specify GPIO number - use 0xFF if not used */
+ UCHAR LED_On_State; /* Bits set or reset for different states */
+ UCHAR LED_Blink_State; /* Bits set or reset for blinking LEDs for different states */
+ UCHAR GPIO_Num;
+ UCHAR BitPolarity; /*To represent whether H/W is normal polarity or reverse
+ polarity*/
+}LEDStateInfo, *pLEDStateInfo;
+
+
+typedef struct _LED_INFO_STRUCT
+{
+ LEDStateInfo LEDState[NUM_OF_LEDS];
+ BOOLEAN bIdleMode_tx_from_host; /*Variable to notify whether driver came out
+ from idlemode due to Host or target*/
+ BOOLEAN bIdle_led_off;
+ wait_queue_head_t notify_led_event;
+ wait_queue_head_t idleModeSyncEvent;
+ struct task_struct *led_cntrl_threadid;
+ int led_thread_running;
+ BOOLEAN bLedInitDone;
+
+} LED_INFO_STRUCT, *PLED_INFO_STRUCT;
+//LED Thread state.
+#define BCM_LED_THREAD_DISABLED 0 //LED Thread is not running.
+#define BCM_LED_THREAD_RUNNING_ACTIVELY 1 //LED thread is running.
+#define BCM_LED_THREAD_RUNNING_INACTIVELY 2 //LED thread has been put on hold
+
+
+
+#endif
+
OpenPOWER on IntegriCloud