fdt: Add new fdt_create_phandle helper
authorKumar Gala <galak@kernel.crashing.org>
Mon, 1 Aug 2011 05:25:20 +0000 (00:25 -0500)
committerKumar Gala <galak@kernel.crashing.org>
Fri, 30 Sep 2011 00:01:05 +0000 (19:01 -0500)
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>
common/fdt_support.c
include/fdt_support.h

index 8f7323d321a39bc9fe4d2f7c457a565a5be75087..46aa84220b2b981d0ea42be3e67ab50af1ed4958 100644 (file)
@@ -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)
 {
index fdb93077035d48710abbea83b17078b353015e00..8f06aacf7ab50313adfb562ea18d3cf734f9e2c8 100644 (file)
@@ -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,