mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-10 15:14:43 +00:00
dm: core: Pass a root node to of_find_node_by_phandle()
This function currently assumes that the control FDT is used. Update it to allow a root node to be passed, so it can work with any tree. Also add a comment to ofnode_get_by_phandle() so that its purpose is clear. Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
b5001cb4bd
commit
829d51246f
4 changed files with 10 additions and 5 deletions
|
@ -445,14 +445,15 @@ struct device_node *of_find_node_by_prop_value(struct device_node *from,
|
|||
return np;
|
||||
}
|
||||
|
||||
struct device_node *of_find_node_by_phandle(phandle handle)
|
||||
struct device_node *of_find_node_by_phandle(struct device_node *root,
|
||||
phandle handle)
|
||||
{
|
||||
struct device_node *np;
|
||||
|
||||
if (!handle)
|
||||
return NULL;
|
||||
|
||||
for_each_of_allnodes(np)
|
||||
for_each_of_allnodes_from(root, np)
|
||||
if (np->phandle == handle)
|
||||
break;
|
||||
(void)of_node_get(np);
|
||||
|
@ -697,7 +698,7 @@ static int __of_parse_phandle_with_args(const struct device_node *np,
|
|||
* below.
|
||||
*/
|
||||
if (cells_name || cur_index == index) {
|
||||
node = of_find_node_by_phandle(phandle);
|
||||
node = of_find_node_by_phandle(NULL, phandle);
|
||||
if (!node) {
|
||||
debug("%s: could not find phandle\n",
|
||||
np->full_name);
|
||||
|
|
|
@ -391,7 +391,7 @@ ofnode ofnode_get_by_phandle(uint phandle)
|
|||
ofnode node;
|
||||
|
||||
if (of_live_active())
|
||||
node = np_to_ofnode(of_find_node_by_phandle(phandle));
|
||||
node = np_to_ofnode(of_find_node_by_phandle(NULL, phandle));
|
||||
else
|
||||
node.of_offset = fdt_node_offset_by_phandle(gd->fdt_blob,
|
||||
phandle);
|
||||
|
|
|
@ -258,11 +258,13 @@ struct device_node *of_find_node_by_prop_value(struct device_node *from,
|
|||
/**
|
||||
* of_find_node_by_phandle() - Find a node given a phandle
|
||||
*
|
||||
* @root: root node to start from (NULL for default device tree)
|
||||
* @handle: phandle of the node to find
|
||||
*
|
||||
* Return: node pointer, or NULL if not found
|
||||
*/
|
||||
struct device_node *of_find_node_by_phandle(phandle handle);
|
||||
struct device_node *of_find_node_by_phandle(struct device_node *root,
|
||||
phandle handle);
|
||||
|
||||
/**
|
||||
* of_read_u8() - Find and read a 8-bit integer from a property
|
||||
|
|
|
@ -501,6 +501,8 @@ int ofnode_get_path(ofnode node, char *buf, int buflen);
|
|||
/**
|
||||
* ofnode_get_by_phandle() - get ofnode from phandle
|
||||
*
|
||||
* This uses the default (control) device tree
|
||||
*
|
||||
* @phandle: phandle to look up
|
||||
* Return: ofnode reference to the phandle
|
||||
*/
|
||||
|
|
Loading…
Reference in a new issue