aboutsummaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorArnd Bergmann <arnd@arndb.de>2012-08-14 14:15:03 +0000
committerArnd Bergmann <arnd@arndb.de>2012-08-14 14:30:53 +0000
commit4d1abce3bb419ea7139d6d286172a98da8b18a9b (patch)
treefc424e40cfb6be395e8c47590aec970ca7fa2ee1 /arch
parent682c6e7930a724267760b4d19d5cc2aa6e0814c3 (diff)
ARM: versatile: multiplatform support
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/Kconfig30
-rw-r--r--arch/arm/Makefile2
-rw-r--r--arch/arm/mach-multi/Kconfig12
-rw-r--r--arch/arm/mach-versatile/Kconfig2
-rw-r--r--arch/arm/mach-versatile/core.c5
-rw-r--r--arch/arm/mach-versatile/include/mach-versatile/irqs.h2
-rw-r--r--arch/arm/mach-versatile/pci.c1
-rw-r--r--arch/arm/mach-versatile/versatile_pb.c1
-rw-r--r--arch/arm/plat-versatile/Kconfig1
9 files changed, 39 insertions, 17 deletions
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index f2dc9edd0c7..1dc165f15e2 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -318,21 +318,10 @@ config ARCH_REALVIEW
help
This enables support for ARM Ltd RealView boards.
-config ARCH_VERSATILE
+config ARCH_VERSATILE_CHOICE
bool "ARM Ltd. Versatile family"
- select ARM_AMBA
- select ARM_VIC
- select CLKDEV_LOOKUP
+ select ARCH_VERSATILE
select HAVE_MACH_CLKDEV
- select ICST
- select GENERIC_CLOCKEVENTS
- select ARCH_WANT_OPTIONAL_GPIOLIB
- select NEED_MACH_IO_H if PCI
- select PLAT_VERSATILE
- select PLAT_VERSATILE_CLOCK
- select PLAT_VERSATILE_CLCD
- select PLAT_VERSATILE_FPGA_IRQ
- select ARM_TIMER_SP804
help
This enables support for ARM Ltd Versatile board.
@@ -1039,6 +1028,21 @@ config ARCH_U8500
select HAVE_SMP
select MIGHT_HAVE_CACHE_L2X0
+config ARCH_VERSATILE
+ bool
+ select ARM_AMBA
+ select ARM_VIC
+ select CLKDEV_LOOKUP
+ select ICST
+ select GENERIC_CLOCKEVENTS
+ select ARCH_WANT_OPTIONAL_GPIOLIB
+ select NEED_MACH_IO_H if PCI
+ select PLAT_VERSATILE
+ select PLAT_VERSATILE_CLOCK
+ select PLAT_VERSATILE_CLCD
+ select PLAT_VERSATILE_FPGA_IRQ
+ select ARM_TIMER_SP804
+
config ARCH_VEXPRESS
bool
select ARCH_WANT_OPTIONAL_GPIOLIB
diff --git a/arch/arm/Makefile b/arch/arm/Makefile
index 2fff003fb43..6303e42468e 100644
--- a/arch/arm/Makefile
+++ b/arch/arm/Makefile
@@ -220,7 +220,7 @@ machine-$(CONFIG_ARCH_MULTI_VEXPRESS) += vexpress
machine-$(CONFIG_ARCH_MULTI_OMAP2PLUS) += omap2
machine-$(CONFIG_ARCH_MULTI_UX500) += ux500
machine-$(CONFIG_ARCH_MULTI_IMX) += imx
-plat-$(CONFIG_VERSATILE) += versatile
+plat-$(CONFIG_PLAT_VERSATILE) += versatile
plat-$(CONFIG_ARCH_MULTI_OMAP2PLUS) += omap
plat-$(CONFIG_ARCH_MULTI_UX500) += nomadik
plat-$(CONFIG_ARCH_MULTI_IMX) += mxc
diff --git a/arch/arm/mach-multi/Kconfig b/arch/arm/mach-multi/Kconfig
index a03c3dc283e..309349229d7 100644
--- a/arch/arm/mach-multi/Kconfig
+++ b/arch/arm/mach-multi/Kconfig
@@ -135,11 +135,19 @@ config ARCH_MULTI_IMX6
select ARCH_IMX_V6_V7
select SOC_IMX6Q
+config ARCH_MULTI_VERSATILE
+ bool "ARM Ltd Versatile"
+ depends on ARCH_MULTI_V5
+ select ARCH_VERSATILE
+ select ARCH_VERSATILE_DT
+
config ARCH_MULTI_AUTOSELECT
def_bool y
depends on !ARCH_MULTI_OMAP2PLUS
depends on !ARCH_MULTI_UX500
- depends on !ARCH_MXC
- select ARCH_MULTI_VEXPRESS
+ depends on !ARCH_MULTI_MXS
+ depends on !ARCH_MULTI_VERSATILE
+ select ARCH_MULTI_VEXPRESS if ARCH_MULTI_V6_V7
+ select ARCH_MULTI_IMX2 if ARCH_MULTI_V4_V5
endmenu
diff --git a/arch/arm/mach-versatile/Kconfig b/arch/arm/mach-versatile/Kconfig
index c1f38f6625b..0c186a88fe0 100644
--- a/arch/arm/mach-versatile/Kconfig
+++ b/arch/arm/mach-versatile/Kconfig
@@ -4,7 +4,7 @@ menu "Versatile platform type"
config ARCH_VERSATILE_PB
bool "Support Versatile Platform Baseboard for ARM926EJ-S"
select CPU_ARM926T
- select MIGHT_HAVE_PCI
+ select MIGHT_HAVE_PCI if !ARCH_MULTIPLATFORM
default y
help
Include support for the ARM(R) Versatile Platform Baseboard
diff --git a/arch/arm/mach-versatile/core.c b/arch/arm/mach-versatile/core.c
index 3e7800ea366..37cf2962d49 100644
--- a/arch/arm/mach-versatile/core.c
+++ b/arch/arm/mach-versatile/core.c
@@ -49,6 +49,7 @@
#include <asm/mach/map.h>
#include <mach-versatile/hardware.h>
#include <mach-versatile/platform.h>
+#include <mach-versatile/irqs.h>
#include <asm/hardware/timer-sp.h>
#include <plat-versatile/clcd.h>
@@ -302,6 +303,7 @@ static struct platform_device char_lcd_device = {
.resource = char_lcd_resources,
};
+#ifndef CONFIG_COMMON_CLK
/*
* Clock handling
*/
@@ -393,6 +395,7 @@ static struct clk_lookup lookups[] = {
.clk = &sp804_clk,
},
};
+#endif
/*
* CLCD support.
@@ -744,8 +747,10 @@ void __init versatile_init_early(void)
{
void __iomem *sys = __io_address(VERSATILE_SYS_BASE);
+#ifndef CONFIG_COMMON_CLK
osc4_clk.vcoreg = sys + VERSATILE_SYS_OSCCLCD_OFFSET;
clkdev_add_table(lookups, ARRAY_SIZE(lookups));
+#endif
versatile_sched_clock_init(sys + VERSATILE_SYS_24MHz_OFFSET, 24000000);
}
diff --git a/arch/arm/mach-versatile/include/mach-versatile/irqs.h b/arch/arm/mach-versatile/include/mach-versatile/irqs.h
index 0f3310e3ed8..96fbf0f9bad 100644
--- a/arch/arm/mach-versatile/include/mach-versatile/irqs.h
+++ b/arch/arm/mach-versatile/include/mach-versatile/irqs.h
@@ -131,4 +131,6 @@
#define IRQ_GPIO3_START (IRQ_GPIO2_END + 1)
#define IRQ_GPIO3_END (IRQ_GPIO3_START + 31)
+#ifndef CONFIG_SPARSE_IRQ
#define NR_IRQS (IRQ_GPIO3_END + 1)
+#endif
diff --git a/arch/arm/mach-versatile/pci.c b/arch/arm/mach-versatile/pci.c
index 8ebaf9898b5..22345d110c3 100644
--- a/arch/arm/mach-versatile/pci.c
+++ b/arch/arm/mach-versatile/pci.c
@@ -23,6 +23,7 @@
#include <linux/io.h>
#include <mach-versatile/hardware.h>
+#include <mach-versatile/irqs.h>
#include <asm/irq.h>
#include <asm/mach/pci.h>
diff --git a/arch/arm/mach-versatile/versatile_pb.c b/arch/arm/mach-versatile/versatile_pb.c
index 45673b027ce..e16a7b422bb 100644
--- a/arch/arm/mach-versatile/versatile_pb.c
+++ b/arch/arm/mach-versatile/versatile_pb.c
@@ -27,6 +27,7 @@
#include <linux/io.h>
#include <mach-versatile/hardware.h>
+#include <mach-versatile/irqs.h>
#include <asm/hardware/vic.h>
#include <asm/irq.h>
#include <asm/mach-types.h>
diff --git a/arch/arm/plat-versatile/Kconfig b/arch/arm/plat-versatile/Kconfig
index 8d5c10a5084..ee39f69d626 100644
--- a/arch/arm/plat-versatile/Kconfig
+++ b/arch/arm/plat-versatile/Kconfig
@@ -18,6 +18,7 @@ config PLAT_VERSATILE_FPGA_IRQ_NR
config PLAT_VERSATILE_LEDS
def_bool y if LEDS_CLASS
depends on ARCH_REALVIEW || ARCH_VERSATILE
+ depends on !ARCH_MULTIPLATFORM
config PLAT_VERSATILE_SCHED_CLOCK
def_bool y