aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-dove/board-dt.c
diff options
context:
space:
mode:
authorSebastian Hesselbarth <sebastian.hesselbarth@gmail.com>2013-07-02 07:03:40 -0400
committerJason Cooper <jason@lakedaemon.net>2013-07-25 17:07:14 -0400
commitf07d73e33d0eb9858d48b81eb7037e132293ed84 (patch)
tree792e1df1ab67b60abcbd9c57fb5f8221b6ef4f26 /arch/arm/mach-dove/board-dt.c
parentcabbd6bd15723ffa60f954f3a6c76dc45062289b (diff)
ARM: dove: convert to DT irqchip and clocksource
With recent support for true irqchip and clocksource drivers for Orion SoCs, now make use of it on DT enabled Dove boards. Signed-off-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com> Signed-off-by: Jason Cooper <jason@lakedaemon.net>
Diffstat (limited to 'arch/arm/mach-dove/board-dt.c')
-rw-r--r--arch/arm/mach-dove/board-dt.c23
1 files changed, 16 insertions, 7 deletions
diff --git a/arch/arm/mach-dove/board-dt.c b/arch/arm/mach-dove/board-dt.c
index b5ccc1c05563..49f72a848423 100644
--- a/arch/arm/mach-dove/board-dt.c
+++ b/arch/arm/mach-dove/board-dt.c
@@ -10,11 +10,14 @@
10 10
11#include <linux/init.h> 11#include <linux/init.h>
12#include <linux/clk-provider.h> 12#include <linux/clk-provider.h>
13#include <linux/clocksource.h>
14#include <linux/irqchip.h>
13#include <linux/of.h> 15#include <linux/of.h>
14#include <linux/of_platform.h> 16#include <linux/of_platform.h>
15#include <linux/platform_data/usb-ehci-orion.h> 17#include <linux/platform_data/usb-ehci-orion.h>
16#include <asm/hardware/cache-tauros2.h> 18#include <asm/hardware/cache-tauros2.h>
17#include <asm/mach/arch.h> 19#include <asm/mach/arch.h>
20#include <mach/dove.h>
18#include <mach/pm.h> 21#include <mach/pm.h>
19#include <plat/common.h> 22#include <plat/common.h>
20#include <plat/irq.h> 23#include <plat/irq.h>
@@ -42,10 +45,17 @@ static void __init dove_legacy_clk_init(void)
42 of_clk_get_from_provider(&clkspec)); 45 of_clk_get_from_provider(&clkspec));
43} 46}
44 47
45static void __init dove_of_clk_init(void) 48static void __init dove_dt_time_init(void)
46{ 49{
47 of_clk_init(NULL); 50 of_clk_init(NULL);
48 dove_legacy_clk_init(); 51 clocksource_of_init();
52}
53
54static void __init dove_dt_init_early(void)
55{
56 mvebu_mbus_init("marvell,dove-mbus",
57 BRIDGE_WINS_BASE, BRIDGE_WINS_SZ,
58 DOVE_MC_WINS_BASE, DOVE_MC_WINS_SZ);
49} 59}
50 60
51static void __init dove_dt_init(void) 61static void __init dove_dt_init(void)
@@ -57,8 +67,8 @@ static void __init dove_dt_init(void)
57#endif 67#endif
58 dove_setup_cpu_wins(); 68 dove_setup_cpu_wins();
59 69
60 /* Setup root of clk tree */ 70 /* Setup clocks for legacy devices */
61 dove_of_clk_init(); 71 dove_legacy_clk_init();
62 72
63 /* Internal devices not ported to DT yet */ 73 /* Internal devices not ported to DT yet */
64 dove_pcie_init(1, 1); 74 dove_pcie_init(1, 1);
@@ -73,9 +83,8 @@ static const char * const dove_dt_board_compat[] = {
73 83
74DT_MACHINE_START(DOVE_DT, "Marvell Dove (Flattened Device Tree)") 84DT_MACHINE_START(DOVE_DT, "Marvell Dove (Flattened Device Tree)")
75 .map_io = dove_map_io, 85 .map_io = dove_map_io,
76 .init_early = dove_init_early, 86 .init_early = dove_dt_init_early,
77 .init_irq = orion_dt_init_irq, 87 .init_time = dove_dt_time_init,
78 .init_time = dove_timer_init,
79 .init_machine = dove_dt_init, 88 .init_machine = dove_dt_init,
80 .restart = dove_restart, 89 .restart = dove_restart,
81 .dt_compat = dove_dt_board_compat, 90 .dt_compat = dove_dt_board_compat,