diff options
| author | Will Deacon <will.deacon@arm.com> | 2010-07-09 08:52:09 -0400 |
|---|---|---|
| committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2010-07-09 09:21:51 -0400 |
| commit | bde28b846e7e0ea6fea78f6ad1c43091fdf4d3e0 (patch) | |
| tree | a7510112dfa0a6733add6a97ed0d2ea23740141f | |
| parent | e467e104bb7482170b79f516d2025e7cfcaaa733 (diff) | |
ARM: 6218/1: Versatile Express: add support for local timers on CA9X4 daughterboard
This patch adds support for the Cortex-A9 local timers available when
using the CA9X4 daughterboard with the Versatile Express.
Signed-off-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
| -rw-r--r-- | arch/arm/Kconfig | 5 | ||||
| -rw-r--r-- | arch/arm/mach-vexpress/ct-ca9x4.c | 2 | ||||
| -rw-r--r-- | arch/arm/mach-vexpress/include/mach/ct-ca9x4.h | 1 |
3 files changed, 6 insertions, 2 deletions
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index 98922f7d2d12..7b117b1b0884 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig | |||
| @@ -1172,9 +1172,10 @@ config HOTPLUG_CPU | |||
| 1172 | config LOCAL_TIMERS | 1172 | config LOCAL_TIMERS |
| 1173 | bool "Use local timer interrupts" | 1173 | bool "Use local timer interrupts" |
| 1174 | depends on SMP && (REALVIEW_EB_ARM11MP || MACH_REALVIEW_PB11MP || \ | 1174 | depends on SMP && (REALVIEW_EB_ARM11MP || MACH_REALVIEW_PB11MP || \ |
| 1175 | REALVIEW_EB_A9MP || MACH_REALVIEW_PBX || ARCH_OMAP4 || ARCH_U8500) | 1175 | REALVIEW_EB_A9MP || MACH_REALVIEW_PBX || ARCH_OMAP4 || \ |
| 1176 | ARCH_U8500 || ARCH_VEXPRESS_CA9X4) | ||
| 1176 | default y | 1177 | default y |
| 1177 | select HAVE_ARM_TWD if (ARCH_REALVIEW || ARCH_OMAP4 || ARCH_U8500) | 1178 | select HAVE_ARM_TWD if (ARCH_REALVIEW || ARCH_VEXPRESS || ARCH_OMAP4 || ARCH_U8500) |
| 1178 | help | 1179 | help |
| 1179 | Enable support for local timers on SMP platforms, rather then the | 1180 | Enable support for local timers on SMP platforms, rather then the |
| 1180 | legacy IPI broadcast method. Local timers allows the system | 1181 | legacy IPI broadcast method. Local timers allows the system |
diff --git a/arch/arm/mach-vexpress/ct-ca9x4.c b/arch/arm/mach-vexpress/ct-ca9x4.c index 6353459bb567..577df6cccb08 100644 --- a/arch/arm/mach-vexpress/ct-ca9x4.c +++ b/arch/arm/mach-vexpress/ct-ca9x4.c | |||
| @@ -16,6 +16,7 @@ | |||
| 16 | #include <asm/hardware/gic.h> | 16 | #include <asm/hardware/gic.h> |
| 17 | #include <asm/mach-types.h> | 17 | #include <asm/mach-types.h> |
| 18 | #include <asm/pmu.h> | 18 | #include <asm/pmu.h> |
| 19 | #include <asm/smp_twd.h> | ||
| 19 | 20 | ||
| 20 | #include <mach/clkdev.h> | 21 | #include <mach/clkdev.h> |
| 21 | #include <mach/ct-ca9x4.h> | 22 | #include <mach/ct-ca9x4.h> |
| @@ -53,6 +54,7 @@ static struct map_desc ct_ca9x4_io_desc[] __initdata = { | |||
| 53 | 54 | ||
| 54 | static void __init ct_ca9x4_map_io(void) | 55 | static void __init ct_ca9x4_map_io(void) |
| 55 | { | 56 | { |
| 57 | twd_base = MMIO_P2V(A9_MPCORE_TWD); | ||
| 56 | v2m_map_io(ct_ca9x4_io_desc, ARRAY_SIZE(ct_ca9x4_io_desc)); | 58 | v2m_map_io(ct_ca9x4_io_desc, ARRAY_SIZE(ct_ca9x4_io_desc)); |
| 57 | } | 59 | } |
| 58 | 60 | ||
diff --git a/arch/arm/mach-vexpress/include/mach/ct-ca9x4.h b/arch/arm/mach-vexpress/include/mach/ct-ca9x4.h index 8650f04136ef..f9e2f8d22962 100644 --- a/arch/arm/mach-vexpress/include/mach/ct-ca9x4.h +++ b/arch/arm/mach-vexpress/include/mach/ct-ca9x4.h | |||
| @@ -28,6 +28,7 @@ | |||
| 28 | #define A9_MPCORE_SCU (CT_CA9X4_MPIC + 0x0000) | 28 | #define A9_MPCORE_SCU (CT_CA9X4_MPIC + 0x0000) |
| 29 | #define A9_MPCORE_GIC_CPU (CT_CA9X4_MPIC + 0x0100) | 29 | #define A9_MPCORE_GIC_CPU (CT_CA9X4_MPIC + 0x0100) |
| 30 | #define A9_MPCORE_GIT (CT_CA9X4_MPIC + 0x0200) | 30 | #define A9_MPCORE_GIT (CT_CA9X4_MPIC + 0x0200) |
| 31 | #define A9_MPCORE_TWD (CT_CA9X4_MPIC + 0x0600) | ||
| 31 | #define A9_MPCORE_GIC_DIST (CT_CA9X4_MPIC + 0x1000) | 32 | #define A9_MPCORE_GIC_DIST (CT_CA9X4_MPIC + 0x1000) |
| 32 | 33 | ||
| 33 | /* | 34 | /* |
