summaryrefslogtreecommitdiffstats
path: root/include/linux/leds-lp5521.h
diff options
context:
space:
mode:
authorKim, Milo <Milo.Kim@ti.com>2012-03-23 15:02:09 -0700
committerLinus Torvalds <torvalds@linux-foundation.org>2012-03-23 16:58:34 -0700
commit011af7bc7cd188a0310e2d26cdc2cc5d90148b0c (patch)
tree3f3aa08b555bdcb4c4dfe6e8d4bec9c4205ccd79 /include/linux/leds-lp5521.h
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/leds-lp5521.h')
-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 e9ab583cac3..3f071ec019b 100644
--- a/include/linux/leds-lp5521.h
+++ b/include/linux/leds-lp5521.h
@@ -32,6 +32,15 @@ struct lp5521_led_config {
u8 max_current;
};
+struct lp5521_led_pattern {
+ u8 *r;
+ u8 *g;
+ u8 *b;
+ u8 size_r;
+ u8 size_g;
+ u8 size_b;
+};
+
#define LP5521_CLOCK_AUTO 0
#define LP5521_CLOCK_INT 1
#define LP5521_CLOCK_EXT 2
@@ -57,6 +66,8 @@ struct lp5521_platform_data {
void (*enable)(bool state);
const char *label;
u8 update_config;
+ struct lp5521_led_pattern *patterns;
+ int num_patterns;
};
#endif /* __LINUX_LP5521_H */