[ARM] MXC: rework timer/clock initialisation
- rename mxc_clocks_init to architecture specific versions. This allows us to have more than one architecture compiled in. - call mxc_timer_init from clock initialisation instead from board code Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
This commit is contained in:
@@ -34,9 +34,6 @@
|
||||
static struct clock_event_device clockevent_mxc;
|
||||
static enum clock_event_mode clockevent_mode = CLOCK_EVT_MODE_UNUSED;
|
||||
|
||||
/* clock source for the timer */
|
||||
static struct clk *timer_clk;
|
||||
|
||||
/* clock source */
|
||||
|
||||
static cycle_t mxc_get_cycles(void)
|
||||
@@ -53,7 +50,7 @@ static struct clocksource clocksource_mxc = {
|
||||
.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;
|
||||
|
||||
@@ -177,7 +174,7 @@ static struct clock_event_device clockevent_mxc = {
|
||||
.rating = 200,
|
||||
};
|
||||
|
||||
static int __init mxc_clockevent_init(void)
|
||||
static int __init mxc_clockevent_init(struct clk *timer_clk)
|
||||
{
|
||||
unsigned int clock;
|
||||
|
||||
@@ -197,14 +194,8 @@ static int __init mxc_clockevent_init(void)
|
||||
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);
|
||||
|
||||
/*
|
||||
@@ -219,10 +210,9 @@ void __init mxc_timer_init(const char *clk_timer)
|
||||
TIMER_BASE + MXC_TCTL);
|
||||
|
||||
/* 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 */
|
||||
setup_irq(TIMER_INTERRUPT, &mxc_timer_irq);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user