Browse Source

fdt: Add a function to look up a /chosen property

It is sometimes useful to find a property in the chosen node. Add a function
for this.

Signed-off-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Simon Glass 9 years ago
parent
commit
3bc37a50e0
2 changed files with 20 additions and 6 deletions
  1. 10 1
      include/fdtdec.h
  2. 10 5
      lib/fdtdec.c

+ 10 - 1
include/fdtdec.h

@@ -628,7 +628,16 @@ int fdtdec_get_alias_seq(const void *blob, const char *base, int node,
 			 int *seqp);
 			 int *seqp);
 
 
 /**
 /**
- * Get the offset of the given chosen node
+ * Get a property from the /chosen node
+ *
+ * @param blob		Device tree blob (if NULL, then NULL is returned)
+ * @param name		Property name to look up
+ * @return Value of property, or NULL if it does not exist
+ */
+const char *fdtdec_get_chosen_prop(const void *blob, const char *name);
+
+/**
+ * Get the offset of the given /chosen node
  *
  *
  * This looks up a property in /chosen containing the path to another node,
  * This looks up a property in /chosen containing the path to another node,
  * then finds the offset of that node.
  * then finds the offset of that node.

+ 10 - 5
lib/fdtdec.c

@@ -601,16 +601,21 @@ int fdtdec_get_alias_seq(const void *blob, const char *base, int offset,
 	return -ENOENT;
 	return -ENOENT;
 }
 }
 
 
-int fdtdec_get_chosen_node(const void *blob, const char *name)
+const char *fdtdec_get_chosen_prop(const void *blob, const char *name)
 {
 {
-	const char *prop;
 	int chosen_node;
 	int chosen_node;
-	int len;
 
 
 	if (!blob)
 	if (!blob)
-		return -FDT_ERR_NOTFOUND;
+		return NULL;
 	chosen_node = fdt_path_offset(blob, "/chosen");
 	chosen_node = fdt_path_offset(blob, "/chosen");
-	prop = fdt_getprop(blob, chosen_node, name, &len);
+	return fdt_getprop(blob, chosen_node, name, NULL);
+}
+
+int fdtdec_get_chosen_node(const void *blob, const char *name)
+{
+	const char *prop;
+
+	prop = fdtdec_get_chosen_prop(blob, name);
 	if (!prop)
 	if (!prop)
 		return -FDT_ERR_NOTFOUND;
 		return -FDT_ERR_NOTFOUND;
 	return fdt_path_offset(blob, prop);
 	return fdt_path_offset(blob, prop);