Add helper method fdt_find_child to make access to child nodes easier.
Some FDT nodes have complex properties organized as a child sub-nodes (e.g. timing for LCD panel) we need easy way to obtain handles for these sub-nodes
This commit is contained in:
parent
d4a944133d
commit
721376a5c9
@ -57,6 +57,7 @@ __FBSDID("$FreeBSD$");
|
||||
|
||||
#define FDT_COMPAT_LEN 255
|
||||
#define FDT_TYPE_LEN 64
|
||||
#define FDT_NAME_LEN 32
|
||||
|
||||
#define FDT_REG_CELLS 4
|
||||
|
||||
@ -309,6 +310,22 @@ fdt_find_compatible(phandle_t start, const char *compat, int strict)
|
||||
return (0);
|
||||
}
|
||||
|
||||
phandle_t
|
||||
fdt_find_child(phandle_t start, const char *child_name)
|
||||
{
|
||||
char name[FDT_NAME_LEN];
|
||||
phandle_t child;
|
||||
|
||||
for (child = OF_child(start); child != 0; child = OF_peer(child)) {
|
||||
if (OF_getprop(child, "name", name, sizeof(name)) <= 0)
|
||||
continue;
|
||||
if (strcmp(name, child_name) == 0)
|
||||
return (child);
|
||||
}
|
||||
|
||||
return (0);
|
||||
}
|
||||
|
||||
phandle_t
|
||||
fdt_depth_search_compatible(phandle_t start, const char *compat, int strict)
|
||||
{
|
||||
|
@ -81,6 +81,7 @@ u_long fdt_data_get(void *, int);
|
||||
int fdt_data_to_res(pcell_t *, int, int, u_long *, u_long *);
|
||||
phandle_t fdt_find_compatible(phandle_t, const char *, int);
|
||||
phandle_t fdt_depth_search_compatible(phandle_t, const char *, int);
|
||||
phandle_t fdt_find_child(phandle_t, const char *);
|
||||
int fdt_get_mem_regions(struct mem_region *, int *, uint32_t *);
|
||||
int fdt_get_reserved_regions(struct mem_region *, int *);
|
||||
int fdt_get_phyaddr(phandle_t, device_t, int *, void **);
|
||||
|
Loading…
Reference in New Issue
Block a user