diff options
author | Arnd Bergmann <arnd@arndb.de> | 2012-08-14 14:15:03 +0000 |
---|---|---|
committer | Arnd Bergmann <arnd@arndb.de> | 2012-08-14 14:30:53 +0000 |
commit | 4d1abce3bb419ea7139d6d286172a98da8b18a9b (patch) | |
tree | fc424e40cfb6be395e8c47590aec970ca7fa2ee1 /arch | |
parent | 682c6e7930a724267760b4d19d5cc2aa6e0814c3 (diff) |
ARM: versatile: multiplatform support
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/Kconfig | 30 | ||||
-rw-r--r-- | arch/arm/Makefile | 2 | ||||
-rw-r--r-- | arch/arm/mach-multi/Kconfig | 12 | ||||
-rw-r--r-- | arch/arm/mach-versatile/Kconfig | 2 | ||||
-rw-r--r-- | arch/arm/mach-versatile/core.c | 5 | ||||
-rw-r--r-- | arch/arm/mach-versatile/include/mach-versatile/irqs.h | 2 | ||||
-rw-r--r-- | arch/arm/mach-versatile/pci.c | 1 | ||||
-rw-r--r-- | arch/arm/mach-versatile/versatile_pb.c | 1 | ||||
-rw-r--r-- | arch/arm/plat-versatile/Kconfig | 1 |
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 |