1b2441318SGreg 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