diff options
author | Kim, Milo <Milo.Kim@ti.com> | 2012-03-23 18:02:08 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-03-23 19:58:34 -0400 |
commit | 5ae4e8a77dc82afcfe8460168ec0b94f4b79a54a (patch) | |
tree | 563eb3978832bff9e989b9cc7aa12b3da3f2fa20 | |
parent | c5bd2a712a0c7299b61b0e02404b1376f794d251 (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.txt | 6 | ||||
-rw-r--r-- | drivers/leds/leds-lp5521.c | 11 | ||||
-rw-r--r-- | include/linux/leds-lp5521.h | 1 |
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 | |||
43 | example platform data: | 43 | example platform data: |
44 | 44 | ||
45 | Note: chan_nr can have values between 0 and 2. | 45 | Note: chan_nr can have values between 0 and 2. |
46 | The name of each channel can be configurable. | ||
47 | If 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 | ||
47 | static struct lp5521_led_config lp5521_led_config[] = { | 50 | static 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 | ||
28 | struct lp5521_led_config { | 28 | struct 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; |