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