summaryrefslogtreecommitdiff
path: root/src/include/device_tree.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/include/device_tree.h')
-rw-r--r--src/include/device_tree.h8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/include/device_tree.h b/src/include/device_tree.h
index 96902b893b..8280dad077 100644
--- a/src/include/device_tree.h
+++ b/src/include/device_tree.h
@@ -47,6 +47,7 @@ struct fdt_header {
#define FDT_TOKEN_END_NODE 2
#define FDT_TOKEN_PROPERTY 3
#define FDT_TOKEN_END 9
+#define FDT_PHANDLE_ILLEGAL 0xdeadbeef
struct fdt_property
{
@@ -71,6 +72,8 @@ struct device_tree_property
struct device_tree_node
{
const char *name;
+ uint32_t phandle;
+
// List of struct device_tree_property-s.
struct list_node properties;
// List of struct device_tree_nodes.
@@ -91,6 +94,7 @@ struct device_tree
{
const void *header;
uint32_t header_size;
+ uint32_t max_phandle;
struct list_node reserve_map;
@@ -136,6 +140,8 @@ void dt_read_cell_props(const struct device_tree_node *node, u32 *addrcp,
// represented as an array of strings.
struct device_tree_node *dt_find_node(struct device_tree_node *parent, const char **path,
u32 *addrcp, u32 *sizecp, int create);
+struct device_tree_node *dt_find_node_by_phandle(struct device_tree_node *root,
+ uint32_t phandle);
// Look up or create a node relative to a parent node, through its path
// represented as a string of '/' separated node names.
struct device_tree_node *dt_find_node_by_path(struct device_tree_node *parent, const char *path,
@@ -150,8 +156,6 @@ struct device_tree_node *dt_find_next_compat_child(struct device_tree_node *pare
// Look up a node relative to a parent node, through its property value.
struct device_tree_node *dt_find_prop_value(struct device_tree_node *parent, const char *name,
void *data, size_t size);
-// Return the phandle
-uint32_t dt_get_phandle(const struct device_tree_node *node);
// Write src into *dest as a 'length'-byte big-endian integer.
void dt_write_int(u8 *dest, u64 src, size_t length);
// Delete a property