LEDS: leds-pwm: Add init, notfiy and exit callbacks
[kernel.git] / include / linux / leds_pwm.h
1 /*
2  * PWM LED driver data - see drivers/leds/leds-pwm.c
3  */
4 #ifndef __LINUX_LEDS_PWM_H
5 #define __LINUX_LEDS_PWM_H
6
7 struct led_pwm {
8         const char      *name;
9         const char      *default_trigger;
10         unsigned        pwm_id;
11         u8              active_low;
12         unsigned        max_brightness;
13         unsigned        pwm_period_ns;
14 };
15
16 struct led_pwm_platform_data {
17         int                     num_leds;
18         struct led_pwm  *leds;
19
20         /* @init: The init callback is called after the pwm device for a led has
21          * been successfully configured. If the return value is negative it will be
22          * seen as an error and initzalisation of the leds-pwm device will fail.
23          */
24         int (*init)(struct device *dev, struct led_pwm *led);
25
26         /* @notify: The notify callback is called whenever the brightness of a led
27          * is changed.
28          * The return value of the callback will be the brightness which is used to
29          * configure the pwm device.
30          */
31         enum led_brightness (*notify)(struct device *dev, struct led_pwm *led,
32             enum led_brightness brightness);
33
34         /* @exit: The exit callback is called, whenever a led device registered by
35          * the leds-pwm device is unregistered. It will be called prior to freeing
36          * the pwm device.
37          */
38         void (*exit)(struct device *dev, struct led_pwm *led);
39 };
40
41 #endif