diff options
author | Rajan Vaja | 2018-08-10 01:45:33 -0700 |
---|---|---|
committer | Simon Glass | 2018-09-18 08:12:21 -0600 |
commit | 68d215d907b1512a8089f47a9d47d02a9a3b179e (patch) | |
tree | 0c9ca7de2f58cab7afdefc7816716628dd4ff9c5 | |
parent | d2166319df17286b2a3e2a1a7ce89f01e4f8bac9 (diff) |
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>
-rw-r--r-- | drivers/core/root.c | 33 |
1 files changed, 18 insertions, 15 deletions
diff --git a/drivers/core/root.c b/drivers/core/root.c index 72bcc7d7f2a..1ab4c38bcf5 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; } |