ARM: sunxi: Register the A31 reset IP in init_time
authorMaxime Ripard <maxime.ripard@free-electrons.com>
Sat, 5 Oct 2013 12:53:48 +0000 (14:53 +0200)
committerMaxime Ripard <maxime.ripard@free-electrons.com>
Fri, 22 Nov 2013 20:30:07 +0000 (21:30 +0100)
The A31 has a reset IP that maintains a few other IPs in reset by
default. Among these IPs are the UARTs, and most notably the timers. We
thus need to register the reset driver before initializing the timers so
that the reset timer can use the reset framework.

Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Acked-by: Philipp Zabel <p.zabel@pengutronix.de>
arch/arm/mach-sunxi/sunxi.c

index 61d3a387f01c52f746568f7d075f92704a471ce6..594ac48fc029ea3c5a83b56870c62de9d46c71ef 100644 (file)
@@ -10,6 +10,8 @@
  * warranty of any kind, whether express or implied.
  */
 
+#include <linux/clk-provider.h>
+#include <linux/clocksource.h>
 #include <linux/delay.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
@@ -132,8 +134,17 @@ static const char * const sun6i_board_dt_compat[] = {
        NULL,
 };
 
+extern void __init sun6i_reset_init(void);
+static void __init sun6i_timer_init(void)
+{
+       of_clk_init(NULL);
+       sun6i_reset_init();
+       clocksource_of_init();
+}
+
 DT_MACHINE_START(SUN6I_DT, "Allwinner sun6i (A31) Family")
        .init_machine   = sunxi_dt_init,
+       .init_time      = sun6i_timer_init,
        .dt_compat      = sun6i_board_dt_compat,
        .restart        = sun6i_restart,
 MACHINE_END