aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorSimon Glass2012-10-25 16:30:59 +0000
committerGerald Van Baren2012-11-12 23:00:34 -0500
commit332ab0d54aaa5b8b27096996d10c8c6183c6972c (patch)
treec9826049418146dbffb389eacd90c12f5a38f8c5 /lib
parent09258f1e8b12acc4a2a02b60d942660798038fba (diff)
fdt: Add function to get a config string from device tree
Add a function to look up a configuration string such as board name and returns its value. We look in the "/config" node for this. Signed-off-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'lib')
-rw-r--r--lib/fdtdec.c28
1 files changed, 18 insertions, 10 deletions
diff --git a/lib/fdtdec.c b/lib/fdtdec.c
index 1f500224d94..2d60c8aaafe 100644
--- a/lib/fdtdec.c
+++ b/lib/fdtdec.c
@@ -513,16 +513,6 @@ const u8 *fdtdec_locate_byte_array(const void *blob, int node,
return cell;
}
-/**
- * Look in the FDT for a config item with the given name and return its value
- * as a 32-bit integer. The property must have at least 4 bytes of data. The
- * value of the first cell is returned.
- *
- * @param blob FDT blob to use
- * @param prop_name Node property name
- * @param default_val default value to return if the property is not found
- * @return integer value, if found, or default_val if not
- */
int fdtdec_get_config_int(const void *blob, const char *prop_name,
int default_val)
{
@@ -534,3 +524,21 @@ int fdtdec_get_config_int(const void *blob, const char *prop_name,
return default_val;
return fdtdec_get_int(blob, config_node, prop_name, default_val);
}
+
+char *fdtdec_get_config_string(const void *blob, const char *prop_name)
+{
+ const char *nodep;
+ int nodeoffset;
+ int len;
+
+ debug("%s: %s\n", __func__, prop_name);
+ nodeoffset = fdt_path_offset(blob, "/config");
+ if (nodeoffset < 0)
+ return NULL;
+
+ nodep = fdt_getprop(blob, nodeoffset, prop_name, &len);
+ if (!nodep)
+ return NULL;
+
+ return (char *)nodep;
+}