aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/of/pdt.c
diff options
context:
space:
mode:
authorShawn Guo <shawn.guo@linaro.org>2011-08-15 03:28:14 -0400
committerGrant Likely <grant.likely@secretlab.ca>2011-09-22 13:12:10 -0400
commit611cad720148c899db5a383c1c676fd820df7023 (patch)
tree780adeaa4418b7b1e76d4a3b8fe600f04475c7df /drivers/of/pdt.c
parenta81dd364de50bc1eb1519af0ecfa100753a09351 (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. v3: Split out automatic addition of aliases on id lookup so that it can be debated separately from the core functionality. v2: - Add of_chosen/of_aliases populating and of_alias_scan() invocation for OF_PROMTREE. - Add locking - rework parse loop Signed-off-by: Shawn Guo <shawn.guo@linaro.org> Acked-by: David S. Miller <davem@davemloft.net> Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
Diffstat (limited to 'drivers/of/pdt.c')
-rw-r--r--drivers/of/pdt.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/of/pdt.c b/drivers/of/pdt.c
index 4d87b5dc9284..bc5b3990f6ed 100644
--- a/drivers/of/pdt.c
+++ b/drivers/of/pdt.c
@@ -229,6 +229,11 @@ static struct device_node * __init of_pdt_build_tree(struct device_node *parent,
229 return ret; 229 return ret;
230} 230}
231 231
232static void *kernel_tree_alloc(u64 size, u64 align)
233{
234 return prom_early_alloc(size);
235}
236
232void __init of_pdt_build_devicetree(phandle root_node, struct of_pdt_ops *ops) 237void __init of_pdt_build_devicetree(phandle root_node, struct of_pdt_ops *ops)
233{ 238{
234 struct device_node **nextp; 239 struct device_node **nextp;
@@ -245,4 +250,7 @@ void __init of_pdt_build_devicetree(phandle root_node, struct of_pdt_ops *ops)
245 nextp = &allnodes->allnext; 250 nextp = &allnodes->allnext;
246 allnodes->child = of_pdt_build_tree(allnodes, 251 allnodes->child = of_pdt_build_tree(allnodes,
247 of_pdt_prom_ops->getchild(allnodes->phandle), &nextp); 252 of_pdt_prom_ops->getchild(allnodes->phandle), &nextp);
253
254 /* Get pointer to "/chosen" and "/aliasas" nodes for use everywhere */
255 of_alias_scan(kernel_tree_alloc);
248} 256}