diff options
author | Linus Walleij <linus.walleij@linaro.org> | 2013-11-19 16:17:06 -0500 |
---|---|---|
committer | Linus Walleij <linus.walleij@linaro.org> | 2013-11-26 15:01:58 -0500 |
commit | 8da15e17408c58ff45dc8e01dad8775246ef2220 (patch) | |
tree | 130a643093df26731cfd7e8ce8109fb5b72cfea5 /arch/arm/mach-ux500 | |
parent | bddd5a2bb335b101dc75233aea313b01d3459603 (diff) |
ARM: ux500: decomission the non-DT MTU init sequence
The MTU is now only initialized using the native clocksource
device tree matching.
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Diffstat (limited to 'arch/arm/mach-ux500')
-rw-r--r-- | arch/arm/mach-ux500/timer.c | 28 |
1 files changed, 2 insertions, 26 deletions
diff --git a/arch/arm/mach-ux500/timer.c b/arch/arm/mach-ux500/timer.c index ca60bbd9361b..1a9051b6f932 100644 --- a/arch/arm/mach-ux500/timer.c +++ b/arch/arm/mach-ux500/timer.c | |||
@@ -10,7 +10,6 @@ | |||
10 | #include <linux/clocksource.h> | 10 | #include <linux/clocksource.h> |
11 | #include <linux/of.h> | 11 | #include <linux/of.h> |
12 | #include <linux/of_address.h> | 12 | #include <linux/of_address.h> |
13 | #include <linux/platform_data/clocksource-nomadik-mtu.h> | ||
14 | 13 | ||
15 | #include <asm/smp_twd.h> | 14 | #include <asm/smp_twd.h> |
16 | 15 | ||
@@ -44,17 +43,14 @@ const static struct of_device_id prcmu_timer_of_match[] __initconst = { | |||
44 | 43 | ||
45 | void __init ux500_timer_init(void) | 44 | void __init ux500_timer_init(void) |
46 | { | 45 | { |
47 | void __iomem *mtu_timer_base; | ||
48 | void __iomem *prcmu_timer_base; | 46 | void __iomem *prcmu_timer_base; |
49 | void __iomem *tmp_base; | 47 | void __iomem *tmp_base; |
50 | struct device_node *np; | 48 | struct device_node *np; |
51 | 49 | ||
52 | if (cpu_is_u8500_family() || cpu_is_ux540_family()) { | 50 | if (cpu_is_u8500_family() || cpu_is_ux540_family()) |
53 | mtu_timer_base = __io_address(U8500_MTU0_BASE); | ||
54 | prcmu_timer_base = __io_address(U8500_PRCMU_TIMER_4_BASE); | 51 | prcmu_timer_base = __io_address(U8500_PRCMU_TIMER_4_BASE); |
55 | } else { | 52 | else |
56 | ux500_unknown_soc(); | 53 | ux500_unknown_soc(); |
57 | } | ||
58 | 54 | ||
59 | np = of_find_matching_node(NULL, prcmu_timer_of_match); | 55 | np = of_find_matching_node(NULL, prcmu_timer_of_match); |
60 | if (!np) | 56 | if (!np) |
@@ -67,26 +63,6 @@ void __init ux500_timer_init(void) | |||
67 | prcmu_timer_base = tmp_base; | 63 | prcmu_timer_base = tmp_base; |
68 | 64 | ||
69 | dt_fail: | 65 | dt_fail: |
70 | /* Doing it the old fashioned way. */ | ||
71 | |||
72 | /* | ||
73 | * Here we register the timerblocks active in the system. | ||
74 | * Localtimers (twd) is started when both cpu is up and running. | ||
75 | * MTU register a clocksource, clockevent and sched_clock. | ||
76 | * Since the MTU is located in the VAPE power domain | ||
77 | * it will be cleared in sleep which makes it unsuitable. | ||
78 | * We however need it as a timer tick (clockevent) | ||
79 | * during boot to calibrate delay until twd is started. | ||
80 | * RTC-RTT have problems as timer tick during boot since it is | ||
81 | * depending on delay which is not yet calibrated. RTC-RTT is in the | ||
82 | * always-on powerdomain and is used as clockevent instead of twd when | ||
83 | * sleeping. | ||
84 | * The PRCMU timer 4 register a clocksource and | ||
85 | * sched_clock with higher rating then MTU since is always-on. | ||
86 | * | ||
87 | */ | ||
88 | if (!of_have_populated_dt()) | ||
89 | nmdk_timer_init(mtu_timer_base, IRQ_MTU0); | ||
90 | clksrc_dbx500_prcmu_init(prcmu_timer_base); | 66 | clksrc_dbx500_prcmu_init(prcmu_timer_base); |
91 | ux500_twd_init(); | 67 | ux500_twd_init(); |
92 | } | 68 | } |