Commit c6b218c9 authored by Dan Murphy's avatar Dan Murphy Committed by Jacek Anaszewski

leds: lp8860: Update the dt parsing for LED labeling

Update the DT parsing for the label node so that
the label is retrieved from the device child as
opposed to being part of the parent.

This will align this driver with the LED
binding documentation

Documentation/devicetree/bindings/leds/common.txt
Signed-off-by: default avatarDan Murphy <dmurphy@ti.com>
Signed-off-by: default avatarJacek Anaszewski <jacek.anaszewski@gmail.com>
parent 91523683
...@@ -22,6 +22,7 @@ ...@@ -22,6 +22,7 @@
#include <linux/of_gpio.h> #include <linux/of_gpio.h>
#include <linux/gpio/consumer.h> #include <linux/gpio/consumer.h>
#include <linux/slab.h> #include <linux/slab.h>
#include <uapi/linux/uleds.h>
#define LP8860_DISP_CL1_BRT_MSB 0x00 #define LP8860_DISP_CL1_BRT_MSB 0x00
#define LP8860_DISP_CL1_BRT_LSB 0x01 #define LP8860_DISP_CL1_BRT_LSB 0x01
...@@ -86,8 +87,6 @@ ...@@ -86,8 +87,6 @@
#define LP8860_CLEAR_FAULTS 0x01 #define LP8860_CLEAR_FAULTS 0x01
#define LP8860_DISP_LED_NAME "display_cluster"
/** /**
* struct lp8860_led - * struct lp8860_led -
* @lock - Lock for reading/writing the device * @lock - Lock for reading/writing the device
...@@ -107,7 +106,7 @@ struct lp8860_led { ...@@ -107,7 +106,7 @@ struct lp8860_led {
struct regmap *eeprom_regmap; struct regmap *eeprom_regmap;
struct gpio_desc *enable_gpio; struct gpio_desc *enable_gpio;
struct regulator *regulator; struct regulator *regulator;
const char *label; char label[LED_MAX_NAME_SIZE];
}; };
struct lp8860_eeprom_reg { struct lp8860_eeprom_reg {
...@@ -387,19 +386,21 @@ static int lp8860_probe(struct i2c_client *client, ...@@ -387,19 +386,21 @@ static int lp8860_probe(struct i2c_client *client,
int ret; int ret;
struct lp8860_led *led; struct lp8860_led *led;
struct device_node *np = client->dev.of_node; struct device_node *np = client->dev.of_node;
struct device_node *child_node;
const char *name;
led = devm_kzalloc(&client->dev, sizeof(*led), GFP_KERNEL); led = devm_kzalloc(&client->dev, sizeof(*led), GFP_KERNEL);
if (!led) if (!led)
return -ENOMEM; return -ENOMEM;
led->label = LP8860_DISP_LED_NAME; for_each_available_child_of_node(np, child_node) {
ret = of_property_read_string(child_node, "label", &name);
if (client->dev.of_node) { if (!ret)
ret = of_property_read_string(np, "label", &led->label); snprintf(led->label, sizeof(led->label), "%s:%s",
if (ret) { id->name, name);
dev_err(&client->dev, "Missing label in dt\n"); else
return -EINVAL; snprintf(led->label, sizeof(led->label),
} "%s::display_cluster", id->name);
} }
led->enable_gpio = devm_gpiod_get_optional(&client->dev, led->enable_gpio = devm_gpiod_get_optional(&client->dev,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment