aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/leds/leds-gpio.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/drivers/leds/leds-gpio.c b/drivers/leds/leds-gpio.c
index b3c5d9d6a42b..868e6fc17cba 100644
--- a/drivers/leds/leds-gpio.c
+++ b/drivers/leds/leds-gpio.c
@@ -170,6 +170,7 @@ static struct gpio_leds_priv *gpio_leds_create(struct platform_device *pdev)
170 struct fwnode_handle *child; 170 struct fwnode_handle *child;
171 struct gpio_leds_priv *priv; 171 struct gpio_leds_priv *priv;
172 int count, ret; 172 int count, ret;
173 struct device_node *np;
173 174
174 count = device_get_child_node_count(dev); 175 count = device_get_child_node_count(dev);
175 if (!count) 176 if (!count)
@@ -189,7 +190,16 @@ static struct gpio_leds_priv *gpio_leds_create(struct platform_device *pdev)
189 goto err; 190 goto err;
190 } 191 }
191 192
192 fwnode_property_read_string(child, "label", &led.name); 193 np = of_node(child);
194
195 if (fwnode_property_present(child, "label")) {
196 fwnode_property_read_string(child, "label", &led.name);
197 } else {
198 if (IS_ENABLED(CONFIG_OF) && !led.name && np)
199 led.name = np->name;
200 if (!led.name)
201 return ERR_PTR(-EINVAL);
202 }
193 fwnode_property_read_string(child, "linux,default-trigger", 203 fwnode_property_read_string(child, "linux,default-trigger",
194 &led.default_trigger); 204 &led.default_trigger);
195 205