diff --git a/Documentation/devicetree/bindings/leds/common.rst b/Documentation/devicetree/bindings/leds/common.rst index c1fd1ab..1f5ae42 100644 --- a/Documentation/devicetree/bindings/leds/common.rst +++ b/Documentation/devicetree/bindings/leds/common.rst @@ -8,3 +8,5 @@ * ``panic`` - LED turns on when barebox panics * ``net`` - LED indicates network activity +* ``label``: The label for this LED. If omitted, the label is taken + from the node name (excluding the unit address). diff --git a/drivers/led/led-gpio.c b/drivers/led/led-gpio.c index 7bb3b49..a1a6617 100644 --- a/drivers/led/led-gpio.c +++ b/drivers/led/led-gpio.c @@ -206,13 +206,17 @@ struct gpio_led *gled; enum of_gpio_flags flags; int gpio; + const char *label; gpio = of_get_named_gpio_flags(child, "gpios", 0, &flags); if (gpio < 0) continue; gled = xzalloc(sizeof(*gled)); - gled->led.name = xstrdup(child->name); + if (of_property_read_string(child, "label", &label)) + label = child->name; + gled->led.name = xstrdup(label); + gled->gpio = gpio; gled->active_low = (flags & OF_GPIO_ACTIVE_LOW) ? 1 : 0;