aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux
diff options
context:
space:
mode:
authorKim, Milo <Milo.Kim@ti.com>2012-03-23 18:02:09 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2012-03-23 19:58:34 -0400
commit011af7bc7cd188a0310e2d26cdc2cc5d90148b0c (patch)
tree3f3aa08b555bdcb4c4dfe6e8d4bec9c4205ccd79 /include/linux
parent3b49aacd0e56d5bf1b511f6554f17cd65eb8da64 (diff)
drivers/leds/leds-lp5521.c: support led pattern data
The lp5521 has autonomous operation mode without external control. Using lp5521_platform_data, various led patterns can be configurable. For supporting this feature, new functions and device attribute are added. Structure of lp5521_led_pattern: 3 channels are supported - red, green and blue. Pattern(s) of each channel and numbers of pattern(s) are defined in the pla= tform data. Pattern data are hexa codes which include pattern commands such like set pwm, wait, ramp up/down, branch and so on. Pattern mode functions: * lp5521_clear_program_memory Before running new led pattern, program memory should be cleared. * lp5521_write_program_memory Pattern data updated in the program memory via the i2c. * lp5521_get_pattern Get pattern from predefined in the platform data. * lp5521_run_led_pattern Stop current pattern or run new pattern. Transition time is required between different operation mode. Device attribute - 'led_pattern': To load specific led pattern, new device attribute is added. When the lp5521 driver is unloaded, stop current led pattern mode. Documentation updated : description about how to define the led patterns and example. [akpm@linux-foundation.org: checkpatch fixes] Signed-off-by: Milo(Woogyom) Kim <milo.kim@ti.com> Acked-by: Linus Walleij <linus.walleij@linaro.org> Cc: Arun MURTHY <arun.murthy@stericsson.com> Cc: Srinidhi Kasagar <srinidhi.kasagar@stericsson.com> Cc: Richard Purdie <rpurdie@rpsys.net> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/leds-lp5521.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/include/linux/leds-lp5521.h b/include/linux/leds-lp5521.h
index e9ab583cac36..3f071ec019b2 100644
--- a/include/linux/leds-lp5521.h
+++ b/include/linux/leds-lp5521.h
@@ -32,6 +32,15 @@ struct lp5521_led_config {
32 u8 max_current; 32 u8 max_current;
33}; 33};
34 34
35struct lp5521_led_pattern {
36 u8 *r;
37 u8 *g;
38 u8 *b;
39 u8 size_r;
40 u8 size_g;
41 u8 size_b;
42};
43
35#define LP5521_CLOCK_AUTO 0 44#define LP5521_CLOCK_AUTO 0
36#define LP5521_CLOCK_INT 1 45#define LP5521_CLOCK_INT 1
37#define LP5521_CLOCK_EXT 2 46#define LP5521_CLOCK_EXT 2
@@ -57,6 +66,8 @@ struct lp5521_platform_data {
57 void (*enable)(bool state); 66 void (*enable)(bool state);
58 const char *label; 67 const char *label;
59 u8 update_config; 68 u8 update_config;
69 struct lp5521_led_pattern *patterns;
70 int num_patterns;
60}; 71};
61 72
62#endif /* __LINUX_LP5521_H */ 73#endif /* __LINUX_LP5521_H */