aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/leds/leds-lp55xx-common.c
diff options
context:
space:
mode:
authorMilo(Woogyom) Kim <milo.kim@ti.com>2013-02-05 04:07:20 -0500
committerBryan Wu <cooloney@gmail.com>2013-02-06 18:59:27 -0500
commita85908dd7799e4fa242812ce27a8f774c721d1fb (patch)
tree673164ea62b7041480a88bda3d8724d2cdb9bf88 /drivers/leds/leds-lp55xx-common.c
parent632418bf65503405df3f9a6a1616f5a95f91db85 (diff)
leds-lp55xx: use lp55xx common init function - platform data
LP5521/5523 platform data functions are moved to lp55xx common driver. New init function, lp55xx_init_device() is created. Signed-off-by: Milo(Woogyom) Kim <milo.kim@ti.com> Signed-off-by: Bryan Wu <cooloney@gmail.com>
Diffstat (limited to 'drivers/leds/leds-lp55xx-common.c')
-rw-r--r--drivers/leds/leds-lp55xx-common.c34
1 files changed, 34 insertions, 0 deletions
diff --git a/drivers/leds/leds-lp55xx-common.c b/drivers/leds/leds-lp55xx-common.c
index 1c716ecfa817..05a854c0d9b2 100644
--- a/drivers/leds/leds-lp55xx-common.c
+++ b/drivers/leds/leds-lp55xx-common.c
@@ -12,6 +12,7 @@
12 * Derived from leds-lp5521.c, leds-lp5523.c 12 * Derived from leds-lp5521.c, leds-lp5523.c
13 */ 13 */
14 14
15#include <linux/delay.h>
15#include <linux/i2c.h> 16#include <linux/i2c.h>
16#include <linux/leds.h> 17#include <linux/leds.h>
17#include <linux/module.h> 18#include <linux/module.h>
@@ -54,6 +55,39 @@ int lp55xx_update_bits(struct lp55xx_chip *chip, u8 reg, u8 mask, u8 val)
54} 55}
55EXPORT_SYMBOL_GPL(lp55xx_update_bits); 56EXPORT_SYMBOL_GPL(lp55xx_update_bits);
56 57
58int lp55xx_init_device(struct lp55xx_chip *chip)
59{
60 struct lp55xx_platform_data *pdata;
61 struct device *dev = &chip->cl->dev;
62 int ret = 0;
63
64 WARN_ON(!chip);
65
66 pdata = chip->pdata;
67
68 if (!pdata)
69 return -EINVAL;
70
71 if (pdata->setup_resources) {
72 ret = pdata->setup_resources();
73 if (ret < 0) {
74 dev_err(dev, "setup resoure err: %d\n", ret);
75 goto err;
76 }
77 }
78
79 if (pdata->enable) {
80 pdata->enable(0);
81 usleep_range(1000, 2000); /* Keep enable down at least 1ms */
82 pdata->enable(1);
83 usleep_range(1000, 2000); /* 500us abs min. */
84 }
85
86err:
87 return ret;
88}
89EXPORT_SYMBOL_GPL(lp55xx_init_device);
90
57MODULE_AUTHOR("Milo Kim <milo.kim@ti.com>"); 91MODULE_AUTHOR("Milo Kim <milo.kim@ti.com>");
58MODULE_DESCRIPTION("LP55xx Common Driver"); 92MODULE_DESCRIPTION("LP55xx Common Driver");
59MODULE_LICENSE("GPL"); 93MODULE_LICENSE("GPL");