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>
This commit is contained in:
parent
4bb7075c83
commit
59006608d6
@ -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)
|
int of_read_u32(const struct device_node *np, const char *propname, u32 *outp)
|
||||||
{
|
{
|
||||||
const __be32 *val;
|
return of_read_u32_index(np, propname, 0, outp);
|
||||||
|
|
||||||
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;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int of_read_u32_array(const struct device_node *np, const char *propname,
|
int of_read_u32_array(const struct device_node *np, const char *propname,
|
||||||
|
@ -18,32 +18,13 @@
|
|||||||
|
|
||||||
int ofnode_read_u32(ofnode node, const char *propname, u32 *outp)
|
int ofnode_read_u32(ofnode node, const char *propname, u32 *outp)
|
||||||
{
|
{
|
||||||
assert(ofnode_valid(node));
|
return ofnode_read_u32_index(node, propname, 0, outp);
|
||||||
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;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
u32 ofnode_read_u32_default(ofnode node, const char *propname, u32 def)
|
u32 ofnode_read_u32_default(ofnode node, const char *propname, u32 def)
|
||||||
{
|
{
|
||||||
assert(ofnode_valid(node));
|
assert(ofnode_valid(node));
|
||||||
ofnode_read_u32(node, propname, &def);
|
ofnode_read_u32_index(node, propname, 0, &def);
|
||||||
|
|
||||||
return def;
|
return def;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user