diff options
author | Shawn Guo <shawn.guo@linaro.org> | 2011-08-03 06:28:14 -0400 |
---|---|---|
committer | Grant Likely <grant.likely@secretlab.ca> | 2011-08-03 08:02:31 -0400 |
commit | 750f463a749e28464151ad26938d11b07b1c43cb (patch) | |
tree | 6aabb1512a4000615e93b25beccba606b62f7237 /include/linux | |
parent | ed8f37370d83e695c0a4fa5d5fc7a83ecb947526 (diff) |
dt: add of_alias_scan and of_alias_get_id
The patch adds function of_alias_scan to populate a global lookup
table with the properties of 'aliases' node and function
of_alias_get_id for drivers to find alias id from the lookup table.
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
[grant.likely: add locking and rework parse loop]
Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
Diffstat (limited to 'include/linux')
-rw-r--r-- | include/linux/of.h | 8 | ||||
-rw-r--r-- | include/linux/of_fdt.h | 1 |
2 files changed, 8 insertions, 1 deletions
diff --git a/include/linux/of.h b/include/linux/of.h index 0085bb01c041..bc3dc6399547 100644 --- a/include/linux/of.h +++ b/include/linux/of.h | |||
@@ -68,6 +68,7 @@ struct device_node { | |||
68 | /* Pointer for first entry in chain of all nodes. */ | 68 | /* Pointer for first entry in chain of all nodes. */ |
69 | extern struct device_node *allnodes; | 69 | extern struct device_node *allnodes; |
70 | extern struct device_node *of_chosen; | 70 | extern struct device_node *of_chosen; |
71 | extern struct device_node *of_aliases; | ||
71 | extern rwlock_t devtree_lock; | 72 | extern rwlock_t devtree_lock; |
72 | 73 | ||
73 | static inline bool of_have_populated_dt(void) | 74 | static inline bool of_have_populated_dt(void) |
@@ -209,6 +210,9 @@ extern int of_device_is_available(const struct device_node *device); | |||
209 | extern const void *of_get_property(const struct device_node *node, | 210 | extern const void *of_get_property(const struct device_node *node, |
210 | const char *name, | 211 | const char *name, |
211 | int *lenp); | 212 | int *lenp); |
213 | #define for_each_property(pp, properties) \ | ||
214 | for (pp = properties; pp != NULL; pp = pp->next) | ||
215 | |||
212 | extern int of_n_addr_cells(struct device_node *np); | 216 | extern int of_n_addr_cells(struct device_node *np); |
213 | extern int of_n_size_cells(struct device_node *np); | 217 | extern int of_n_size_cells(struct device_node *np); |
214 | extern const struct of_device_id *of_match_node( | 218 | extern const struct of_device_id *of_match_node( |
@@ -221,6 +225,10 @@ extern int of_parse_phandles_with_args(struct device_node *np, | |||
221 | const char *list_name, const char *cells_name, int index, | 225 | const char *list_name, const char *cells_name, int index, |
222 | struct device_node **out_node, const void **out_args); | 226 | struct device_node **out_node, const void **out_args); |
223 | 227 | ||
228 | extern void *early_init_dt_alloc_memory_arch(u64 size, u64 align); | ||
229 | extern void of_alias_scan(void); | ||
230 | extern int of_alias_get_id(struct device_node *np, const char *stem); | ||
231 | |||
224 | extern int of_machine_is_compatible(const char *compat); | 232 | extern int of_machine_is_compatible(const char *compat); |
225 | 233 | ||
226 | extern int prom_add_property(struct device_node* np, struct property* prop); | 234 | extern int prom_add_property(struct device_node* np, struct property* prop); |
diff --git a/include/linux/of_fdt.h b/include/linux/of_fdt.h index c84d900fbbb3..b74b74ffe0e7 100644 --- a/include/linux/of_fdt.h +++ b/include/linux/of_fdt.h | |||
@@ -97,7 +97,6 @@ extern void early_init_dt_check_for_initrd(unsigned long node); | |||
97 | extern int early_init_dt_scan_memory(unsigned long node, const char *uname, | 97 | extern int early_init_dt_scan_memory(unsigned long node, const char *uname, |
98 | int depth, void *data); | 98 | int depth, void *data); |
99 | extern void early_init_dt_add_memory_arch(u64 base, u64 size); | 99 | extern void early_init_dt_add_memory_arch(u64 base, u64 size); |
100 | extern void * early_init_dt_alloc_memory_arch(u64 size, u64 align); | ||
101 | extern u64 dt_mem_next_cell(int s, __be32 **cellp); | 100 | extern u64 dt_mem_next_cell(int s, __be32 **cellp); |
102 | 101 | ||
103 | /* | 102 | /* |