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>
This commit is contained in:
parent
e467e104bb
commit
bde28b846e
|
@ -1172,9 +1172,10 @@ config HOTPLUG_CPU
|
||||||
config LOCAL_TIMERS
|
config LOCAL_TIMERS
|
||||||
bool "Use local timer interrupts"
|
bool "Use local timer interrupts"
|
||||||
depends on SMP && (REALVIEW_EB_ARM11MP || MACH_REALVIEW_PB11MP || \
|
depends on SMP && (REALVIEW_EB_ARM11MP || MACH_REALVIEW_PB11MP || \
|
||||||
REALVIEW_EB_A9MP || MACH_REALVIEW_PBX || ARCH_OMAP4 || ARCH_U8500)
|
REALVIEW_EB_A9MP || MACH_REALVIEW_PBX || ARCH_OMAP4 || \
|
||||||
|
ARCH_U8500 || ARCH_VEXPRESS_CA9X4)
|
||||||
default y
|
default y
|
||||||
select HAVE_ARM_TWD if (ARCH_REALVIEW || ARCH_OMAP4 || ARCH_U8500)
|
select HAVE_ARM_TWD if (ARCH_REALVIEW || ARCH_VEXPRESS || ARCH_OMAP4 || ARCH_U8500)
|
||||||
help
|
help
|
||||||
Enable support for local timers on SMP platforms, rather then the
|
Enable support for local timers on SMP platforms, rather then the
|
||||||
legacy IPI broadcast method. Local timers allows the system
|
legacy IPI broadcast method. Local timers allows the system
|
||||||
|
|
|
@ -16,6 +16,7 @@
|
||||||
#include <asm/hardware/gic.h>
|
#include <asm/hardware/gic.h>
|
||||||
#include <asm/mach-types.h>
|
#include <asm/mach-types.h>
|
||||||
#include <asm/pmu.h>
|
#include <asm/pmu.h>
|
||||||
|
#include <asm/smp_twd.h>
|
||||||
|
|
||||||
#include <mach/clkdev.h>
|
#include <mach/clkdev.h>
|
||||||
#include <mach/ct-ca9x4.h>
|
#include <mach/ct-ca9x4.h>
|
||||||
|
@ -53,6 +54,7 @@ static struct map_desc ct_ca9x4_io_desc[] __initdata = {
|
||||||
|
|
||||||
static void __init ct_ca9x4_map_io(void)
|
static void __init ct_ca9x4_map_io(void)
|
||||||
{
|
{
|
||||||
|
twd_base = MMIO_P2V(A9_MPCORE_TWD);
|
||||||
v2m_map_io(ct_ca9x4_io_desc, ARRAY_SIZE(ct_ca9x4_io_desc));
|
v2m_map_io(ct_ca9x4_io_desc, ARRAY_SIZE(ct_ca9x4_io_desc));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -28,6 +28,7 @@
|
||||||
#define A9_MPCORE_SCU (CT_CA9X4_MPIC + 0x0000)
|
#define A9_MPCORE_SCU (CT_CA9X4_MPIC + 0x0000)
|
||||||
#define A9_MPCORE_GIC_CPU (CT_CA9X4_MPIC + 0x0100)
|
#define A9_MPCORE_GIC_CPU (CT_CA9X4_MPIC + 0x0100)
|
||||||
#define A9_MPCORE_GIT (CT_CA9X4_MPIC + 0x0200)
|
#define A9_MPCORE_GIT (CT_CA9X4_MPIC + 0x0200)
|
||||||
|
#define A9_MPCORE_TWD (CT_CA9X4_MPIC + 0x0600)
|
||||||
#define A9_MPCORE_GIC_DIST (CT_CA9X4_MPIC + 0x1000)
|
#define A9_MPCORE_GIC_DIST (CT_CA9X4_MPIC + 0x1000)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
Loading…
Reference in New Issue