Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 333069
b: refs/heads/master
c: 94b43b6
h: refs/heads/master
i:
  333067: 378d199
v: v3
  • Loading branch information
Kim, Milo authored and Bryan Wu committed Sep 11, 2012
1 parent 540760d commit fc3a6c6
Show file tree
Hide file tree
Showing 4 changed files with 27 additions and 7 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 127aedc8ecae2628511533ddeb239e99e4bed5e8
refs/heads/master: 94b43b677104e50b9f8dd75aacb3c69e16089a68
21 changes: 18 additions & 3 deletions trunk/Documentation/leds/leds-lp5523.txt
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,22 @@ Contact: Samu Onkalo (samu.p.onkalo-at-nokia.com)
Description
-----------
LP5523 can drive up to 9 channels. Leds can be controlled directly via
the led class control interface. Channels have generic names:
lp5523:channelx where x is 0...8
the led class control interface.
The name of each channel is configurable in the platform data - name and label.
There are three options to make the channel name.

a) Define the 'name' in the platform data
To make specific channel name, then use 'name' platform data.
/sys/class/leds/R1 (name: 'R1')
/sys/class/leds/B1 (name: 'B1')

b) Use the 'label' with no 'name' field
For one device name with channel number, then use 'label'.
/sys/class/leds/RGB:channelN (label: 'RGB', N: 0 ~ 8)

c) Default
If both fields are NULL, 'lp5523' is used by default.
/sys/class/leds/lp5523:channelN (N: 0 ~ 8)

The chip provides 3 engines. Each engine can control channels without
interaction from the main CPU. Details of the micro engine code can be found
Expand Down Expand Up @@ -46,12 +60,13 @@ Note - chan_nr can have values between 0 and 8.

static struct lp5523_led_config lp5523_led_config[] = {
{
.name = "D1",
.chan_nr = 0,
.led_current = 50,
.max_current = 130,
},
...
}, {
{
.chan_nr = 8,
.led_current = 50,
.max_current = 130,
Expand Down
10 changes: 7 additions & 3 deletions trunk/drivers/leds/leds-lp5523.c
Original file line number Diff line number Diff line change
Expand Up @@ -846,10 +846,14 @@ static int __devinit lp5523_init_led(struct lp5523_led *led, struct device *dev,
return -EINVAL;
}

snprintf(name, sizeof(name), "%s:channel%d",
pdata->label ?: "lp5523", chan);
if (pdata->led_config[chan].name) {
led->cdev.name = pdata->led_config[chan].name;
} else {
snprintf(name, sizeof(name), "%s:channel%d",
pdata->label ?: "lp5523", chan);
led->cdev.name = name;
}

led->cdev.name = name;
led->cdev.brightness_set = lp5523_set_brightness;
res = led_classdev_register(dev, &led->cdev);
if (res < 0) {
Expand Down
1 change: 1 addition & 0 deletions trunk/include/linux/leds-lp5523.h
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
/* See Documentation/leds/leds-lp5523.txt */

struct lp5523_led_config {
const char *name;
u8 chan_nr;
u8 led_current; /* mA x10, 0 if led is not connected */
u8 max_current;
Expand Down

0 comments on commit fc3a6c6

Please sign in to comment.