summaryrefslogtreecommitdiff
path: root/drivers/core
diff options
context:
space:
mode:
authorDario Binacchi <dariobin@libero.it>2020-03-29 18:04:42 +0200
committerSimon Glass <sjg@chromium.org>2020-04-16 08:07:58 -0600
commit59006608d65b242b19176f1a1fdeeb99391654d2 (patch)
treea1ee79c9c96125e0589a60651fe5298d86161f75 /drivers/core
parent4bb7075c830c6f4e4512fe0277ff1f08c5a9e084 (diff)
downloadu-boot-59006608d65b242b19176f1a1fdeeb99391654d2.tar.gz
dm: core: refactor functions reading an u32 from dt
Now reading a 32 bit value from a device-tree property can be expressed as reading the first element of an array with a single value. Signed-off-by: Dario Binacchi <dariobin@libero.it> Reviewed-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'drivers/core')
-rw-r--r--drivers/core/of_access.c16
-rw-r--r--drivers/core/ofnode.c23
2 files changed, 3 insertions, 36 deletions
diff --git a/drivers/core/of_access.c b/drivers/core/of_access.c
index 8b2ce7a0c2..c54baa140a 100644
--- a/drivers/core/of_access.c
+++ b/drivers/core/of_access.c
@@ -449,21 +449,7 @@ static void *of_find_property_value_of_size(const struct device_node *np,
int of_read_u32(const struct device_node *np, const char *propname, u32 *outp)
{
- const __be32 *val;
-
- debug("%s: %s: ", __func__, propname);
- if (!np)
- return -EINVAL;
- val = of_find_property_value_of_size(np, propname, sizeof(*outp));
- if (IS_ERR(val)) {
- debug("(not found)\n");
- return PTR_ERR(val);
- }
-
- *outp = be32_to_cpup(val);
- debug("%#x (%d)\n", *outp, *outp);
-
- return 0;
+ return of_read_u32_index(np, propname, 0, outp);
}
int of_read_u32_array(const struct device_node *np, const char *propname,
diff --git a/drivers/core/ofnode.c b/drivers/core/ofnode.c
index 5bc3b02996..b0be7cbe19 100644
--- a/drivers/core/ofnode.c
+++ b/drivers/core/ofnode.c
@@ -18,32 +18,13 @@
int ofnode_read_u32(ofnode node, const char *propname, u32 *outp)
{
- assert(ofnode_valid(node));
- debug("%s: %s: ", __func__, propname);
-
- if (ofnode_is_np(node)) {
- return of_read_u32(ofnode_to_np(node), propname, outp);
- } else {
- const fdt32_t *cell;
- int len;
-
- cell = fdt_getprop(gd->fdt_blob, ofnode_to_offset(node),
- propname, &len);
- if (!cell || len < sizeof(int)) {
- debug("(not found)\n");
- return -EINVAL;
- }
- *outp = fdt32_to_cpu(cell[0]);
- }
- debug("%#x (%d)\n", *outp, *outp);
-
- return 0;
+ return ofnode_read_u32_index(node, propname, 0, outp);
}
u32 ofnode_read_u32_default(ofnode node, const char *propname, u32 def)
{
assert(ofnode_valid(node));
- ofnode_read_u32(node, propname, &def);
+ ofnode_read_u32_index(node, propname, 0, &def);
return def;
}