|
@@ -34,9 +34,6 @@
|
|
static struct clock_event_device clockevent_mxc;
|
|
static struct clock_event_device clockevent_mxc;
|
|
static enum clock_event_mode clockevent_mode = CLOCK_EVT_MODE_UNUSED;
|
|
static enum clock_event_mode clockevent_mode = CLOCK_EVT_MODE_UNUSED;
|
|
|
|
|
|
-/* clock source for the timer */
|
|
|
|
-static struct clk *timer_clk;
|
|
|
|
-
|
|
|
|
/* clock source */
|
|
/* clock source */
|
|
|
|
|
|
static cycle_t mxc_get_cycles(void)
|
|
static cycle_t mxc_get_cycles(void)
|
|
@@ -53,7 +50,7 @@ static struct clocksource clocksource_mxc = {
|
|
.flags = CLOCK_SOURCE_IS_CONTINUOUS,
|
|
.flags = CLOCK_SOURCE_IS_CONTINUOUS,
|
|
};
|
|
};
|
|
|
|
|
|
-static int __init mxc_clocksource_init(void)
|
|
|
|
|
|
+static int __init mxc_clocksource_init(struct clk *timer_clk)
|
|
{
|
|
{
|
|
unsigned int clock;
|
|
unsigned int clock;
|
|
|
|
|
|
@@ -177,7 +174,7 @@ static struct clock_event_device clockevent_mxc = {
|
|
.rating = 200,
|
|
.rating = 200,
|
|
};
|
|
};
|
|
|
|
|
|
-static int __init mxc_clockevent_init(void)
|
|
|
|
|
|
+static int __init mxc_clockevent_init(struct clk *timer_clk)
|
|
{
|
|
{
|
|
unsigned int clock;
|
|
unsigned int clock;
|
|
|
|
|
|
@@ -197,14 +194,8 @@ static int __init mxc_clockevent_init(void)
|
|
return 0;
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
|
|
-void __init mxc_timer_init(const char *clk_timer)
|
|
|
|
|
|
+void __init mxc_timer_init(struct clk *timer_clk)
|
|
{
|
|
{
|
|
- timer_clk = clk_get(NULL, clk_timer);
|
|
|
|
- if (!timer_clk) {
|
|
|
|
- printk(KERN_ERR"Cannot determine timer clock. Giving up.\n");
|
|
|
|
- return;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
clk_enable(timer_clk);
|
|
clk_enable(timer_clk);
|
|
|
|
|
|
/*
|
|
/*
|
|
@@ -219,10 +210,9 @@ void __init mxc_timer_init(const char *clk_timer)
|
|
TIMER_BASE + MXC_TCTL);
|
|
TIMER_BASE + MXC_TCTL);
|
|
|
|
|
|
/* init and register the timer to the framework */
|
|
/* init and register the timer to the framework */
|
|
- mxc_clocksource_init();
|
|
|
|
- mxc_clockevent_init();
|
|
|
|
|
|
+ mxc_clocksource_init(timer_clk);
|
|
|
|
+ mxc_clockevent_init(timer_clk);
|
|
|
|
|
|
/* Make irqs happen */
|
|
/* Make irqs happen */
|
|
setup_irq(TIMER_INTERRUPT, &mxc_timer_irq);
|
|
setup_irq(TIMER_INTERRUPT, &mxc_timer_irq);
|
|
}
|
|
}
|
|
-
|
|
|