diff options
author | Alexandre Belloni <alexandre.belloni@free-electrons.com> | 2015-03-12 12:07:30 (GMT) |
---|---|---|
committer | Nicolas Ferre <nicolas.ferre@atmel.com> | 2015-03-16 16:03:04 (GMT) |
commit | bbfc97e1b1b9fb2177a9134f57506eb371638b85 (patch) | |
tree | e36244006454318bec97b1b704dfb4c2998ae6d2 | |
parent | d8d1c6c8b0bec79b42f9e85fbf449ba7dd77accd (diff) | |
download | linux-bbfc97e1b1b9fb2177a9134f57506eb371638b85.tar.xz |
ARM: at91: properly initialize timer
Use clocksource_of_init to initialize the system timer instead of relying on a
custom function.
Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
Acked-by: Boris Brezillon <boris.brezillon@free-electrons.com>
Acked-by: Daniel Lezcano <daniel.lezcano@linaro.org>
Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com>
-rw-r--r-- | arch/arm/mach-at91/at91rm9200.c | 7 | ||||
-rw-r--r-- | arch/arm/mach-at91/at91rm9200_time.c | 4 | ||||
-rw-r--r-- | arch/arm/mach-at91/generic.h | 3 |
3 files changed, 3 insertions, 11 deletions
diff --git a/arch/arm/mach-at91/at91rm9200.c b/arch/arm/mach-at91/at91rm9200.c index 7634e10..eaf58f8 100644 --- a/arch/arm/mach-at91/at91rm9200.c +++ b/arch/arm/mach-at91/at91rm9200.c @@ -23,12 +23,6 @@ static const struct at91_soc rm9200_socs[] = { { /* sentinel */ }, }; -static void __init at91rm9200_dt_timer_init(void) -{ - of_clk_init(NULL); - at91rm9200_timer_init(); -} - static void __init at91rm9200_dt_device_init(void) { struct soc_device *soc; @@ -50,7 +44,6 @@ static const char *at91rm9200_dt_board_compat[] __initconst = { }; DT_MACHINE_START(at91rm9200_dt, "Atmel AT91RM9200") - .init_time = at91rm9200_dt_timer_init, .init_machine = at91rm9200_dt_device_init, .dt_compat = at91rm9200_dt_board_compat, MACHINE_END diff --git a/arch/arm/mach-at91/at91rm9200_time.c b/arch/arm/mach-at91/at91rm9200_time.c index b00d095..7d062ab 100644 --- a/arch/arm/mach-at91/at91rm9200_time.c +++ b/arch/arm/mach-at91/at91rm9200_time.c @@ -222,7 +222,7 @@ err: /* * ST (system timer) module supports both clockevents and clocksource. */ -void __init at91rm9200_timer_init(void) +static void __init atmel_st_timer_init(struct device_node *node) { /* For device tree enabled device: initialize here */ of_at91rm9200_st_init(); @@ -249,3 +249,5 @@ void __init at91rm9200_timer_init(void) /* register clocksource */ clocksource_register_hz(&clk32k, AT91_SLOW_CLOCK); } +CLOCKSOURCE_OF_DECLARE(atmel_st_timer, "atmel,at91rm9200-st", + atmel_st_timer_init); diff --git a/arch/arm/mach-at91/generic.h b/arch/arm/mach-at91/generic.h index 2b396c4..b0fa7dc 100644 --- a/arch/arm/mach-at91/generic.h +++ b/arch/arm/mach-at91/generic.h @@ -18,9 +18,6 @@ extern void __init at91_map_io(void); extern void __init at91_alt_map_io(void); - /* Timer */ -extern void at91rm9200_timer_init(void); - /* idle */ extern void at91rm9200_idle(void); extern void at91sam9_idle(void); |