diff options
author | Kumar Gala <galak@kernel.crashing.org> | 2007-10-24 10:21:57 -0500 |
---|---|---|
committer | Kumar Gala <galak@kernel.crashing.org> | 2007-11-21 14:01:49 -0600 |
commit | a3c2933e02503fe36ade2c1b65af46f2b7a168e7 (patch) | |
tree | 619d4e75be8301bcaca1e1845d932902ace9d7f2 /common/fdt_support.c | |
parent | ed1353d74b9ce8a7fcd660570b848a184d614b5f (diff) | |
download | u-boot-a3c2933e02503fe36ade2c1b65af46f2b7a168e7.tar.gz u-boot-a3c2933e02503fe36ade2c1b65af46f2b7a168e7.tar.xz u-boot-a3c2933e02503fe36ade2c1b65af46f2b7a168e7.zip |
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.c | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/common/fdt_support.c b/common/fdt_support.c index 175d59eb99..6a5b27aec5 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; |