Commit 6cefe92f authored by Russell King's avatar Russell King

ARM: footbridge: add sched_clock implementation

Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
parent e68f31f4
...@@ -10,3 +10,5 @@ extern void footbridge_init_irq(void); ...@@ -10,3 +10,5 @@ extern void footbridge_init_irq(void);
extern void isa_init_irq(unsigned int irq); extern void isa_init_irq(unsigned int irq);
extern void footbridge_restart(enum reboot_mode, const char *); extern void footbridge_restart(enum reboot_mode, const char *);
extern void footbridge_sched_clock(void);
...@@ -9,6 +9,7 @@ ...@@ -9,6 +9,7 @@
#include <linux/init.h> #include <linux/init.h>
#include <linux/interrupt.h> #include <linux/interrupt.h>
#include <linux/irq.h> #include <linux/irq.h>
#include <linux/sched_clock.h>
#include <asm/irq.h> #include <asm/irq.h>
...@@ -104,3 +105,19 @@ void __init footbridge_timer_init(void) ...@@ -104,3 +105,19 @@ void __init footbridge_timer_init(void)
ce->cpumask = cpumask_of(smp_processor_id()); ce->cpumask = cpumask_of(smp_processor_id());
clockevents_config_and_register(ce, mem_fclk_21285, 0x4, 0xffffff); clockevents_config_and_register(ce, mem_fclk_21285, 0x4, 0xffffff);
} }
static u32 notrace footbridge_read_sched_clock(void)
{
return ~*CSR_TIMER3_VALUE;
}
void __init footbridge_sched_clock(void)
{
unsigned rate = DIV_ROUND_CLOSEST(mem_fclk_21285, 16);
*CSR_TIMER3_LOAD = 0;
*CSR_TIMER3_CLR = 0;
*CSR_TIMER3_CNTL = TIMER_CNTL_ENABLE | TIMER_CNTL_DIV16;
setup_sched_clock(footbridge_read_sched_clock, 24, rate);
}
...@@ -104,6 +104,7 @@ MACHINE_START(EBSA285, "EBSA285") ...@@ -104,6 +104,7 @@ MACHINE_START(EBSA285, "EBSA285")
.video_start = 0x000a0000, .video_start = 0x000a0000,
.video_end = 0x000bffff, .video_end = 0x000bffff,
.map_io = footbridge_map_io, .map_io = footbridge_map_io,
.init_early = footbridge_sched_clock,
.init_irq = footbridge_init_irq, .init_irq = footbridge_init_irq,
.init_time = footbridge_timer_init, .init_time = footbridge_timer_init,
.restart = footbridge_restart, .restart = footbridge_restart,
......
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