leds: lp5521: restore legacy device attributes
authorMilo Kim <milo.kim@ti.com>
Thu, 8 Aug 2013 04:41:40 +0000 (13:41 +0900)
committerBryan Wu <cooloney@gmail.com>
Tue, 27 Aug 2013 00:22:12 +0000 (17:22 -0700)
commitc0e5e9b542d134eb43ea4ebc83446e6f2f63089a
treed9192fb09ea0e92af6b7d6eca69498efdec034b7
parent36030978f51b596c30188187ffcc8a436cce16f0
leds: lp5521: restore legacy device attributes

git commit 9ce7cb170f97f83a78dc948bf7d25690f15e1328
may cause an application confict, engineN_mode and engineN_load.
This interface should be maintained for compatibility.

Restored device attributes are 'engineN_mode' and 'engineN_load'.
A 'selftest' attribute macro is replaced with LP55xx common macro.

Use a mutex in lp5521_update_program_memory()
: This function is called when an user-application writes a 'engineN_load' file
or pattern data is loaded from generic firmware interface.
So, writing program memory should be protected.
If an error occurs on accessing this area, just it returns as -EINVAL quickly.
This error code is exact same as old driver function, lp5521_do_store_load()
because it should be kept for an user-application compatibility.
Even the driver is changed, we can use the application without re-compiling
sources.

'led_pattern' attribute is not included
: engineN_mode and _load were created for custom user-application.
'led_pattern' is an exception. I added this attribute not for custom application
but for simple test. Now it is used only in LP5562 driver, not LP5521.

Signed-off-by: Milo Kim <milo.kim@ti.com>
Signed-off-by: Bryan Wu <cooloney@gmail.com>
drivers/leds/leds-lp5521.c