0001
0002
0003
0004
0005
0006
0007
0008 #include <linux/module.h>
0009 #include <linux/kernel.h>
0010 #include <linux/init.h>
0011 #include <linux/leds.h>
0012 #include <linux/usb.h>
0013 #include "common.h"
0014
0015 #define BLINK_DELAY 30
0016
0017 static unsigned long usb_blink_delay = BLINK_DELAY;
0018
0019 DEFINE_LED_TRIGGER(ledtrig_usb_gadget);
0020 DEFINE_LED_TRIGGER(ledtrig_usb_host);
0021
0022 void usb_led_activity(enum usb_led_event ev)
0023 {
0024 struct led_trigger *trig = NULL;
0025
0026 switch (ev) {
0027 case USB_LED_EVENT_GADGET:
0028 trig = ledtrig_usb_gadget;
0029 break;
0030 case USB_LED_EVENT_HOST:
0031 trig = ledtrig_usb_host;
0032 break;
0033 }
0034
0035 led_trigger_blink_oneshot(trig, &usb_blink_delay, &usb_blink_delay, 0);
0036 }
0037 EXPORT_SYMBOL_GPL(usb_led_activity);
0038
0039
0040 void __init ledtrig_usb_init(void)
0041 {
0042 led_trigger_register_simple("usb-gadget", &ledtrig_usb_gadget);
0043 led_trigger_register_simple("usb-host", &ledtrig_usb_host);
0044 }
0045
0046 void __exit ledtrig_usb_exit(void)
0047 {
0048 led_trigger_unregister_simple(ledtrig_usb_gadget);
0049 led_trigger_unregister_simple(ledtrig_usb_host);
0050 }