aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKim, Milo <Milo.Kim@ti.com>2012-03-23 18:02:08 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2012-03-23 19:58:34 -0400
commit5ae4e8a77dc82afcfe8460168ec0b94f4b79a54a (patch)
tree563eb3978832bff9e989b9cc7aa12b3da3f2fa20
parentc5bd2a712a0c7299b61b0e02404b1376f794d251 (diff)
drivers/leds/leds-lp5521.c: add 'name' in the lp5521_led_config
The name of each led channel can be configurable. For the compatibility, the name is set to default value(xx:channelN) when 'name' is not defined. 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>
-rw-r--r--Documentation/leds/leds-lp5521.txt6
-rw-r--r--drivers/leds/leds-lp5521.c11
-rw-r--r--include/linux/leds-lp5521.h1
3 files changed, 15 insertions, 3 deletions
diff --git a/Documentation/leds/leds-lp5521.txt b/Documentation/leds/leds-lp5521.txt
index c4d8d151e0fe..f48ab757d120 100644
--- a/Documentation/leds/leds-lp5521.txt
+++ b/Documentation/leds/leds-lp5521.txt
@@ -43,17 +43,23 @@ Format: 10x mA i.e 10 means 1.0 mA
43example platform data: 43example platform data:
44 44
45Note: chan_nr can have values between 0 and 2. 45Note: chan_nr can have values between 0 and 2.
46The name of each channel can be configurable.
47If the name field is not defined, the default name will be set to 'xxxx:channelN'
48(XXXX : pdata->label or i2c client name, N : channel number)
46 49
47static struct lp5521_led_config lp5521_led_config[] = { 50static struct lp5521_led_config lp5521_led_config[] = {
48 { 51 {
52 .name = "red",
49 .chan_nr = 0, 53 .chan_nr = 0,
50 .led_current = 50, 54 .led_current = 50,
51 .max_current = 130, 55 .max_current = 130,
52 }, { 56 }, {
57 .name = "green",
53 .chan_nr = 1, 58 .chan_nr = 1,
54 .led_current = 0, 59 .led_current = 0,
55 .max_current = 130, 60 .max_current = 130,
56 }, { 61 }, {
62 .name = "blue",
57 .chan_nr = 2, 63 .chan_nr = 2,
58 .led_current = 0, 64 .led_current = 0,
59 .max_current = 130, 65 .max_current = 130,
diff --git a/drivers/leds/leds-lp5521.c b/drivers/leds/leds-lp5521.c
index c42c8f049565..59feecdfe3a8 100644
--- a/drivers/leds/leds-lp5521.c
+++ b/drivers/leds/leds-lp5521.c
@@ -620,10 +620,15 @@ static int __devinit lp5521_init_led(struct lp5521_led *led,
620 return -EINVAL; 620 return -EINVAL;
621 } 621 }
622 622
623 snprintf(name, sizeof(name), "%s:channel%d",
624 pdata->label ?: client->name, chan);
625 led->cdev.brightness_set = lp5521_set_brightness; 623 led->cdev.brightness_set = lp5521_set_brightness;
626 led->cdev.name = name; 624 if (pdata->led_config[chan].name) {
625 led->cdev.name = pdata->led_config[chan].name;
626 } else {
627 snprintf(name, sizeof(name), "%s:channel%d",
628 pdata->label ?: client->name, chan);
629 led->cdev.name = name;
630 }
631
627 res = led_classdev_register(dev, &led->cdev); 632 res = led_classdev_register(dev, &led->cdev);
628 if (res < 0) { 633 if (res < 0) {
629 dev_err(dev, "couldn't register led on channel %d\n", chan); 634 dev_err(dev, "couldn't register led on channel %d\n", chan);
diff --git a/include/linux/leds-lp5521.h b/include/linux/leds-lp5521.h
index fd548d2a8775..e675b8d4c7bf 100644
--- a/include/linux/leds-lp5521.h
+++ b/include/linux/leds-lp5521.h
@@ -26,6 +26,7 @@
26/* See Documentation/leds/leds-lp5521.txt */ 26/* See Documentation/leds/leds-lp5521.txt */
27 27
28struct lp5521_led_config { 28struct lp5521_led_config {
29 char *name;
29 u8 chan_nr; 30 u8 chan_nr;
30 u8 led_current; /* mA x10, 0 if led is not connected */ 31 u8 led_current; /* mA x10, 0 if led is not connected */
31 u8 max_current; 32 u8 max_current;