From 7ed00af7a960031ad00017e3ebcf1d3ef22af498 Mon Sep 17 00:00:00 2001 From: Mattias Wallin Date: Fri, 27 May 2011 10:30:34 +0200 Subject: [PATCH] ARM: ux500: add support for clocksource DBX500 PRCMU This patch adds support for the DBX500 PRCMU clocksource to ux500 platforms. Cc: Thomas Gleixner Signed-off-by: Mattias Wallin Signed-off-by: Jonas Aaberg Signed-off-by: Linus Walleij --- arch/arm/mach-ux500/cpu.c | 9 +++++++++ arch/arm/mach-ux500/include/mach/db5500-regs.h | 2 ++ arch/arm/mach-ux500/include/mach/db8500-regs.h | 3 +++ 3 files changed, 14 insertions(+) diff --git a/arch/arm/mach-ux500/cpu.c b/arch/arm/mach-ux500/cpu.c index 1da23bb87c1..c0e4593f771 100644 --- a/arch/arm/mach-ux500/cpu.c +++ b/arch/arm/mach-ux500/cpu.c @@ -10,6 +10,7 @@ #include #include #include +#include #include #include @@ -140,7 +141,15 @@ static void __init ux500_timer_init(void) else ux500_unknown_soc(); + if (cpu_is_u8500()) + clksrc_dbx500_timer_base = __io_address(U8500_PRCMU_TIMER_4_BASE); + else if (cpu_is_u5500()) + clksrc_dbx500_timer_base = __io_address(U5500_PRCMU_TIMER_3_BASE); + else + ux500_unknown_soc(); + nmdk_timer_init(); + clksrc_dbx500_prcmu_init(); } struct sys_timer ux500_timer = { diff --git a/arch/arm/mach-ux500/include/mach/db5500-regs.h b/arch/arm/mach-ux500/include/mach/db5500-regs.h index 6ad98329410..994b5fe6f85 100644 --- a/arch/arm/mach-ux500/include/mach/db5500-regs.h +++ b/arch/arm/mach-ux500/include/mach/db5500-regs.h @@ -61,6 +61,8 @@ #define U5500_SCR_BASE (U5500_PER4_BASE + 0x5000) #define U5500_DMC_BASE (U5500_PER4_BASE + 0x6000) #define U5500_PRCMU_BASE (U5500_PER4_BASE + 0x7000) +#define U5500_PRCMU_TIMER_3_BASE (U5500_PER4_BASE + 0x07338) +#define U5500_PRCMU_TIMER_4_BASE (U5500_PER4_BASE + 0x07450) #define U5500_MSP1_BASE (U5500_PER4_BASE + 0x9000) #define U5500_GPIO2_BASE (U5500_PER4_BASE + 0xA000) #define U5500_CDETECT_BASE (U5500_PER4_BASE + 0xF000) diff --git a/arch/arm/mach-ux500/include/mach/db8500-regs.h b/arch/arm/mach-ux500/include/mach/db8500-regs.h index 049997109cf..751b0e6938d 100644 --- a/arch/arm/mach-ux500/include/mach/db8500-regs.h +++ b/arch/arm/mach-ux500/include/mach/db8500-regs.h @@ -102,10 +102,13 @@ #define U8500_SCR_BASE (U8500_PER4_BASE + 0x05000) #define U8500_DMC_BASE (U8500_PER4_BASE + 0x06000) #define U8500_PRCMU_BASE (U8500_PER4_BASE + 0x07000) +#define U8500_PRCMU_TIMER_3_BASE (U8500_PER4_BASE + 0x07338) +#define U8500_PRCMU_TIMER_4_BASE (U8500_PER4_BASE + 0x07450) #define U8500_PRCMU_TCDM_BASE_V1 (U8500_PER4_BASE + 0x0f000) #define U8500_PRCMU_TCDM_BASE (U8500_PER4_BASE + 0x68000) #define U8500_PRCMU_TCPM_BASE (U8500_PER4_BASE + 0x60000) + /* per3 base addresses */ #define U8500_FSMC_BASE (U8500_PER3_BASE + 0x0000) #define U8500_SSP0_BASE (U8500_PER3_BASE + 0x2000) -- 2.39.5