4 #ifndef __DEVICE_TREE_H__
5 #define __DEVICE_TREE_H__
31 #define FDT_HEADER_MAGIC 0xd00dfeed
32 #define FDT_SUPPORTED_VERSION 17
33 #define FDT_TOKEN_BEGIN_NODE 1
34 #define FDT_TOKEN_END_NODE 2
35 #define FDT_TOKEN_PROPERTY 3
36 #define FDT_TOKEN_END 9
37 #define FDT_PHANDLE_ILLEGAL 0xdeadbeef
123 u32 *addrcp,
u32 *sizecp,
int create);
129 const char *path,
u32 *addrcp,
u32 *sizecp,
int create);
142 void *data,
size_t size);
149 void *data,
size_t size);
157 void *data,
size_t size,
int create);
160 const void **data,
size_t *size);
int dt_apply_overlay(struct device_tree *tree, struct device_tree *overlay)
struct device_tree_node * dt_find_node_by_phandle(struct device_tree_node *root, uint32_t phandle)
void dt_add_u32_prop(struct device_tree_node *node, const char *name, u32 val)
int dt_apply_fixups(struct device_tree *tree)
Function to apply fixups.
void dt_print_node(const struct device_tree_node *node)
void dt_read_cell_props(const struct device_tree_node *node, u32 *addrcp, u32 *sizecp)
struct device_tree_node * dt_find_node(struct device_tree_node *parent, const char **path, u32 *addrcp, u32 *sizecp, int create)
void fdt_print_node(const void *blob, uint32_t offset)
struct device_tree_node * dt_find_next_compat_child(struct device_tree_node *parent, struct device_tree_node *child, const char *compat)
void dt_add_bin_prop(struct device_tree_node *node, const char *name, void *data, size_t size)
void dt_delete_prop(struct device_tree_node *node, const char *name)
int fdt_next_property(const void *blob, uint32_t offset, struct fdt_property *prop)
int fdt_node_name(const void *blob, uint32_t offset, const char **name)
struct device_tree_node * dt_init_reserved_memory_node(struct device_tree *tree)
uint32_t dt_flat_size(const struct device_tree *tree)
struct device_tree_node * dt_find_prop_value(struct device_tree_node *parent, const char *name, void *data, size_t size)
void dt_find_bin_prop(const struct device_tree_node *node, const char *name, const void **data, size_t *size)
int dt_set_bin_prop_by_path(struct device_tree *tree, const char *path, void *data, size_t size, int create)
void dt_add_string_prop(struct device_tree_node *node, const char *name, const char *str)
void dt_flatten(const struct device_tree *tree, void *dest)
struct device_tree_node * dt_find_compat(struct device_tree_node *parent, const char *compatible)
struct device_tree_node * dt_find_node_by_path(struct device_tree *tree, const char *path, u32 *addrcp, u32 *sizecp, int create)
struct device_tree * fdt_unflatten(const void *blob)
struct device_tree_node * dt_find_node_by_alias(struct device_tree *tree, const char *alias)
void dt_add_reg_prop(struct device_tree_node *node, u64 *addrs, u64 *sizes, int count, u32 addr_cells, u32 size_cells)
int fdt_skip_node(const void *blob, uint32_t offset)
const char * dt_find_string_prop(const struct device_tree_node *node, const char *name)
void dt_add_u64_prop(struct device_tree_node *node, const char *name, u64 val)
struct list_node device_tree_fixups
void dt_write_int(u8 *dest, u64 src, size_t length)
unsigned long long uint64_t
int(* fixup)(struct device_tree_fixup *fixup, struct device_tree *tree)
The function which does the fixing.
struct list_node children
struct list_node properties
struct list_node reserve_map
struct device_tree_node * root