Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5a46334a authored by Russell King's avatar Russell King
Browse files

ARM: Integrator: convert Integrator/CP to use SP804 timer support



The Integrator/CP board has SP804-compatible timer modules, so use
the SP804-compatible code from Versatile and Realview.

Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
parent e606a940
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -11,6 +11,7 @@ config ARCH_INTEGRATOR_AP
config ARCH_INTEGRATOR_CP
	bool "Support Integrator/CP platform"
	select ARCH_CINTEGRATOR
	select ARM_TIMER_SP804
	help
	  Include support for the ARM(R) Integrator CP platform.

+12 −2
Original line number Diff line number Diff line
@@ -29,6 +29,7 @@
#include <asm/irq.h>
#include <asm/setup.h>
#include <asm/mach-types.h>
#include <asm/hardware/arm_timer.h>
#include <asm/hardware/icst.h>

#include <mach/cm.h>
@@ -40,6 +41,8 @@
#include <asm/mach/map.h>
#include <asm/mach/time.h>

#include <plat/timer-sp.h>

#include "common.h"

#define INTCP_PA_FLASH_BASE		0x24000000
@@ -569,11 +572,18 @@ static void __init intcp_init(void)
	}
}

#define TIMER_CTRL_IE	(1 << 5)			/* Interrupt Enable */
#define TIMER0_VA_BASE __io_address(INTEGRATOR_TIMER0_BASE)
#define TIMER1_VA_BASE __io_address(INTEGRATOR_TIMER1_BASE)
#define TIMER2_VA_BASE __io_address(INTEGRATOR_TIMER2_BASE)

static void __init intcp_timer_init(void)
{
	integrator_time_init(1000, TIMER_CTRL_IE);
	writel(0, TIMER0_VA_BASE + TIMER_CTRL);
	writel(0, TIMER1_VA_BASE + TIMER_CTRL);
	writel(0, TIMER2_VA_BASE + TIMER_CTRL);

	sp804_clocksource_init(TIMER2_VA_BASE);
	sp804_clockevents_init(TIMER1_VA_BASE, IRQ_TIMERINT1);
}

static struct sys_timer cp_timer = {