summaryrefslogtreecommitdiff
path: root/drivers/core/lists.c
diff options
context:
space:
mode:
authorTom Rini <trini@konsulko.com>2024-07-04 09:25:51 -0600
committerTom Rini <trini@konsulko.com>2024-07-04 09:25:51 -0600
commite24053d8fb42c909b470e33f19ac71fd718133ce (patch)
treeb69fd2a2ee983403d9ea52b928632dbac3eaff03 /drivers/core/lists.c
parent0f073e022ddc5070e5df1d053e4bdc1874fbcc0f (diff)
parent4a8a54c3f4202482ec4f24a117afc38cf2c0c051 (diff)
Merge patch series "testb: Various tweaks and fixes for Labgrid"
Simon Glass <sjg@chromium.org> says: This series includes a number of mostly unrelated changes which are in service of running U-Boot on a lab using Labgrid.
Diffstat (limited to 'drivers/core/lists.c')
-rw-r--r--drivers/core/lists.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/drivers/core/lists.c b/drivers/core/lists.c
index bd0ab4f16c9..c7be504b6fc 100644
--- a/drivers/core/lists.c
+++ b/drivers/core/lists.c
@@ -8,6 +8,7 @@
#define LOG_CATEGORY LOGC_DM
+#include <debug_uart.h>
#include <errno.h>
#include <log.h>
#include <dm/device.h>
@@ -50,6 +51,21 @@ struct uclass_driver *lists_uclass_lookup(enum uclass_id id)
return NULL;
}
+/**
+ * bind_drivers_pass() - Perform a pass of driver binding
+ *
+ * Work through the driver_info records binding a driver for each one. If the
+ * binding fails, continue binding others, but return the error.
+ *
+ * For OF_PLATDATA we must bind parent devices before their children. So only
+ * children of bound parents are bound on each call to this function. When a
+ * child is left unbound, -EAGAIN is returned, indicating that this function
+ * should be called again
+ *
+ * @parent: Parent device to use when binding each child device
+ * Return: 0 if OK, -EAGAIN if unbound children exist, -ENOENT if there is no
+ * driver for one of the devices, other -ve on other error
+ */
static int bind_drivers_pass(struct udevice *parent, bool pre_reloc_only)
{
struct driver_info *info =