162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */ 262306a36Sopenharmony_ci#ifndef B43legacy_LEDS_H_ 362306a36Sopenharmony_ci#define B43legacy_LEDS_H_ 462306a36Sopenharmony_ci 562306a36Sopenharmony_cistruct b43legacy_wldev; 662306a36Sopenharmony_ci 762306a36Sopenharmony_ci#ifdef CONFIG_B43LEGACY_LEDS 862306a36Sopenharmony_ci 962306a36Sopenharmony_ci#include <linux/types.h> 1062306a36Sopenharmony_ci#include <linux/leds.h> 1162306a36Sopenharmony_ci 1262306a36Sopenharmony_ci 1362306a36Sopenharmony_ci#define B43legacy_LED_MAX_NAME_LEN 31 1462306a36Sopenharmony_ci 1562306a36Sopenharmony_cistruct b43legacy_led { 1662306a36Sopenharmony_ci struct b43legacy_wldev *dev; 1762306a36Sopenharmony_ci /* The LED class device */ 1862306a36Sopenharmony_ci struct led_classdev led_dev; 1962306a36Sopenharmony_ci /* The index number of the LED. */ 2062306a36Sopenharmony_ci u8 index; 2162306a36Sopenharmony_ci /* If activelow is true, the LED is ON if the 2262306a36Sopenharmony_ci * bit is switched off. */ 2362306a36Sopenharmony_ci bool activelow; 2462306a36Sopenharmony_ci /* The unique name string for this LED device. */ 2562306a36Sopenharmony_ci char name[B43legacy_LED_MAX_NAME_LEN + 1]; 2662306a36Sopenharmony_ci}; 2762306a36Sopenharmony_ci 2862306a36Sopenharmony_ci#define B43legacy_LED_BEHAVIOUR 0x7F 2962306a36Sopenharmony_ci#define B43legacy_LED_ACTIVELOW 0x80 3062306a36Sopenharmony_ci/* LED behaviour values */ 3162306a36Sopenharmony_cienum b43legacy_led_behaviour { 3262306a36Sopenharmony_ci B43legacy_LED_OFF, 3362306a36Sopenharmony_ci B43legacy_LED_ON, 3462306a36Sopenharmony_ci B43legacy_LED_ACTIVITY, 3562306a36Sopenharmony_ci B43legacy_LED_RADIO_ALL, 3662306a36Sopenharmony_ci B43legacy_LED_RADIO_A, 3762306a36Sopenharmony_ci B43legacy_LED_RADIO_B, 3862306a36Sopenharmony_ci B43legacy_LED_MODE_BG, 3962306a36Sopenharmony_ci B43legacy_LED_TRANSFER, 4062306a36Sopenharmony_ci B43legacy_LED_APTRANSFER, 4162306a36Sopenharmony_ci B43legacy_LED_WEIRD, 4262306a36Sopenharmony_ci B43legacy_LED_ASSOC, 4362306a36Sopenharmony_ci B43legacy_LED_INACTIVE, 4462306a36Sopenharmony_ci}; 4562306a36Sopenharmony_ci 4662306a36Sopenharmony_civoid b43legacy_leds_init(struct b43legacy_wldev *dev); 4762306a36Sopenharmony_civoid b43legacy_leds_exit(struct b43legacy_wldev *dev); 4862306a36Sopenharmony_ci 4962306a36Sopenharmony_ci#else /* CONFIG_B43LEGACY_LEDS */ 5062306a36Sopenharmony_ci/* LED support disabled */ 5162306a36Sopenharmony_ci 5262306a36Sopenharmony_cistruct b43legacy_led { 5362306a36Sopenharmony_ci /* empty */ 5462306a36Sopenharmony_ci}; 5562306a36Sopenharmony_ci 5662306a36Sopenharmony_cistatic inline void b43legacy_leds_init(struct b43legacy_wldev *dev) 5762306a36Sopenharmony_ci{ 5862306a36Sopenharmony_ci} 5962306a36Sopenharmony_cistatic inline void b43legacy_leds_exit(struct b43legacy_wldev *dev) 6062306a36Sopenharmony_ci{ 6162306a36Sopenharmony_ci} 6262306a36Sopenharmony_ci#endif /* CONFIG_B43LEGACY_LEDS */ 6362306a36Sopenharmony_ci 6462306a36Sopenharmony_ci#endif /* B43legacy_LEDS_H_ */ 65