From: Kumar Gala Date: Mon, 1 Aug 2011 05:25:20 +0000 (-0500) Subject: fdt: Add new fdt_create_phandle helper X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=10aeabd18657edf6d65e45bd4c63a48cc794fef0;p=project%2Fbcm63xx%2Fu-boot.git 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 Acked-by: Gerald Van Baren --- diff --git a/common/fdt_support.c b/common/fdt_support.c index 8f7323d321..46aa84220b 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 fdb9307703..8f06aacf7a 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,