aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/sunxi/patches-3.12/142-register-a31-reset.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/sunxi/patches-3.12/142-register-a31-reset.patch')
-rw-r--r--target/linux/sunxi/patches-3.12/142-register-a31-reset.patch41
1 files changed, 41 insertions, 0 deletions
diff --git a/target/linux/sunxi/patches-3.12/142-register-a31-reset.patch b/target/linux/sunxi/patches-3.12/142-register-a31-reset.patch
new file mode 100644
index 0000000000..4853647298
--- /dev/null
+++ b/target/linux/sunxi/patches-3.12/142-register-a31-reset.patch
@@ -0,0 +1,41 @@
+From ba9cb86c174603252ee5b5f2b277dab46a99cf02 Mon Sep 17 00:00:00 2001
+From: Maxime Ripard <maxime.ripard@free-electrons.com>
+Date: Sat, 5 Oct 2013 14:53:48 +0200
+Subject: [PATCH] ARM: sunxi: Register the A31 reset IP in init_time
+
+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>
+---
+ arch/arm/mach-sunxi/sunxi.c | 10 +++++++++-
+ 1 file changed, 9 insertions(+), 1 deletion(-)
+
+diff --git a/arch/arm/mach-sunxi/sunxi.c b/arch/arm/mach-sunxi/sunxi.c
+index f184f6c..2e79736 100644
+--- a/arch/arm/mach-sunxi/sunxi.c
++++ b/arch/arm/mach-sunxi/sunxi.c
+@@ -142,9 +142,17 @@ static void __init sunxi_dt_init(void)
+ NULL,
+ };
+
++extern void __init sun6i_reset_init(void);
++static void __init sun6i_timer_init(void)
++{
++ sunxi_init_clocks();
++ sun6i_reset_init();
++ clocksource_of_init();
++}
++
+ DT_MACHINE_START(SUN6I_DT, "Allwinner sun6i (A31) Family")
+ .init_machine = sunxi_dt_init,
+- .init_time = sunxi_timer_init,
++ .init_time = sun6i_timer_init,
+ .dt_compat = sun6i_board_dt_compat,
+ .restart = sun6i_restart,
+ MACHINE_END
+--
+1.8.4
+