]> Git Repo - J-u-boot.git/commitdiff
led: update LED boot/activity to new property implementation
authorChristian Marangi <[email protected]>
Sun, 10 Nov 2024 11:50:26 +0000 (12:50 +0100)
committerTom Rini <[email protected]>
Fri, 6 Dec 2024 19:00:41 +0000 (13:00 -0600)
Update LED boot/activity to reference by phandle instead of label and
add to period property the "-ms" suffix.
This is a followup request by dt-schema maintainers that required LED
node to be referenced by a phandle to the node instead of indirectly by
the LED label and for timevalue to have a suffix.

While at it generalize the LED node label parsing since the logic is
common for generic LED bind and LED activity/boot.

Signed-off-by: Christian Marangi <[email protected]>
drivers/led/led-uclass.c

index 05e09909b7ddaab3e45cf08e1a60454c353b4e4a..760750568c01eaea30d671925db9c1cbcecc1c5a 100644 (file)
@@ -232,16 +232,24 @@ int led_activity_blink(void)
 #endif
 #endif
 
+static const char *led_get_label(ofnode node)
+{
+       const char *label;
+
+       label = ofnode_read_string(node, "label");
+       if (!label && !ofnode_read_string(node, "compatible"))
+               label = ofnode_get_name(node);
+
+       return label;
+}
+
 static int led_post_bind(struct udevice *dev)
 {
        struct led_uc_plat *uc_plat = dev_get_uclass_plat(dev);
        const char *default_state;
 
        if (!uc_plat->label)
-               uc_plat->label = dev_read_string(dev, "label");
-
-       if (!uc_plat->label && !dev_read_string(dev, "compatible"))
-               uc_plat->label = ofnode_get_name(dev_ofnode(dev));
+               uc_plat->label = led_get_label(dev_ofnode(dev));
 
        uc_plat->default_state = LEDST_COUNT;
 
@@ -300,15 +308,21 @@ static int led_post_probe(struct udevice *dev)
 static int led_init(struct uclass *uc)
 {
        struct led_uc_priv *priv = uclass_get_priv(uc);
+       ofnode led_node;
+       int ret;
 
 #ifdef CONFIG_LED_BOOT
-       priv->boot_led_label = ofnode_options_read_str("boot-led");
-       priv->boot_led_period = ofnode_options_read_int("boot-led-period", 250);
+       ret = ofnode_options_get_by_phandle("boot-led", &led_node);
+       if (!ret)
+               priv->boot_led_label = led_get_label(led_node);
+       priv->boot_led_period = ofnode_options_read_int("boot-led-period-ms", 250);
 #endif
 
 #ifdef CONFIG_LED_ACTIVITY
-       priv->activity_led_label = ofnode_options_read_str("activity-led");
-       priv->activity_led_period = ofnode_options_read_int("activity-led-period",
+       ret = ofnode_options_get_by_phandle("activity-led", &led_node);
+       if (!ret)
+               priv->activity_led_label = led_get_label(led_node);
+       priv->activity_led_period = ofnode_options_read_int("activity-led-period-ms",
                                                            250);
 #endif
 
This page took 0.034431 seconds and 4 git commands to generate.