Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6
[pandora-kernel.git] / include / linux / leds.h
index 00f89fd..519df72 100644 (file)
@@ -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,15 +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, bool sus);
-static inline void led_classdev_unregister(struct led_classdev *lcd)
-{
-       __led_classdev_unregister(lcd, false);
-}
-static inline void led_classdev_unregister_suspended(struct led_classdev *lcd)
-{
-       __led_classdev_unregister(lcd, true);
-}
+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);
 
@@ -129,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);
 };