aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Documentation/devicetree/bindings/leds/leds-lp55xx.txt10
-rw-r--r--drivers/leds/leds-lp55xx-common.c3
-rw-r--r--include/linux/platform_data/leds-lp55xx.h1
3 files changed, 11 insertions, 3 deletions
diff --git a/Documentation/devicetree/bindings/leds/leds-lp55xx.txt b/Documentation/devicetree/bindings/leds/leds-lp55xx.txt
index a61727f9a6d1..d221e75d90fa 100644
--- a/Documentation/devicetree/bindings/leds/leds-lp55xx.txt
+++ b/Documentation/devicetree/bindings/leds/leds-lp55xx.txt
@@ -17,12 +17,15 @@ Optional properties:
17 2: D1~6 with VOUT, D7~9 with VDD 17 2: D1~6 with VOUT, D7~9 with VDD
18 3: D1~9 are connected to VOUT 18 3: D1~9 are connected to VOUT
19 19
20Alternatively, each child can have specific channel name 20Alternatively, each child can have a specific channel name and trigger:
21- chan-name: Name of each channel name 21- chan-name (optional): name of channel
22- linux,default-trigger (optional): see
23 Documentation/devicetree/bindings/leds/common.txt
22 24
23example 1) LP5521 25example 1) LP5521
243 LED channels, external clock used. Channel names are 'lp5521_pri:channel0', 263 LED channels, external clock used. Channel names are 'lp5521_pri:channel0',
25'lp5521_pri:channel1' and 'lp5521_pri:channel2' 27'lp5521_pri:channel1' and 'lp5521_pri:channel2', with a heartbeat trigger
28on channel 0.
26 29
27lp5521@32 { 30lp5521@32 {
28 compatible = "national,lp5521"; 31 compatible = "national,lp5521";
@@ -33,6 +36,7 @@ lp5521@32 {
33 chan0 { 36 chan0 {
34 led-cur = /bits/ 8 <0x2f>; 37 led-cur = /bits/ 8 <0x2f>;
35 max-cur = /bits/ 8 <0x5f>; 38 max-cur = /bits/ 8 <0x5f>;
39 linux,default-trigger = "heartbeat";
36 }; 40 };
37 41
38 chan1 { 42 chan1 {
diff --git a/drivers/leds/leds-lp55xx-common.c b/drivers/leds/leds-lp55xx-common.c
index 351825b96f16..075acf5b9fab 100644
--- a/drivers/leds/leds-lp55xx-common.c
+++ b/drivers/leds/leds-lp55xx-common.c
@@ -165,6 +165,7 @@ static int lp55xx_init_led(struct lp55xx_led *led,
165 led->led_current = pdata->led_config[chan].led_current; 165 led->led_current = pdata->led_config[chan].led_current;
166 led->max_current = pdata->led_config[chan].max_current; 166 led->max_current = pdata->led_config[chan].max_current;
167 led->chan_nr = pdata->led_config[chan].chan_nr; 167 led->chan_nr = pdata->led_config[chan].chan_nr;
168 led->cdev.default_trigger = pdata->led_config[chan].default_trigger;
168 169
169 if (led->chan_nr >= max_channel) { 170 if (led->chan_nr >= max_channel) {
170 dev_err(dev, "Use channel numbers between 0 and %d\n", 171 dev_err(dev, "Use channel numbers between 0 and %d\n",
@@ -586,6 +587,8 @@ int lp55xx_of_populate_pdata(struct device *dev, struct device_node *np)
586 of_property_read_string(child, "chan-name", &cfg[i].name); 587 of_property_read_string(child, "chan-name", &cfg[i].name);
587 of_property_read_u8(child, "led-cur", &cfg[i].led_current); 588 of_property_read_u8(child, "led-cur", &cfg[i].led_current);
588 of_property_read_u8(child, "max-cur", &cfg[i].max_current); 589 of_property_read_u8(child, "max-cur", &cfg[i].max_current);
590 cfg[i].default_trigger =
591 of_get_property(child, "linux,default-trigger", NULL);
589 592
590 i++; 593 i++;
591 } 594 }
diff --git a/include/linux/platform_data/leds-lp55xx.h b/include/linux/platform_data/leds-lp55xx.h
index 51a2ff579d60..c32de4dcec54 100644
--- a/include/linux/platform_data/leds-lp55xx.h
+++ b/include/linux/platform_data/leds-lp55xx.h
@@ -22,6 +22,7 @@
22 22
23struct lp55xx_led_config { 23struct lp55xx_led_config {
24 const char *name; 24 const char *name;
25 const char *default_trigger;
25 u8 chan_nr; 26 u8 chan_nr;
26 u8 led_current; /* mA x10, 0 if led is not connected */ 27 u8 led_current; /* mA x10, 0 if led is not connected */
27 u8 max_current; 28 u8 max_current;