mirror of
https://github.com/xen-project/xen.git
synced 2026-10-29 10:40:03 +01:00
xen: arm: add two new device tree helpers
- dt_property_read_u64 - dt_find_node_by_type Signed-off-by: Ian Campbell <ian.campbell@citrix.com> Acked-by: Julien Grall <julien.grall@linaro.org>
This commit is contained in:
1 parent
7b8fca21df
commit
e1dbd62d48
2 files changed
+46
No files matched your search
@@ -511,6 +511,21 @@ bool_t dt_property_read_u32(const struct dt_device_node *np,
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
bool_t dt_property_read_u64(const struct dt_device_node *np,
|
||||
const char *name, u64 *out_value)
|
||||
{
|
||||
u32 len;
|
||||
const __be32 *val;
|
||||
|
||||
val = dt_get_property(np, name, &len);
|
||||
if ( !val || len < sizeof(*out_value) )
|
||||
return 0;
|
||||
|
||||
*out_value = dt_read_number(val, 2);
|
||||
|
||||
return 1;
|
||||
}
|
||||
int dt_property_read_string(const struct dt_device_node *np,
|
||||
const char *propname, const char **out_string)
|
||||
{
|
||||
@@ -576,6 +591,20 @@ struct dt_device_node *dt_find_node_by_name(struct dt_device_node *from,
|
||||
return np;
|
||||
}
|
||||
|
||||
struct dt_device_node *dt_find_node_by_type(struct dt_device_node *from,
|
||||
const char *type)
|
||||
{
|
||||
struct dt_device_node *np;
|
||||
struct dt_device_node *dt;
|
||||
|
||||
dt = from ? from->allnext : dt_host;
|
||||
dt_for_each_device_node(dt, np)
|
||||
if ( np->type && (dt_node_cmp(np->type, type) == 0) )
|
||||
break;
|
||||
|
||||
return np;
|
||||
}
|
||||
|
||||
struct dt_device_node *dt_find_node_by_path(const char *path)
|
||||
{
|
||||
struct dt_device_node *np;
|
||||
|
||||
@@ -351,6 +351,17 @@ const void *dt_get_property(const struct dt_device_node *np,
|
||||
*/
|
||||
bool_t dt_property_read_u32(const struct dt_device_node *np,
|
||||
const char *name, u32 *out_value);
|
||||
/**
|
||||
* dt_property_read_u64 - Helper to read a u64 property.
|
||||
* @np: node to get the value
|
||||
* @name: name of the property
|
||||
* @out_value: pointer to return value
|
||||
*
|
||||
* Return true if get the desired value.
|
||||
*/
|
||||
bool_t dt_property_read_u64(const struct dt_device_node *np,
|
||||
const char *name, u64 *out_value);
|
||||
|
||||
/**
|
||||
* dt_property_read_string - Find and read a string from a property
|
||||
* @np: Device node from which the property value is to be read
|
||||
@@ -399,6 +410,12 @@ bool_t dt_machine_is_compatible(const char *compat);
|
||||
struct dt_device_node *dt_find_node_by_name(struct dt_device_node *node,
|
||||
const char *name);
|
||||
|
||||
/**
|
||||
* dt_find_node_by_type - Find a node by its "type" property
|
||||
*/
|
||||
struct dt_device_node *dt_find_node_by_type(struct dt_device_node *from,
|
||||
const char *type);
|
||||
|
||||
/**
|
||||
* df_find_node_by_alias - Find a node matching an alias
|
||||
* @alias: The alias to match
|
||||
|
||||