diff options
author | Tom Rini <trini@konsulko.com> | 2017-09-12 09:32:51 -0400 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2017-09-12 09:32:51 -0400 |
commit | de2ad2c40db389e4747f566e44aa7f1a1aec91fb (patch) | |
tree | 76bd1340bc1b8b25e5acffeed74bceea5913969a /drivers/core/root.c | |
parent | d81a1de96e2636163783c342b8fda965e696e382 (diff) | |
parent | ee87a097b0f66158ce2985940a5f28ba15a3552d (diff) | |
download | u-boot-de2ad2c40db389e4747f566e44aa7f1a1aec91fb.tar.gz u-boot-de2ad2c40db389e4747f566e44aa7f1a1aec91fb.tar.xz u-boot-de2ad2c40db389e4747f566e44aa7f1a1aec91fb.zip |
Merge git://git.denx.de/u-boot-dm
Diffstat (limited to 'drivers/core/root.c')
-rw-r--r-- | drivers/core/root.c | 34 |
1 files changed, 32 insertions, 2 deletions
diff --git a/drivers/core/root.c b/drivers/core/root.c index d691d6ff94..757d109e57 100644 --- a/drivers/core/root.c +++ b/drivers/core/root.c @@ -312,8 +312,38 @@ int dm_scan_fdt(const void *blob, bool pre_reloc_only) #endif return dm_scan_fdt_node(gd->dm_root, blob, 0, pre_reloc_only); } +#else +static int dm_scan_fdt_node(struct udevice *parent, const void *blob, + int offset, bool pre_reloc_only) +{ + return 0; +} #endif +int dm_extended_scan_fdt(const void *blob, bool pre_reloc_only) +{ + int node, ret; + + ret = dm_scan_fdt(gd->fdt_blob, pre_reloc_only); + if (ret) { + debug("dm_scan_fdt() failed: %d\n", ret); + return ret; + } + + /* bind fixed-clock */ + node = ofnode_to_offset(ofnode_path("/clocks")); + /* if no DT "clocks" node, no need to go further */ + if (node < 0) + return ret; + + ret = dm_scan_fdt_node(gd->dm_root, gd->fdt_blob, node, + pre_reloc_only); + if (ret) + debug("dm_scan_fdt_node() failed: %d\n", ret); + + return ret; +} + __weak int dm_scan_other(bool pre_reloc_only) { return 0; @@ -335,9 +365,9 @@ int dm_init_and_scan(bool pre_reloc_only) } if (CONFIG_IS_ENABLED(OF_CONTROL) && !CONFIG_IS_ENABLED(OF_PLATDATA)) { - ret = dm_scan_fdt(gd->fdt_blob, pre_reloc_only); + ret = dm_extended_scan_fdt(gd->fdt_blob, pre_reloc_only); if (ret) { - debug("dm_scan_fdt() failed: %d\n", ret); + debug("dm_extended_scan_dt() failed: %d\n", ret); return ret; } } |