diff options
author | Linus Walleij <linus.walleij@linaro.org> | 2013-04-23 13:52:59 +0200 |
---|---|---|
committer | Bryan Wu <cooloney@gmail.com> | 2013-06-21 01:21:31 +0200 |
commit | 7542a04b1515f0f878b267beb233c4ef067243fb (patch) | |
tree | f5516bc2113773391893cbbd2b309feb45829f18 /drivers/leds/leds-lp5523.c | |
parent | Linux 3.10-rc6 (diff) | |
download | linux-7542a04b1515f0f878b267beb233c4ef067243fb.tar.xz linux-7542a04b1515f0f878b267beb233c4ef067243fb.zip |
leds: lp55xx: add support for Device Tree bindings
This patch allows the lp5521 driver to be successfully probed and
initialised when Device Tree support is enabled.
Based on a patch by Gabriel Fernandez, rewritten in accordance
with review feedback.
Cc: Gabriel Fernandez <gabriel.fernandez@stericsson.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Acked-by: Milo Kim <milo.kim@ti.com>
Signed-off-by: Bryan Wu <cooloney@gmail.com>
Diffstat (limited to 'drivers/leds/leds-lp5523.c')
-rw-r--r-- | drivers/leds/leds-lp5523.c | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/drivers/leds/leds-lp5523.c b/drivers/leds/leds-lp5523.c index 229f734040af..365e9148e5e8 100644 --- a/drivers/leds/leds-lp5523.c +++ b/drivers/leds/leds-lp5523.c @@ -429,12 +429,20 @@ static int lp5523_probe(struct i2c_client *client, int ret; struct lp55xx_chip *chip; struct lp55xx_led *led; - struct lp55xx_platform_data *pdata = client->dev.platform_data; - - if (!pdata) { - dev_err(&client->dev, "no platform data\n"); - return -EINVAL; + struct lp55xx_platform_data *pdata; + struct device_node *np = client->dev.of_node; + + if (!client->dev.platform_data) { + if (np) { + ret = lp55xx_of_populate_pdata(&client->dev, np); + if (ret < 0) + return ret; + } else { + dev_err(&client->dev, "no platform data\n"); + return -EINVAL; + } } + pdata = client->dev.platform_data; chip = devm_kzalloc(&client->dev, sizeof(*chip), GFP_KERNEL); if (!chip) @@ -495,6 +503,7 @@ static int lp5523_remove(struct i2c_client *client) static const struct i2c_device_id lp5523_id[] = { { "lp5523", LP5523 }, { "lp55231", LP55231 }, + { "national,lp5523", 0 }, /* OF compatible */ { } }; |