mirror of
https://source.denx.de/u-boot/u-boot.git
synced 2026-06-13 15:03:58 +03:00
dm: core: add ofnode_get_path()
Add function for retrieving full node path of a given ofnode. This uses np->full_name if OF is live, otherwise a call to fdt_get_path() is made. Signed-off-by: Marek Behún <marek.behun@nic.cz> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Miquel Raynal <miquel.raynal@bootlin.com> Tested-by: Patrice Chotard <patrice.chotard@foss.st.com> Reviewed-by: Jagan Teki <jagan@amarulasolutions.com>
This commit is contained in:
@@ -286,6 +286,31 @@ const char *ofnode_get_name(ofnode node)
|
||||
return fdt_get_name(gd->fdt_blob, ofnode_to_offset(node), NULL);
|
||||
}
|
||||
|
||||
int ofnode_get_path(ofnode node, char *buf, int buflen)
|
||||
{
|
||||
assert(ofnode_valid(node));
|
||||
|
||||
if (ofnode_is_np(node)) {
|
||||
if (strlen(node.np->full_name) >= buflen)
|
||||
return -ENOSPC;
|
||||
|
||||
strcpy(buf, node.np->full_name);
|
||||
|
||||
return 0;
|
||||
} else {
|
||||
int res;
|
||||
|
||||
res = fdt_get_path(gd->fdt_blob, ofnode_to_offset(node), buf,
|
||||
buflen);
|
||||
if (!res)
|
||||
return res;
|
||||
else if (res == -FDT_ERR_NOSPACE)
|
||||
return -ENOSPC;
|
||||
else
|
||||
return -EINVAL;
|
||||
}
|
||||
}
|
||||
|
||||
ofnode ofnode_get_by_phandle(uint phandle)
|
||||
{
|
||||
ofnode node;
|
||||
|
||||
Reference in New Issue
Block a user