X-Git-Url: http://pilppa.org/gitweb/gitweb.cgi?a=blobdiff_plain;f=include%2Flinux%2Fleds.h;h=519df72e939d30a4355747aa4cea1140b5c3bef9;hb=0e88460da6ab7bb6a7ef83675412ed5b6315d741;hp=b4130ff58d0c1be1543c21281e7189a7383834a5;hpb=5889ba0a6a1174ac38d7045824a2d2ed8e93d756;p=linux-2.6-omap-h63xx.git diff --git a/include/linux/leds.h b/include/linux/leds.h index b4130ff58d0..519df72e939 100644 --- a/include/linux/leds.h +++ b/include/linux/leds.h @@ -35,8 +35,16 @@ struct led_classdev { #define LED_SUSPENDED (1 << 0) /* Set LED brightness level */ + /* Must not sleep, use a workqueue if needed */ void (*brightness_set)(struct led_classdev *led_cdev, enum led_brightness brightness); + /* Get LED brightness level */ + enum led_brightness (*brightness_get)(struct led_classdev *led_cdev); + + /* Activate hardware accelerated blink */ + int (*blink_set)(struct led_classdev *led_cdev, + unsigned long *delay_on, + unsigned long *delay_off); struct device *dev; struct list_head node; /* LED Device list */ @@ -54,7 +62,7 @@ struct led_classdev { extern int led_classdev_register(struct device *parent, struct led_classdev *led_cdev); -extern void led_classdev_unregister(struct led_classdev *led_cdev); +extern void led_classdev_unregister(struct led_classdev *lcd); extern void led_classdev_suspend(struct led_classdev *led_cdev); extern void led_classdev_resume(struct led_classdev *led_cdev); @@ -121,6 +129,9 @@ struct gpio_led { struct gpio_led_platform_data { int num_leds; struct gpio_led *leds; + int (*gpio_blink_set)(unsigned gpio, + unsigned long *delay_on, + unsigned long *delay_off); };