drivers/leds/leds-lp5521.c: support led pattern data
authorKim, Milo <Milo.Kim@ti.com>
Fri, 23 Mar 2012 22:02:09 +0000 (15:02 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Fri, 23 Mar 2012 23:58:34 +0000 (16:58 -0700)
commit011af7bc7cd188a0310e2d26cdc2cc5d90148b0c
tree3f3aa08b555bdcb4c4dfe6e8d4bec9c4205ccd79
parent3b49aacd0e56d5bf1b511f6554f17cd65eb8da64
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>
Documentation/leds/leds-lp5521.txt
drivers/leds/leds-lp5521.c
include/linux/leds-lp5521.h