Let of_find_node_by_path_or_alias also find a node starting with an alias followed by a path like "i2c0/tps@24" Signed-off-by: Jan Weitzel <j.weitzel@xxxxxxxxx> --- v2: rename ret to node drivers/of/base.c | 22 +++++++++++++++++++++- 1 files changed, 21 insertions(+), 1 deletions(-) diff --git a/drivers/of/base.c b/drivers/of/base.c index ea2d879..5b5272d 100644 --- a/drivers/of/base.c +++ b/drivers/of/base.c @@ -1378,11 +1378,31 @@ EXPORT_SYMBOL(of_find_node_by_path); struct device_node *of_find_node_by_path_or_alias(struct device_node *root, const char *str) { + struct device_node *node; + char *slash, *alias; + size_t len = 0; + if (*str == '/') return of_find_node_by_path_from(root, str); - else + + slash = _strchr(str, '/'); + + if (!slash) return of_find_node_by_alias(root, str); + len = slash - str + 1; + alias = xmalloc(len); + strlcpy(alias, str, len); + + node = of_find_node_by_alias(root, alias); + + if (!node) + goto out; + + node = of_find_node_by_path_from(node, slash); +out: + free(alias); + return node; } EXPORT_SYMBOL(of_find_node_by_path_or_alias); -- 1.7.0.4 _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox