|
|
|
From dae0e37c2df466f5eb6459d05f392e86b4236666 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>
|
|
|
|
Acked-by: Philipp Zabel <p.zabel@pengutronix.de>
|
|
|
|
---
|
|
|
|
arch/arm/mach-sunxi/sunxi.c | 11 +++++++++++
|
|
|
|
1 file changed, 11 insertions(+)
|
|
|
|
|
|
|
|
--- a/arch/arm/mach-sunxi/sunxi.c
|
|
|
|
+++ b/arch/arm/mach-sunxi/sunxi.c
|
|
|
|
@@ -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
|
|
|
|
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
|