1423e3ce3SKalle Valo #ifndef B43legacy_LEDS_H_
2423e3ce3SKalle Valo #define B43legacy_LEDS_H_
3423e3ce3SKalle Valo 
4423e3ce3SKalle Valo struct b43legacy_wldev;
5423e3ce3SKalle Valo 
6423e3ce3SKalle Valo #ifdef CONFIG_B43LEGACY_LEDS
7423e3ce3SKalle Valo 
8423e3ce3SKalle Valo #include <linux/types.h>
9423e3ce3SKalle Valo #include <linux/leds.h>
10423e3ce3SKalle Valo 
11423e3ce3SKalle Valo 
12423e3ce3SKalle Valo #define B43legacy_LED_MAX_NAME_LEN	31
13423e3ce3SKalle Valo 
14423e3ce3SKalle Valo struct b43legacy_led {
15423e3ce3SKalle Valo 	struct b43legacy_wldev *dev;
16423e3ce3SKalle Valo 	/* The LED class device */
17423e3ce3SKalle Valo 	struct led_classdev led_dev;
18423e3ce3SKalle Valo 	/* The index number of the LED. */
19423e3ce3SKalle Valo 	u8 index;
20423e3ce3SKalle Valo 	/* If activelow is true, the LED is ON if the
21423e3ce3SKalle Valo 	 * bit is switched off. */
22423e3ce3SKalle Valo 	bool activelow;
23423e3ce3SKalle Valo 	/* The unique name string for this LED device. */
24423e3ce3SKalle Valo 	char name[B43legacy_LED_MAX_NAME_LEN + 1];
25423e3ce3SKalle Valo };
26423e3ce3SKalle Valo 
27423e3ce3SKalle Valo #define B43legacy_LED_BEHAVIOUR		0x7F
28423e3ce3SKalle Valo #define B43legacy_LED_ACTIVELOW		0x80
29423e3ce3SKalle Valo /* LED behaviour values */
30423e3ce3SKalle Valo enum b43legacy_led_behaviour {
31423e3ce3SKalle Valo 	B43legacy_LED_OFF,
32423e3ce3SKalle Valo 	B43legacy_LED_ON,
33423e3ce3SKalle Valo 	B43legacy_LED_ACTIVITY,
34423e3ce3SKalle Valo 	B43legacy_LED_RADIO_ALL,
35423e3ce3SKalle Valo 	B43legacy_LED_RADIO_A,
36423e3ce3SKalle Valo 	B43legacy_LED_RADIO_B,
37423e3ce3SKalle Valo 	B43legacy_LED_MODE_BG,
38423e3ce3SKalle Valo 	B43legacy_LED_TRANSFER,
39423e3ce3SKalle Valo 	B43legacy_LED_APTRANSFER,
40423e3ce3SKalle Valo 	B43legacy_LED_WEIRD,
41423e3ce3SKalle Valo 	B43legacy_LED_ASSOC,
42423e3ce3SKalle Valo 	B43legacy_LED_INACTIVE,
43423e3ce3SKalle Valo };
44423e3ce3SKalle Valo 
45423e3ce3SKalle Valo void b43legacy_leds_init(struct b43legacy_wldev *dev);
46423e3ce3SKalle Valo void b43legacy_leds_exit(struct b43legacy_wldev *dev);
47423e3ce3SKalle Valo 
48423e3ce3SKalle Valo #else /* CONFIG_B43LEGACY_LEDS */
49423e3ce3SKalle Valo /* LED support disabled */
50423e3ce3SKalle Valo 
51423e3ce3SKalle Valo struct b43legacy_led {
52423e3ce3SKalle Valo 	/* empty */
53423e3ce3SKalle Valo };
54423e3ce3SKalle Valo 
55423e3ce3SKalle Valo static inline void b43legacy_leds_init(struct b43legacy_wldev *dev)
56423e3ce3SKalle Valo {
57423e3ce3SKalle Valo }
58423e3ce3SKalle Valo static inline void b43legacy_leds_exit(struct b43legacy_wldev *dev)
59423e3ce3SKalle Valo {
60423e3ce3SKalle Valo }
61423e3ce3SKalle Valo #endif /* CONFIG_B43LEGACY_LEDS */
62423e3ce3SKalle Valo 
63423e3ce3SKalle Valo #endif /* B43legacy_LEDS_H_ */
64