diff options
| author | Kumar Gala <galak@kernel.crashing.org> | 2011-08-01 00:25:20 -0500 | 
|---|---|---|
| committer | Kumar Gala <galak@kernel.crashing.org> | 2011-09-29 19:01:05 -0500 | 
| commit | 10aeabd18657edf6d65e45bd4c63a48cc794fef0 (patch) | |
| tree | ffd9f9baa5b9664eefc92e0882109fb29275781f | |
| parent | f117c0f0731e99a5e468a300a71b34afa337e133 (diff) | |
| download | olio-uboot-2014.01-10aeabd18657edf6d65e45bd4c63a48cc794fef0.tar.xz olio-uboot-2014.01-10aeabd18657edf6d65e45bd4c63a48cc794fef0.zip | |
fdt: Add new fdt_create_phandle helper
Add a helper function that will return a phandle value for the given
node.  If the node doesn't have a phandle already one will be created.
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Acked-by: Gerald Van Baren <vanbaren@cideas.com>
| -rw-r--r-- | common/fdt_support.c | 20 | ||||
| -rw-r--r-- | include/fdt_support.h | 1 | 
2 files changed, 21 insertions, 0 deletions
| diff --git a/common/fdt_support.c b/common/fdt_support.c index 8f7323d32..46aa84220 100644 --- a/common/fdt_support.c +++ b/common/fdt_support.c @@ -1235,6 +1235,26 @@ int fdt_set_phandle(void *fdt, int nodeoffset, uint32_t phandle)  	return ret;  } +/* + * fdt_create_phandle: Create a phandle property for the given node + * + * @fdt: ptr to device tree + * @nodeoffset: node to update + */ +int fdt_create_phandle(void *fdt, int nodeoffset) +{ +	/* see if there is a phandle already */ +	int phandle = fdt_get_phandle(fdt, nodeoffset); + +	/* if we got 0, means no phandle so create one */ +	if (phandle == 0) { +		phandle = fdt_alloc_phandle(fdt); +		fdt_set_phandle(fdt, nodeoffset, phandle); +	} + +	return phandle; +} +  #if defined(CONFIG_VIDEO)  int fdt_add_edid(void *blob, const char *compat, unsigned char *edid_buf)  { diff --git a/include/fdt_support.h b/include/fdt_support.h index fdb930770..8f06aacf7 100644 --- a/include/fdt_support.h +++ b/include/fdt_support.h @@ -90,6 +90,7 @@ int fdt_node_offset_by_compat_reg(void *blob, const char *compat,  					phys_addr_t compat_off);  int fdt_alloc_phandle(void *blob);  int fdt_set_phandle(void *fdt, int nodeoffset, uint32_t phandle); +int fdt_create_phandle(void *fdt, int nodeoffset);  int fdt_add_edid(void *blob, const char *compat, unsigned char *buf);  int fdt_verify_alias_address(void *fdt, int anode, const char *alias, |