]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - include/linux/leds.h
leds: allow led-drivers to use a variable range of brightness values
[karo-tx-linux.git] / include / linux / leds.h
index 519df72e939d30a4355747aa4cea1140b5c3bef9..17d277e0c4a645d6be61bfffb84539f36cacace5 100644 (file)
@@ -30,9 +30,13 @@ enum led_brightness {
 struct led_classdev {
        const char              *name;
        int                      brightness;
+       int                      max_brightness;
        int                      flags;
 
+       /* Lower 16 bits reflect status */
 #define LED_SUSPENDED          (1 << 0)
+       /* Upper 16 bits reflect control information */
+#define LED_CORE_SUSPENDRESUME (1 << 16)
 
        /* Set LED brightness level */
        /* Must not sleep, use a workqueue if needed */
@@ -48,7 +52,7 @@ struct led_classdev {
 
        struct device           *dev;
        struct list_head         node;                  /* LED Device list */
-       char                    *default_trigger;       /* Trigger to use */
+       const char              *default_trigger;       /* Trigger to use */
 
 #ifdef CONFIG_LEDS_TRIGGERS
        /* Protects the trigger data below */
@@ -62,7 +66,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 *lcd);
+extern void led_classdev_unregister(struct led_classdev *led_cdev);
 extern void led_classdev_suspend(struct led_classdev *led_cdev);
 extern void led_classdev_resume(struct led_classdev *led_cdev);
 
@@ -118,10 +122,24 @@ extern void ledtrig_ide_activity(void);
 #define ledtrig_ide_activity() do {} while(0)
 #endif
 
+/*
+ * Generic LED platform data for describing LED names and default triggers.
+ */
+struct led_info {
+       const char      *name;
+       const char      *default_trigger;
+       int             flags;
+};
+
+struct led_platform_data {
+       int             num_leds;
+       struct led_info *leds;
+};
+
 /* For the leds-gpio driver */
 struct gpio_led {
        const char *name;
-       char *default_trigger;
+       const char *default_trigger;
        unsigned        gpio;
        u8              active_low;
 };