Commit 23e5bc03 authored by Magnus Damm's avatar Magnus Damm Committed by Rafael J. Wysocki

ARM: mach-shmobile: r8a7740 and Bonito timer rework

Copy the SoC specific timer code from Bonito board code
to r8a7740 setup code. This makes is possible to share
the SoC specific timer code across boards. The Bonito
specific timer setup code tied to the FPGA is kept as-is.
Signed-off-by: default avatarMagnus Damm <damm@opensource.se>
Signed-off-by: default avatarRafael J. Wysocki <rjw@sisk.pl>
parent 3be26fdb
...@@ -466,7 +466,7 @@ static void __init bonito_init(void) ...@@ -466,7 +466,7 @@ static void __init bonito_init(void)
} }
} }
static void __init bonito_timer_init(void) static void __init bonito_earlytimer_init(void)
{ {
u16 val; u16 val;
u8 md_ck = 0; u8 md_ck = 0;
...@@ -481,18 +481,22 @@ static void __init bonito_timer_init(void) ...@@ -481,18 +481,22 @@ static void __init bonito_timer_init(void)
md_ck |= MD_CK0; md_ck |= MD_CK0;
r8a7740_clock_init(md_ck); r8a7740_clock_init(md_ck);
shmobile_timer.init(); shmobile_earlytimer_init();
} }
struct sys_timer bonito_timer = { void __init bonito_add_early_devices(void)
.init = bonito_timer_init, {
}; r8a7740_add_early_devices();
/* override timer setup with board-specific code */
shmobile_timer.init = bonito_earlytimer_init;
}
MACHINE_START(BONITO, "bonito") MACHINE_START(BONITO, "bonito")
.map_io = bonito_map_io, .map_io = bonito_map_io,
.init_early = r8a7740_add_early_devices, .init_early = bonito_add_early_devices,
.init_irq = r8a7740_init_irq, .init_irq = r8a7740_init_irq,
.handle_irq = shmobile_handle_irq_intc, .handle_irq = shmobile_handle_irq_intc,
.init_machine = bonito_init, .init_machine = bonito_init,
.timer = &bonito_timer, .timer = &shmobile_timer,
MACHINE_END MACHINE_END
...@@ -29,6 +29,7 @@ ...@@ -29,6 +29,7 @@
#include <asm/mach-types.h> #include <asm/mach-types.h>
#include <asm/mach/map.h> #include <asm/mach/map.h>
#include <asm/mach/arch.h> #include <asm/mach/arch.h>
#include <asm/mach/time.h>
static struct map_desc r8a7740_io_desc[] __initdata = { static struct map_desc r8a7740_io_desc[] __initdata = {
/* /*
...@@ -377,6 +378,12 @@ void __init r8a7740_add_standard_devices(void) ...@@ -377,6 +378,12 @@ void __init r8a7740_add_standard_devices(void)
ARRAY_SIZE(r8a7740_late_devices)); ARRAY_SIZE(r8a7740_late_devices));
} }
static void __init r8a7740_earlytimer_init(void)
{
r8a7740_clock_init(0);
shmobile_earlytimer_init();
}
void __init r8a7740_add_early_devices(void) void __init r8a7740_add_early_devices(void)
{ {
early_platform_add_devices(r8a7740_early_devices, early_platform_add_devices(r8a7740_early_devices,
...@@ -384,4 +391,7 @@ void __init r8a7740_add_early_devices(void) ...@@ -384,4 +391,7 @@ void __init r8a7740_add_early_devices(void)
/* setup early console here as well */ /* setup early console here as well */
shmobile_setup_console(); shmobile_setup_console();
/* override timer setup with soc-specific code */
shmobile_timer.init = r8a7740_earlytimer_init;
} }
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment