summaryrefslogtreecommitdiff
path: root/common/fdt_support.c
diff options
context:
space:
mode:
authorKumar Gala <galak@kernel.crashing.org>2007-10-24 10:21:57 -0500
committerKumar Gala <galak@kernel.crashing.org>2007-11-21 14:01:49 -0600
commita3c2933e02503fe36ade2c1b65af46f2b7a168e7 (patch)
tree619d4e75be8301bcaca1e1845d932902ace9d7f2 /common/fdt_support.c
parented1353d74b9ce8a7fcd660570b848a184d614b5f (diff)
downloadu-boot-imx-a3c2933e02503fe36ade2c1b65af46f2b7a168e7.zip
u-boot-imx-a3c2933e02503fe36ade2c1b65af46f2b7a168e7.tar.gz
u-boot-imx-a3c2933e02503fe36ade2c1b65af46f2b7a168e7.tar.bz2
Removed some nonused fdt functions and moved fdt_find_and_setprop out of libfdt
Removed: fdt_node_is_compatible fdt_find_node_by_type fdt_find_compatible_node To ease merge of newer libfdt as we aren't using them anywhere at this time. Also moved fdt_find_and_setprop out of libfdt into fdt_support.c for the same reason. Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Diffstat (limited to 'common/fdt_support.c')
-rw-r--r--common/fdt_support.c26
1 files changed, 26 insertions, 0 deletions
diff --git a/common/fdt_support.c b/common/fdt_support.c
index 175d59e..6a5b27a 100644
--- a/common/fdt_support.c
+++ b/common/fdt_support.c
@@ -44,6 +44,32 @@ struct fdt_header *fdt;
/********************************************************************/
+/**
+ * fdt_find_and_setprop: Find a node and set it's property
+ *
+ * @fdt: ptr to device tree
+ * @node: path of node
+ * @prop: property name
+ * @val: ptr to new value
+ * @len: length of new property value
+ * @create: flag to create the property if it doesn't exist
+ *
+ * Convenience function to directly set a property given the path to the node.
+ */
+int fdt_find_and_setprop(void *fdt, const char *node, const char *prop,
+ const void *val, int len, int create)
+{
+ int nodeoff = fdt_find_node_by_path(fdt, node);
+
+ if (nodeoff < 0)
+ return nodeoff;
+
+ if ((!create) && (fdt_get_property(fdt, nodeoff, prop, 0) == NULL))
+ return 0; /* create flag not set; so exit quietly */
+
+ return fdt_setprop(fdt, nodeoff, prop, val, len);
+}
+
int fdt_chosen(void *fdt, ulong initrd_start, ulong initrd_end, int force)
{
int nodeoffset;