[PATCH 1/6] led: Move OF "label" property parsing to core

Every driver in drivers/led/ currently does some form of "label" OF property parsing in its bind() callback. Move this label parsing to LED core, since this "label" OF property is a generic property. This permits code deduplication in subseuqent patches.
Signed-off-by: Marek Vasut marex@denx.de Cc: Alex Nemirovsky alex.nemirovsky@cortina-access.com Cc: Patrick Delaunay patrick.delaunay@foss.st.com Cc: Philippe Reynes philippe.reynes@softathome.com Cc: Sean Anderson seanga2@gmail.com Cc: Simon Glass sjg@chromium.org Cc: Steven Lawrance steven.lawrance@softathome.com --- drivers/led/led-uclass.c | 12 ++++++++++++ 1 file changed, 12 insertions(+)
diff --git a/drivers/led/led-uclass.c b/drivers/led/led-uclass.c index 7e298dbb06f..2f4aa18fb10 100644 --- a/drivers/led/led-uclass.c +++ b/drivers/led/led-uclass.c @@ -95,8 +95,20 @@ int led_default_state(void) return ret; }
+static int led_post_bind(struct udevice *dev) +{ + struct led_uc_plat *uc_plat = dev_get_uclass_plat(dev); + + uc_plat->label = dev_read_string(dev, "label"); + if (!uc_plat->label) + uc_plat->label = ofnode_get_name(dev_ofnode(dev)); + + return 0; +} + UCLASS_DRIVER(led) = { .id = UCLASS_LED, .name = "led", .per_device_plat_auto = sizeof(struct led_uc_plat), + .post_bind = led_post_bind, };

The OF "label" property parsing is now handled in LED core, drop the duplicate implementation from this driver.
Signed-off-by: Marek Vasut marex@denx.de Cc: Alex Nemirovsky alex.nemirovsky@cortina-access.com Cc: Patrick Delaunay patrick.delaunay@foss.st.com Cc: Philippe Reynes philippe.reynes@softathome.com Cc: Sean Anderson seanga2@gmail.com Cc: Simon Glass sjg@chromium.org Cc: Steven Lawrance steven.lawrance@softathome.com --- drivers/led/led_bcm6328.c | 12 ------------ 1 file changed, 12 deletions(-)
diff --git a/drivers/led/led_bcm6328.c b/drivers/led/led_bcm6328.c index bf8207d638d..f59a92fb1fd 100644 --- a/drivers/led/led_bcm6328.c +++ b/drivers/led/led_bcm6328.c @@ -204,26 +204,14 @@ static int bcm6328_led_bind(struct udevice *parent) ofnode node;
dev_for_each_subnode(node, parent) { - struct led_uc_plat *uc_plat; struct udevice *dev; - const char *label; int ret;
- label = ofnode_read_string(node, "label"); - if (!label) { - debug("%s: node %s has no label\n", __func__, - ofnode_get_name(node)); - return -EINVAL; - } - ret = device_bind_driver_to_node(parent, "bcm6328-led", ofnode_get_name(node), node, &dev); if (ret) return ret; - - uc_plat = dev_get_uclass_plat(dev); - uc_plat->label = label; }
return 0;

On Mon, Apr 04, 2022 at 01:18:03AM +0200, Marek Vasut wrote:
The OF "label" property parsing is now handled in LED core, drop the duplicate implementation from this driver.
Signed-off-by: Marek Vasut marex@denx.de Cc: Alex Nemirovsky alex.nemirovsky@cortina-access.com Cc: Patrick Delaunay patrick.delaunay@foss.st.com Cc: Philippe Reynes philippe.reynes@softathome.com Cc: Sean Anderson seanga2@gmail.com Cc: Simon Glass sjg@chromium.org Cc: Steven Lawrance steven.lawrance@softathome.com
Applied to u-boot/master, thanks!

The OF "label" property parsing is now handled in LED core, drop the duplicate implementation from this driver.
Signed-off-by: Marek Vasut marex@denx.de Cc: Alex Nemirovsky alex.nemirovsky@cortina-access.com Cc: Patrick Delaunay patrick.delaunay@foss.st.com Cc: Philippe Reynes philippe.reynes@softathome.com Cc: Sean Anderson seanga2@gmail.com Cc: Simon Glass sjg@chromium.org Cc: Steven Lawrance steven.lawrance@softathome.com --- drivers/led/led_bcm6358.c | 12 ------------ 1 file changed, 12 deletions(-)
diff --git a/drivers/led/led_bcm6358.c b/drivers/led/led_bcm6358.c index 3e57cdfd17d..25aa3994d0e 100644 --- a/drivers/led/led_bcm6358.c +++ b/drivers/led/led_bcm6358.c @@ -174,26 +174,14 @@ static int bcm6358_led_bind(struct udevice *parent) ofnode node;
dev_for_each_subnode(node, parent) { - struct led_uc_plat *uc_plat; struct udevice *dev; - const char *label; int ret;
- label = ofnode_read_string(node, "label"); - if (!label) { - debug("%s: node %s has no label\n", __func__, - ofnode_get_name(node)); - return -EINVAL; - } - ret = device_bind_driver_to_node(parent, "bcm6358-led", ofnode_get_name(node), node, &dev); if (ret) return ret; - - uc_plat = dev_get_uclass_plat(dev); - uc_plat->label = label; }
return 0;

On Mon, Apr 04, 2022 at 01:18:04AM +0200, Marek Vasut wrote:
The OF "label" property parsing is now handled in LED core, drop the duplicate implementation from this driver.
Signed-off-by: Marek Vasut marex@denx.de Cc: Alex Nemirovsky alex.nemirovsky@cortina-access.com Cc: Patrick Delaunay patrick.delaunay@foss.st.com Cc: Philippe Reynes philippe.reynes@softathome.com Cc: Sean Anderson seanga2@gmail.com Cc: Simon Glass sjg@chromium.org Cc: Steven Lawrance steven.lawrance@softathome.com
Applied to u-boot/master, thanks!

The OF "label" property parsing is now handled in LED core, drop the duplicate implementation from this driver.
Signed-off-by: Marek Vasut marex@denx.de Cc: Alex Nemirovsky alex.nemirovsky@cortina-access.com Cc: Patrick Delaunay patrick.delaunay@foss.st.com Cc: Philippe Reynes philippe.reynes@softathome.com Cc: Sean Anderson seanga2@gmail.com Cc: Simon Glass sjg@chromium.org Cc: Steven Lawrance steven.lawrance@softathome.com --- drivers/led/led_bcm6858.c | 12 ------------ 1 file changed, 12 deletions(-)
diff --git a/drivers/led/led_bcm6858.c b/drivers/led/led_bcm6858.c index fbf46a114c5..4fd840b42f5 100644 --- a/drivers/led/led_bcm6858.c +++ b/drivers/led/led_bcm6858.c @@ -211,26 +211,14 @@ static int bcm6858_led_bind(struct udevice *parent) ofnode node;
dev_for_each_subnode(node, parent) { - struct led_uc_plat *uc_plat; struct udevice *dev; - const char *label; int ret;
- label = ofnode_read_string(node, "label"); - if (!label) { - debug("%s: node %s has no label\n", __func__, - ofnode_get_name(node)); - return -EINVAL; - } - ret = device_bind_driver_to_node(parent, "bcm6858-led", ofnode_get_name(node), node, &dev); if (ret) return ret; - - uc_plat = dev_get_uclass_plat(dev); - uc_plat->label = label; }
return 0;

On Mon, Apr 04, 2022 at 01:18:05AM +0200, Marek Vasut wrote:
The OF "label" property parsing is now handled in LED core, drop the duplicate implementation from this driver.
Signed-off-by: Marek Vasut marex@denx.de Cc: Alex Nemirovsky alex.nemirovsky@cortina-access.com Cc: Patrick Delaunay patrick.delaunay@foss.st.com Cc: Philippe Reynes philippe.reynes@softathome.com Cc: Sean Anderson seanga2@gmail.com Cc: Simon Glass sjg@chromium.org Cc: Steven Lawrance steven.lawrance@softathome.com
Applied to u-boot/master, thanks!

The OF "label" property parsing is now handled in LED core, drop the duplicate implementation from this driver.
Signed-off-by: Marek Vasut marex@denx.de Cc: Alex Nemirovsky alex.nemirovsky@cortina-access.com Cc: Patrick Delaunay patrick.delaunay@foss.st.com Cc: Philippe Reynes philippe.reynes@softathome.com Cc: Sean Anderson seanga2@gmail.com Cc: Simon Glass sjg@chromium.org Cc: Steven Lawrance steven.lawrance@softathome.com --- drivers/led/led_cortina.c | 11 ----------- 1 file changed, 11 deletions(-)
diff --git a/drivers/led/led_cortina.c b/drivers/led/led_cortina.c index 598c0a03db5..bcbe78d632a 100644 --- a/drivers/led/led_cortina.c +++ b/drivers/led/led_cortina.c @@ -256,25 +256,14 @@ static int cortina_led_bind(struct udevice *parent) ofnode node;
dev_for_each_subnode(node, parent) { - struct led_uc_plat *uc_plat; struct udevice *dev; - const char *label; int ret;
- label = ofnode_read_string(node, "label"); - if (!label) { - debug("%s: node %s has no label\n", __func__, - ofnode_get_name(node)); - return -EINVAL; - } - ret = device_bind_driver_to_node(parent, "ca-leds", ofnode_get_name(node), node, &dev); if (ret) return ret; - uc_plat = dev_get_uclass_plat(dev); - uc_plat->label = label; }
return 0;

On Mon, Apr 04, 2022 at 01:18:06AM +0200, Marek Vasut wrote:
The OF "label" property parsing is now handled in LED core, drop the duplicate implementation from this driver.
Signed-off-by: Marek Vasut marex@denx.de Cc: Alex Nemirovsky alex.nemirovsky@cortina-access.com Cc: Patrick Delaunay patrick.delaunay@foss.st.com Cc: Philippe Reynes philippe.reynes@softathome.com Cc: Sean Anderson seanga2@gmail.com Cc: Simon Glass sjg@chromium.org Cc: Steven Lawrance steven.lawrance@softathome.com
Applied to u-boot/master, thanks!

The OF "label" property parsing is now handled in LED core, drop the duplicate implementation from this driver.
Signed-off-by: Marek Vasut marex@denx.de Cc: Alex Nemirovsky alex.nemirovsky@cortina-access.com Cc: Patrick Delaunay patrick.delaunay@foss.st.com Cc: Philippe Reynes philippe.reynes@softathome.com Cc: Sean Anderson seanga2@gmail.com Cc: Simon Glass sjg@chromium.org Cc: Steven Lawrance steven.lawrance@softathome.com --- drivers/led/led_gpio.c | 8 -------- 1 file changed, 8 deletions(-)
diff --git a/drivers/led/led_gpio.c b/drivers/led/led_gpio.c index 67ece3cbcd0..958dbd31e77 100644 --- a/drivers/led/led_gpio.c +++ b/drivers/led/led_gpio.c @@ -95,19 +95,11 @@ static int led_gpio_bind(struct udevice *parent) int ret;
dev_for_each_subnode(node, parent) { - struct led_uc_plat *uc_plat; - const char *label; - - label = ofnode_read_string(node, "label"); - if (!label) - label = ofnode_get_name(node); ret = device_bind_driver_to_node(parent, "gpio_led", ofnode_get_name(node), node, &dev); if (ret) return ret; - uc_plat = dev_get_uclass_plat(dev); - uc_plat->label = label; }
return 0;

On Mon, Apr 04, 2022 at 01:18:07AM +0200, Marek Vasut wrote:
The OF "label" property parsing is now handled in LED core, drop the duplicate implementation from this driver.
Signed-off-by: Marek Vasut marex@denx.de Cc: Alex Nemirovsky alex.nemirovsky@cortina-access.com Cc: Patrick Delaunay patrick.delaunay@foss.st.com Cc: Philippe Reynes philippe.reynes@softathome.com Cc: Sean Anderson seanga2@gmail.com Cc: Simon Glass sjg@chromium.org Cc: Steven Lawrance steven.lawrance@softathome.com
Applied to u-boot/master, thanks!

The OF "label" property parsing is now handled in LED core, drop the duplicate implementation from this driver.
Signed-off-by: Tom Rini trini@konsulko.com --- drivers/led/led_bcm6753.c | 12 ------------ 1 file changed, 12 deletions(-)
diff --git a/drivers/led/led_bcm6753.c b/drivers/led/led_bcm6753.c index a32bd8204fa0..88b650cbfca3 100644 --- a/drivers/led/led_bcm6753.c +++ b/drivers/led/led_bcm6753.c @@ -229,26 +229,14 @@ static int bcm6753_led_bind(struct udevice *parent) ofnode node;
dev_for_each_subnode(node, parent) { - struct led_uc_plat *uc_plat; struct udevice *dev; - const char *label; int ret;
- label = ofnode_read_string(node, "label"); - if (!label) { - debug("%s: node %s has no label\n", __func__, - ofnode_get_name(node)); - return -EINVAL; - } - ret = device_bind_driver_to_node(parent, "bcm6753-led", ofnode_get_name(node), node, &dev); if (ret) return ret; - - uc_plat = dev_get_uclass_plat(dev); - uc_plat->label = label; }
return 0;

The OF "label" property parsing is now handled in LED core, drop the duplicate implementation from this driver.
Signed-off-by: Tom Rini trini@konsulko.com --- drivers/led/led_pwm.c | 10 ---------- 1 file changed, 10 deletions(-)
diff --git a/drivers/led/led_pwm.c b/drivers/led/led_pwm.c index 4e5027225870..10bd1636c386 100644 --- a/drivers/led/led_pwm.c +++ b/drivers/led/led_pwm.c @@ -151,21 +151,11 @@ static int led_pwm_bind(struct udevice *parent) int ret;
dev_for_each_subnode(node, parent) { - struct led_uc_plat *uc_plat; - const char *label; - - label = ofnode_read_string(node, "label"); - if (!label) - label = ofnode_get_name(node); - ret = device_bind_driver_to_node(parent, LEDS_PWM_DRIVER_NAME, ofnode_get_name(node), node, &dev); if (ret) return ret; - - uc_plat = dev_get_uclass_plat(dev); - uc_plat->label = label; } return 0; }

On Thu, Apr 14, 2022 at 10:15:00AM -0400, Tom Rini wrote:
The OF "label" property parsing is now handled in LED core, drop the duplicate implementation from this driver.
Signed-off-by: Tom Rini trini@konsulko.com
Applied to u-boot/master, thanks!

On Thu, Apr 14, 2022 at 10:14:59AM -0400, Tom Rini wrote:
The OF "label" property parsing is now handled in LED core, drop the duplicate implementation from this driver.
Signed-off-by: Tom Rini trini@konsulko.com
Applied to u-boot/master, thanks!

On Mon, Apr 04, 2022 at 01:18:02AM +0200, Marek Vasut wrote:
Every driver in drivers/led/ currently does some form of "label" OF property parsing in its bind() callback. Move this label parsing to LED core, since this "label" OF property is a generic property. This permits code deduplication in subseuqent patches.
Signed-off-by: Marek Vasut marex@denx.de Cc: Alex Nemirovsky alex.nemirovsky@cortina-access.com Cc: Patrick Delaunay patrick.delaunay@foss.st.com Cc: Philippe Reynes philippe.reynes@softathome.com Cc: Sean Anderson seanga2@gmail.com Cc: Simon Glass sjg@chromium.org Cc: Steven Lawrance steven.lawrance@softathome.com
Applied to u-boot/master, thanks!
participants (2)
-
Marek Vasut
-
Tom Rini