Commit c5039f52 authored by Russell King's avatar Russell King
Browse files

clocksource: convert Integrator/AP 16-bit down counting clocksource



Convert the Integrator/AP 16-bit down-counting clocksource to the
generic clocksource infrastructure.
Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
parent 6fa5d5f7
......@@ -4,6 +4,7 @@ menu "Integrator Options"
config ARCH_INTEGRATOR_AP
bool "Support Integrator/AP and Integrator/PP2 platforms"
select CLKSRC_MMIO
select MIGHT_HAVE_PCI
help
Include support for the ARM(R) Integrator/AP and
......
......@@ -335,25 +335,9 @@ static void __init ap_init(void)
static unsigned long timer_reload;
static void __iomem * const clksrc_base = (void __iomem *)TIMER2_VA_BASE;
static cycle_t timersp_read(struct clocksource *cs)
{
return ~(readl(clksrc_base + TIMER_VALUE) & 0xffff);
}
static struct clocksource clocksource_timersp = {
.name = "timer2",
.rating = 200,
.read = timersp_read,
.mask = CLOCKSOURCE_MASK(16),
.flags = CLOCK_SOURCE_IS_CONTINUOUS,
};
static void integrator_clocksource_init(u32 khz)
{
struct clocksource *cs = &clocksource_timersp;
void __iomem *base = clksrc_base;
void __iomem *base = (void __iomem *)TIMER2_VA_BASE;
u32 ctrl = TIMER_CTRL_ENABLE;
if (khz >= 1500) {
......@@ -364,7 +348,8 @@ static void integrator_clocksource_init(u32 khz)
writel(ctrl, base + TIMER_CTRL);
writel(0xffff, base + TIMER_LOAD);
clocksource_register_khz(cs, khz);
clocksource_mmio_init(base + TIMER_VALUE, "timer2",
khz * 1000, 200, 16, clocksource_mmio_readl_down);
}
static void __iomem * const clkevt_base = (void __iomem *)TIMER1_VA_BASE;
......
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