aboutsummaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorRajan Vaja <rajan.vaja@xilinx.com>2018-08-10 01:45:33 -0700
committerSimon Glass <sjg@chromium.org>2018-09-18 08:12:21 -0600
commit68d215d907b1512a8089f47a9d47d02a9a3b179e (patch)
tree0c9ca7de2f58cab7afdefc7816716628dd4ff9c5 /drivers
parentd2166319df17286b2a3e2a1a7ce89f01e4f8bac9 (diff)
downloadu-boot-68d215d907b1512a8089f47a9d47d02a9a3b179e.zip
u-boot-68d215d907b1512a8089f47a9d47d02a9a3b179e.tar.gz
u-boot-68d215d907b1512a8089f47a9d47d02a9a3b179e.tar.bz2
dm: core: Move "/clock" node scan into function
Create separate function for scanning node by path and move "/clock" node scan code into that function. This will be usable if scanning of more node is required. Signed-off-by: Rajan Vaja <rajan.vaja@xilinx.com> Reviewed-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/core/root.c33
1 files changed, 18 insertions, 15 deletions
diff --git a/drivers/core/root.c b/drivers/core/root.c
index 72bcc7d..1ab4c38 100644
--- a/drivers/core/root.c
+++ b/drivers/core/root.c
@@ -330,10 +330,25 @@ static int dm_scan_fdt_node(struct udevice *parent, const void *blob,
}
#endif
+static int dm_scan_fdt_ofnode_path(const char *path, bool pre_reloc_only)
+{
+ ofnode node;
+
+ node = ofnode_path(path);
+ if (!ofnode_valid(node))
+ return 0;
+
+#if CONFIG_IS_ENABLED(OF_LIVE)
+ if (of_live_active())
+ return dm_scan_fdt_live(gd->dm_root, node.np, pre_reloc_only);
+#endif
+ return dm_scan_fdt_node(gd->dm_root, gd->fdt_blob, node.of_offset,
+ pre_reloc_only);
+}
+
int dm_extended_scan_fdt(const void *blob, bool pre_reloc_only)
{
int ret;
- ofnode node;
ret = dm_scan_fdt(gd->fdt_blob, pre_reloc_only);
if (ret) {
@@ -341,21 +356,9 @@ int dm_extended_scan_fdt(const void *blob, bool pre_reloc_only)
return ret;
}
- /* bind fixed-clock */
- node = ofnode_path("/clocks");
- /* if no DT "clocks" node, no need to go further */
- if (!ofnode_valid(node))
- return ret;
-
-#if CONFIG_IS_ENABLED(OF_LIVE)
- if (of_live_active())
- ret = dm_scan_fdt_live(gd->dm_root, node.np, pre_reloc_only);
- else
-#endif
- ret = dm_scan_fdt_node(gd->dm_root, gd->fdt_blob, node.of_offset,
- pre_reloc_only);
+ ret = dm_scan_fdt_ofnode_path("/clocks", pre_reloc_only);
if (ret)
- debug("dm_scan_fdt_node() failed: %d\n", ret);
+ debug("scan for /clocks failed: %d\n", ret);
return ret;
}