microblaze: Added fdt chosen capability for timer
This lets a dts author flag a particular timer in the system as the system timer. If the chosen node contains a "system-timer=<&foo>" entry than that handle will be used to determine the system timer. In no such entry exists then the first found timer will be used (current behaviour). Signed-off-by: Peter A. G. Crosthwaite <peter.crosthwaite@petalogix.com> Signed-off-by: Michal Simek <monstr@monstr.eu>
This commit is contained in:
Родитель
9998517a27
Коммит
88d23b4462
|
@ -257,7 +257,15 @@ void __init time_init(void)
|
||||||
0
|
0
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
timer = of_find_compatible_node(NULL, NULL, "xlnx,xps-timer-1.00.a");
|
prop = of_get_property(of_chosen, "system-timer", NULL);
|
||||||
|
if (prop)
|
||||||
|
timer = of_find_node_by_phandle(be32_to_cpup(prop));
|
||||||
|
else
|
||||||
|
pr_info("No chosen timer found, using default\n");
|
||||||
|
|
||||||
|
if (!timer)
|
||||||
|
timer = of_find_compatible_node(NULL, NULL,
|
||||||
|
"xlnx,xps-timer-1.00.a");
|
||||||
BUG_ON(!timer);
|
BUG_ON(!timer);
|
||||||
|
|
||||||
timer_baseaddr = be32_to_cpup(of_get_property(timer, "reg", NULL));
|
timer_baseaddr = be32_to_cpup(of_get_property(timer, "reg", NULL));
|
||||||
|
|
Загрузка…
Ссылка в новой задаче