bcm43xx_leds.h 1.15 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
#ifndef BCM43xx_LEDS_H_
#define BCM43xx_LEDS_H_

#include <linux/types.h>
#include <linux/timer.h>


struct bcm43xx_led {
	u8 behaviour:7;
	u8 activelow:1;

	struct bcm43xx_private *bcm;
	struct timer_list blink_timer;
	unsigned long blink_interval;
};
#define bcm43xx_led_index(led)	((int)((led) - (led)->bcm->leds))

/* Delay between state changes when blinking in jiffies */
#define BCM43xx_LEDBLINK_SLOW		(HZ / 2)
#define BCM43xx_LEDBLINK_MEDIUM		(HZ / 4)
#define BCM43xx_LEDBLINK_FAST		(HZ / 8)

#define BCM43xx_LED_XFER_THRES		(HZ / 100)

#define BCM43xx_LED_BEHAVIOUR		0x7F
#define BCM43xx_LED_ACTIVELOW		0x80
enum { /* LED behaviour values */
	BCM43xx_LED_OFF,
	BCM43xx_LED_ON,
	BCM43xx_LED_ACTIVITY,
	BCM43xx_LED_RADIO_ALL,
	BCM43xx_LED_RADIO_A,
	BCM43xx_LED_RADIO_B,
	BCM43xx_LED_MODE_BG,
	BCM43xx_LED_TRANSFER,
	BCM43xx_LED_APTRANSFER,
	BCM43xx_LED_WEIRD,//FIXME
	BCM43xx_LED_ASSOC,
	BCM43xx_LED_INACTIVE,
};

int bcm43xx_leds_init(struct bcm43xx_private *bcm);
void bcm43xx_leds_exit(struct bcm43xx_private *bcm);
void bcm43xx_leds_update(struct bcm43xx_private *bcm, int activity);
void bcm43xx_leds_turn_off(struct bcm43xx_private *bcm);

#endif /* BCM43xx_LEDS_H_ */