diff options
| author | Rasmus Villemoes <[email protected]> | 2023-11-17 12:38:08 +0100 |
|---|---|---|
| committer | Tom Rini <[email protected]> | 2023-12-13 11:35:13 -0500 |
| commit | 3bf0515a07f7e82f2cdbf435bfd7fcd66651852d (patch) | |
| tree | 9a39b70be62893e715bd6d5aeb7ce8fda18eedc9 /drivers/led | |
| parent | 067e4ce35b944314742cb46b3c82cb9b801c50ca (diff) | |
led: introduce led_bind_generic()
All existing drivers in drivers/led/ contain a .bind method that does
exactly the same thing, with just the actual driver name
differing. Create a helper so all those individual methods can be
changed to one-liners.
Reviewed-by: Marek Vasut <[email protected]>
Signed-off-by: Rasmus Villemoes <[email protected]>
Diffstat (limited to 'drivers/led')
| -rw-r--r-- | drivers/led/led-uclass.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/drivers/led/led-uclass.c b/drivers/led/led-uclass.c index 0232fa84def..a4be56fc258 100644 --- a/drivers/led/led-uclass.c +++ b/drivers/led/led-uclass.c @@ -11,9 +11,27 @@ #include <errno.h> #include <led.h> #include <dm/device-internal.h> +#include <dm/lists.h> #include <dm/root.h> #include <dm/uclass-internal.h> +int led_bind_generic(struct udevice *parent, const char *driver_name) +{ + struct udevice *dev; + ofnode node; + int ret; + + dev_for_each_subnode(node, parent) { + ret = device_bind_driver_to_node(parent, driver_name, + ofnode_get_name(node), + node, &dev); + if (ret) + return ret; + } + + return 0; +} + int led_get_by_label(const char *label, struct udevice **devp) { struct udevice *dev; |
