blob: ef9b174c37ff7c0ddd28014eb283a4f2ef53914e [file] [log] [blame]
Mohamed Abbasab53d8a2008-03-25 16:33:36 -07001/******************************************************************************
2 *
Reinette Chatre01f81622009-01-08 10:20:02 -08003 * Copyright(c) 2003 - 2009 Intel Corporation. All rights reserved.
Mohamed Abbasab53d8a2008-03-25 16:33:36 -07004 *
5 * This program is free software; you can redistribute it and/or modify it
6 * under the terms of version 2 of the GNU General Public License as
7 * published by the Free Software Foundation.
8 *
9 * This program is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
12 * more details.
13 *
14 * You should have received a copy of the GNU General Public License along with
15 * this program; if not, write to the Free Software Foundation, Inc.,
16 * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
17 *
18 * The full GNU General Public License is included in this distribution in the
19 * file called LICENSE.
20 *
21 * Contact Information:
Winkler, Tomas759ef892008-12-09 11:28:58 -080022 * Intel Linux Wireless <ilw@linux.intel.com>
Mohamed Abbasab53d8a2008-03-25 16:33:36 -070023 * Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497
24 *
25 *****************************************************************************/
26
27#ifndef __iwl_leds_h__
28#define __iwl_leds_h__
29
30
31struct iwl_priv;
32
Abhijeet Kolekar5c8df2d2009-03-11 11:17:55 -070033#ifdef CONFIG_IWLWIFI_LEDS
Mohamed Abbasab53d8a2008-03-25 16:33:36 -070034#include <linux/leds.h>
35
36#define IWL_LED_SOLID 11
37#define IWL_LED_NAME_LEN 31
Harvey Harrisonc1b4aa32009-01-29 13:26:44 -080038#define IWL_DEF_LED_INTRVL cpu_to_le32(1000)
Mohamed Abbasab53d8a2008-03-25 16:33:36 -070039
40#define IWL_LED_ACTIVITY (0<<1)
41#define IWL_LED_LINK (1<<1)
42
43enum led_type {
44 IWL_LED_TRG_TX,
45 IWL_LED_TRG_RX,
46 IWL_LED_TRG_ASSOC,
47 IWL_LED_TRG_RADIO,
48 IWL_LED_TRG_MAX,
49};
Samuel Ortizb5b83232008-12-19 10:37:13 +080050#endif
Mohamed Abbasab53d8a2008-03-25 16:33:36 -070051
Samuel Ortizb5b83232008-12-19 10:37:13 +080052#ifdef CONFIG_IWLWIFI_LEDS
Mohamed Abbasab53d8a2008-03-25 16:33:36 -070053
Tomas Winkler0eee6122008-07-11 11:53:36 +080054struct iwl_led {
Mohamed Abbasab53d8a2008-03-25 16:33:36 -070055 struct iwl_priv *priv;
56 struct led_classdev led_dev;
Sven Wegener5cbbb372008-08-01 21:57:16 +020057 char name[32];
Mohamed Abbasab53d8a2008-03-25 16:33:36 -070058
59 int (*led_on) (struct iwl_priv *priv, int led_id);
60 int (*led_off) (struct iwl_priv *priv, int led_id);
Abhijeet Kolekar3eb20112008-07-11 11:53:42 +080061 int (*led_pattern) (struct iwl_priv *priv, int led_id, unsigned int idx);
Mohamed Abbasab53d8a2008-03-25 16:33:36 -070062
63 enum led_type type;
64 unsigned int registered;
65};
66
67int iwl_leds_register(struct iwl_priv *priv);
68void iwl_leds_unregister(struct iwl_priv *priv);
69void iwl_leds_background(struct iwl_priv *priv);
70
71#else
72static inline int iwl_leds_register(struct iwl_priv *priv)
73{
74 return 0;
75}
76static inline void iwl_leds_unregister(struct iwl_priv *priv)
77{
78}
79static inline void iwl_leds_background(struct iwl_priv *priv)
80{
81}
82
83#endif /* CONFIG_IWLWIFI_LEDS */
84#endif /* __iwl_leds_h__ */