|
@@ -188,6 +188,32 @@ int fdt_setprop(void *fdt, int nodeoffset, const char *name,
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
+/**
|
|
|
+ * 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_delprop(void *fdt, int nodeoffset, const char *name)
|
|
|
{
|
|
|
struct fdt_property *prop;
|