diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-10-10 07:14:07 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-10-10 07:14:07 -0400 |
commit | c7a6ced9d8e8411bdafe83998474d185a79badc3 (patch) | |
tree | bf9a230bfc99165b9d8fa9ed9fc453619bd4a9fb /include | |
parent | a188e7e93a36627fb3f0013f41857ab54f076d04 (diff) | |
parent | 2f73c3927318abe3d7fcaecadfbad89e2d12f881 (diff) |
Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/cooloney/linux-leds
Pull LED subsystem update from Bryan Wu.
* 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/cooloney/linux-leds: (24 commits)
leds: add output driver configuration for pca9633 led driver
leds: lm3642: Use regmap_update_bits() in lm3642_chip_init()
leds: Add new LED driver for lm3642 chips
leds-lp5523: Fix riskiness of the page fault
leds-lp5523: turn off the LED engines on unloading the driver
leds-lm3530: Fix smatch warnings
leds-lm3530: Use devm_regulator_get function
leds: leds-gpio: adopt pinctrl support
leds: Add new LED driver for lm355x chips
leds-lp5523: use the i2c device id rather than fixed name
leds-lp5523: add new device id for LP55231
leds-lp5523: support new LP55231 device
leds: triggers: send uevent when changing triggers
leds-lp5523: minor code style fixes
leds-lp5523: change the return type of lp5523_set_mode()
leds-lp5523: set the brightness to 0 forcely on removing the driver
leds-lp5523: add channel name in the platform data
leds: leds-gpio: Use of_get_child_count() helper
leds: leds-gpio: Use platform_{get,set}_drvdata
leds: leds-gpio: use of_match_ptr()
...
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/leds-lp5523.h | 1 | ||||
-rw-r--r-- | include/linux/leds.h | 4 | ||||
-rw-r--r-- | include/linux/platform_data/leds-lm3556.h | 50 | ||||
-rw-r--r-- | include/linux/platform_data/leds-lm355x.h | 66 | ||||
-rw-r--r-- | include/linux/platform_data/leds-lm3642.h | 38 | ||||
-rw-r--r-- | include/linux/platform_data/leds-pca9633.h | 35 |
6 files changed, 144 insertions, 50 deletions
diff --git a/include/linux/leds-lp5523.h b/include/linux/leds-lp5523.h index 2694289babd0..727877fb406d 100644 --- a/include/linux/leds-lp5523.h +++ b/include/linux/leds-lp5523.h | |||
@@ -26,6 +26,7 @@ | |||
26 | /* See Documentation/leds/leds-lp5523.txt */ | 26 | /* See Documentation/leds/leds-lp5523.txt */ |
27 | 27 | ||
28 | struct lp5523_led_config { | 28 | struct lp5523_led_config { |
29 | const 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; |
diff --git a/include/linux/leds.h b/include/linux/leds.h index c6f8dad2ceb0..6e53bb31c220 100644 --- a/include/linux/leds.h +++ b/include/linux/leds.h | |||
@@ -16,6 +16,7 @@ | |||
16 | #include <linux/spinlock.h> | 16 | #include <linux/spinlock.h> |
17 | #include <linux/rwsem.h> | 17 | #include <linux/rwsem.h> |
18 | #include <linux/timer.h> | 18 | #include <linux/timer.h> |
19 | #include <linux/workqueue.h> | ||
19 | 20 | ||
20 | struct device; | 21 | struct device; |
21 | /* | 22 | /* |
@@ -69,6 +70,9 @@ struct led_classdev { | |||
69 | struct timer_list blink_timer; | 70 | struct timer_list blink_timer; |
70 | int blink_brightness; | 71 | int blink_brightness; |
71 | 72 | ||
73 | struct work_struct set_brightness_work; | ||
74 | int delayed_set_value; | ||
75 | |||
72 | #ifdef CONFIG_LEDS_TRIGGERS | 76 | #ifdef CONFIG_LEDS_TRIGGERS |
73 | /* Protects the trigger data below */ | 77 | /* Protects the trigger data below */ |
74 | struct rw_semaphore trigger_lock; | 78 | struct rw_semaphore trigger_lock; |
diff --git a/include/linux/platform_data/leds-lm3556.h b/include/linux/platform_data/leds-lm3556.h deleted file mode 100644 index 4b4e7d6b0527..000000000000 --- a/include/linux/platform_data/leds-lm3556.h +++ /dev/null | |||
@@ -1,50 +0,0 @@ | |||
1 | /* | ||
2 | * Simple driver for Texas Instruments LM3556 LED Flash driver chip (Rev0x03) | ||
3 | * Copyright (C) 2012 Texas Instruments | ||
4 | * | ||
5 | * This program is free software; you can redistribute it and/or modify | ||
6 | * it under the terms of the GNU General Public License version 2 as | ||
7 | * published by the Free Software Foundation. | ||
8 | * | ||
9 | */ | ||
10 | |||
11 | #ifndef __LINUX_LM3556_H | ||
12 | #define __LINUX_LM3556_H | ||
13 | |||
14 | #define LM3556_NAME "leds-lm3556" | ||
15 | |||
16 | enum lm3556_pin_polarity { | ||
17 | PIN_LOW_ACTIVE = 0, | ||
18 | PIN_HIGH_ACTIVE, | ||
19 | }; | ||
20 | |||
21 | enum lm3556_pin_enable { | ||
22 | PIN_DISABLED = 0, | ||
23 | PIN_ENABLED, | ||
24 | }; | ||
25 | |||
26 | enum lm3556_strobe_usuage { | ||
27 | STROBE_EDGE_DETECT = 0, | ||
28 | STROBE_LEVEL_DETECT, | ||
29 | }; | ||
30 | |||
31 | enum lm3556_indic_mode { | ||
32 | INDIC_MODE_INTERNAL = 0, | ||
33 | INDIC_MODE_EXTERNAL, | ||
34 | }; | ||
35 | |||
36 | struct lm3556_platform_data { | ||
37 | enum lm3556_pin_enable torch_pin_en; | ||
38 | enum lm3556_pin_polarity torch_pin_polarity; | ||
39 | |||
40 | enum lm3556_strobe_usuage strobe_usuage; | ||
41 | enum lm3556_pin_enable strobe_pin_en; | ||
42 | enum lm3556_pin_polarity strobe_pin_polarity; | ||
43 | |||
44 | enum lm3556_pin_enable tx_pin_en; | ||
45 | enum lm3556_pin_polarity tx_pin_polarity; | ||
46 | |||
47 | enum lm3556_indic_mode indicator_mode; | ||
48 | }; | ||
49 | |||
50 | #endif /* __LINUX_LM3556_H */ | ||
diff --git a/include/linux/platform_data/leds-lm355x.h b/include/linux/platform_data/leds-lm355x.h new file mode 100644 index 000000000000..b88724bb0b46 --- /dev/null +++ b/include/linux/platform_data/leds-lm355x.h | |||
@@ -0,0 +1,66 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2012 Texas Instruments | ||
3 | * | ||
4 | * License Terms: GNU General Public License v2 | ||
5 | * | ||
6 | * Simple driver for Texas Instruments LM355x LED driver chip | ||
7 | * | ||
8 | * Author: G.Shark Jeong <gshark.jeong@gmail.com> | ||
9 | * Daniel Jeong <daniel.jeong@ti.com> | ||
10 | */ | ||
11 | |||
12 | #define LM355x_NAME "leds-lm355x" | ||
13 | #define LM3554_NAME "leds-lm3554" | ||
14 | #define LM3556_NAME "leds-lm3556" | ||
15 | |||
16 | /* lm3554 : strobe def. on */ | ||
17 | enum lm355x_strobe { | ||
18 | LM355x_PIN_STROBE_DISABLE = 0x00, | ||
19 | LM355x_PIN_STROBE_ENABLE = 0x01, | ||
20 | }; | ||
21 | |||
22 | enum lm355x_torch { | ||
23 | LM355x_PIN_TORCH_DISABLE = 0, | ||
24 | LM3554_PIN_TORCH_ENABLE = 0x80, | ||
25 | LM3556_PIN_TORCH_ENABLE = 0x10, | ||
26 | }; | ||
27 | |||
28 | enum lm355x_tx2 { | ||
29 | LM355x_PIN_TX_DISABLE = 0, | ||
30 | LM3554_PIN_TX_ENABLE = 0x20, | ||
31 | LM3556_PIN_TX_ENABLE = 0x40, | ||
32 | }; | ||
33 | |||
34 | enum lm355x_ntc { | ||
35 | LM355x_PIN_NTC_DISABLE = 0, | ||
36 | LM3554_PIN_NTC_ENABLE = 0x08, | ||
37 | LM3556_PIN_NTC_ENABLE = 0x80, | ||
38 | }; | ||
39 | |||
40 | enum lm355x_pmode { | ||
41 | LM355x_PMODE_DISABLE = 0, | ||
42 | LM355x_PMODE_ENABLE = 0x04, | ||
43 | }; | ||
44 | |||
45 | /* | ||
46 | * struct lm3554_platform_data | ||
47 | * @pin_strobe: strobe input | ||
48 | * @pin_torch : input pin | ||
49 | * lm3554-tx1/torch/gpio1 | ||
50 | * lm3556-torch | ||
51 | * @pin_tx2 : input pin | ||
52 | * lm3554-envm/tx2/gpio2 | ||
53 | * lm3556-tx pin | ||
54 | * @ntc_pin : output pin | ||
55 | * lm3554-ledi/ntc | ||
56 | * lm3556-temp pin | ||
57 | * @pass_mode : pass mode | ||
58 | */ | ||
59 | struct lm355x_platform_data { | ||
60 | enum lm355x_strobe pin_strobe; | ||
61 | enum lm355x_torch pin_tx1; | ||
62 | enum lm355x_tx2 pin_tx2; | ||
63 | enum lm355x_ntc ntc_pin; | ||
64 | |||
65 | enum lm355x_pmode pass_mode; | ||
66 | }; | ||
diff --git a/include/linux/platform_data/leds-lm3642.h b/include/linux/platform_data/leds-lm3642.h new file mode 100644 index 000000000000..72d6ee6ade57 --- /dev/null +++ b/include/linux/platform_data/leds-lm3642.h | |||
@@ -0,0 +1,38 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2012 Texas Instruments | ||
3 | * | ||
4 | * License Terms: GNU General Public License v2 | ||
5 | * | ||
6 | * Simple driver for Texas Instruments LM3642 LED driver chip | ||
7 | * | ||
8 | * Author: G.Shark Jeong <gshark.jeong@gmail.com> | ||
9 | * Daniel Jeong <daniel.jeong@ti.com> | ||
10 | */ | ||
11 | |||
12 | #ifndef __LINUX_LM3642_H | ||
13 | #define __LINUX_LM3642_H | ||
14 | |||
15 | #define LM3642_NAME "leds-lm3642" | ||
16 | |||
17 | enum lm3642_torch_pin_enable { | ||
18 | LM3642_TORCH_PIN_DISABLE = 0x00, | ||
19 | LM3642_TORCH_PIN_ENABLE = 0x10, | ||
20 | }; | ||
21 | |||
22 | enum lm3642_strobe_pin_enable { | ||
23 | LM3642_STROBE_PIN_DISABLE = 0x00, | ||
24 | LM3642_STROBE_PIN_ENABLE = 0x20, | ||
25 | }; | ||
26 | |||
27 | enum lm3642_tx_pin_enable { | ||
28 | LM3642_TX_PIN_DISABLE = 0x00, | ||
29 | LM3642_TX_PIN_ENABLE = 0x40, | ||
30 | }; | ||
31 | |||
32 | struct lm3642_platform_data { | ||
33 | enum lm3642_torch_pin_enable torch_pin; | ||
34 | enum lm3642_strobe_pin_enable strobe_pin; | ||
35 | enum lm3642_tx_pin_enable tx_pin; | ||
36 | }; | ||
37 | |||
38 | #endif /* __LINUX_LM3642_H */ | ||
diff --git a/include/linux/platform_data/leds-pca9633.h b/include/linux/platform_data/leds-pca9633.h new file mode 100644 index 000000000000..c5bf29b6fa7f --- /dev/null +++ b/include/linux/platform_data/leds-pca9633.h | |||
@@ -0,0 +1,35 @@ | |||
1 | /* | ||
2 | * PCA9633 LED chip driver. | ||
3 | * | ||
4 | * Copyright 2012 bct electronic GmbH | ||
5 | * | ||
6 | * This program is free software; you can redistribute it and/or | ||
7 | * modify it under the terms of the GNU General Public License | ||
8 | * version 2 as published by the Free Software Foundation. | ||
9 | * | ||
10 | * This program is distributed in the hope that it will be useful, but | ||
11 | * WITHOUT ANY WARRANTY; without even the implied warranty of | ||
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
13 | * General Public License for more details. | ||
14 | * | ||
15 | * You should have received a copy of the GNU General Public License | ||
16 | * along with this program; if not, write to the Free Software | ||
17 | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA | ||
18 | * 02110-1301 USA | ||
19 | */ | ||
20 | |||
21 | #ifndef __LINUX_PCA9633_H | ||
22 | #define __LINUX_PCA9633_H | ||
23 | #include <linux/leds.h> | ||
24 | |||
25 | enum pca9633_outdrv { | ||
26 | PCA9633_OPEN_DRAIN, | ||
27 | PCA9633_TOTEM_POLE, /* aka push-pull */ | ||
28 | }; | ||
29 | |||
30 | struct pca9633_platform_data { | ||
31 | struct led_platform_data leds; | ||
32 | enum pca9633_outdrv outdrv; | ||
33 | }; | ||
34 | |||
35 | #endif /* __LINUX_PCA9633_H*/ | ||