aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPawel Moll <pawel.moll@arm.com>2014-11-25 13:17:34 -0500
committerArnd Bergmann <arnd@arndb.de>2014-11-28 10:08:16 -0500
commit81cc3f868d30884c6f2d2bf5d1861fbeb24ddebd (patch)
treec6146bf4b30ccaf41d5bae96b6162e6c878f984d
parentad77b791255a63e533a263613b86324fec394360 (diff)
ARM: vexpress: Remove non-DT code
Now, with the CLCD DT support available, there is no more reason to keep the non-DT support for V2P-CA9. Removed, together with "some" supporting code. It was necessary to make PLAT_VERSATILE_SCHED_CLOCK optional and selected by the machines still interested in it. Acked-by: Mike Turquette <mturquette@linaro.org> Signed-off-by: Pawel Moll <pawel.moll@arm.com> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
-rw-r--r--arch/arm/Kconfig2
-rw-r--r--arch/arm/mach-vexpress/Kconfig3
-rw-r--r--arch/arm/mach-vexpress/Makefile3
-rw-r--r--arch/arm/mach-vexpress/core.h7
-rw-r--r--arch/arm/mach-vexpress/ct-ca9x4.c212
-rw-r--r--arch/arm/mach-vexpress/include/mach/ct-ca9x4.h47
-rw-r--r--arch/arm/mach-vexpress/include/mach/hardware.h1
-rw-r--r--arch/arm/mach-vexpress/include/mach/irqs.h6
-rw-r--r--arch/arm/mach-vexpress/include/mach/motherboard.h88
-rw-r--r--arch/arm/mach-vexpress/platsmp.c42
-rw-r--r--arch/arm/mach-vexpress/v2m.c374
-rw-r--r--arch/arm/plat-versatile/Kconfig2
-rw-r--r--drivers/clk/versatile/Makefile1
-rw-r--r--drivers/clk/versatile/clk-vexpress-osc.c7
-rw-r--r--drivers/clk/versatile/clk-vexpress.c86
-rw-r--r--drivers/misc/vexpress-syscfg.c60
-rw-r--r--include/linux/vexpress.h19
17 files changed, 17 insertions, 943 deletions
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 89c4b5ccc68d..6c6fdb8a36e1 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -350,6 +350,7 @@ config ARCH_REALVIEW
350 select ICST 350 select ICST
351 select NEED_MACH_MEMORY_H 351 select NEED_MACH_MEMORY_H
352 select PLAT_VERSATILE 352 select PLAT_VERSATILE
353 select PLAT_VERSATILE_SCHED_CLOCK
353 help 354 help
354 This enables support for ARM Ltd RealView boards. 355 This enables support for ARM Ltd RealView boards.
355 356
@@ -365,6 +366,7 @@ config ARCH_VERSATILE
365 select ICST 366 select ICST
366 select PLAT_VERSATILE 367 select PLAT_VERSATILE
367 select PLAT_VERSATILE_CLOCK 368 select PLAT_VERSATILE_CLOCK
369 select PLAT_VERSATILE_SCHED_CLOCK
368 select VERSATILE_FPGA_IRQ 370 select VERSATILE_FPGA_IRQ
369 help 371 help
370 This enables support for ARM Ltd Versatile board. 372 This enables support for ARM Ltd Versatile board.
diff --git a/arch/arm/mach-vexpress/Kconfig b/arch/arm/mach-vexpress/Kconfig
index b2cfba16c4e8..9a96bab12ef3 100644
--- a/arch/arm/mach-vexpress/Kconfig
+++ b/arch/arm/mach-vexpress/Kconfig
@@ -49,9 +49,6 @@ config ARCH_VEXPRESS_CORTEX_A5_A9_ERRATA
49 build a working kernel, you must also enable relevant core 49 build a working kernel, you must also enable relevant core
50 tile support or Flattened Device Tree based support options. 50 tile support or Flattened Device Tree based support options.
51 51
52config ARCH_VEXPRESS_CA9X4
53 bool "Versatile Express Cortex-A9x4 tile"
54
55config ARCH_VEXPRESS_DCSCB 52config ARCH_VEXPRESS_DCSCB
56 bool "Dual Cluster System Control Block (DCSCB) support" 53 bool "Dual Cluster System Control Block (DCSCB) support"
57 depends on MCPM 54 depends on MCPM
diff --git a/arch/arm/mach-vexpress/Makefile b/arch/arm/mach-vexpress/Makefile
index fc649bc09d0c..f5c1006dd6a1 100644
--- a/arch/arm/mach-vexpress/Makefile
+++ b/arch/arm/mach-vexpress/Makefile
@@ -1,11 +1,10 @@
1# 1#
2# Makefile for the linux kernel. 2# Makefile for the linux kernel.
3# 3#
4ccflags-$(CONFIG_ARCH_MULTIPLATFORM) := -I$(srctree)/$(src)/include \ 4ccflags-$(CONFIG_ARCH_MULTIPLATFORM) := \
5 -I$(srctree)/arch/arm/plat-versatile/include 5 -I$(srctree)/arch/arm/plat-versatile/include
6 6
7obj-y := v2m.o 7obj-y := v2m.o
8obj-$(CONFIG_ARCH_VEXPRESS_CA9X4) += ct-ca9x4.o
9obj-$(CONFIG_ARCH_VEXPRESS_DCSCB) += dcscb.o dcscb_setup.o 8obj-$(CONFIG_ARCH_VEXPRESS_DCSCB) += dcscb.o dcscb_setup.o
10CFLAGS_dcscb.o += -march=armv7-a 9CFLAGS_dcscb.o += -march=armv7-a
11CFLAGS_REMOVE_dcscb.o = -pg 10CFLAGS_REMOVE_dcscb.o = -pg
diff --git a/arch/arm/mach-vexpress/core.h b/arch/arm/mach-vexpress/core.h
index 152fad91b3ae..2a11d3ac8c68 100644
--- a/arch/arm/mach-vexpress/core.h
+++ b/arch/arm/mach-vexpress/core.h
@@ -1,12 +1,5 @@
1/* 2MB large area for motherboard's peripherals static mapping */
2#define V2M_PERIPH 0xf8000000
3
4/* Tile's peripherals static mappings should start here */
5#define V2T_PERIPH 0xf8200000
6
7bool vexpress_smp_init_ops(void); 1bool vexpress_smp_init_ops(void);
8 2
9extern struct smp_operations vexpress_smp_ops;
10extern struct smp_operations vexpress_smp_dt_ops; 3extern struct smp_operations vexpress_smp_dt_ops;
11 4
12extern void vexpress_cpu_die(unsigned int cpu); 5extern void vexpress_cpu_die(unsigned int cpu);
diff --git a/arch/arm/mach-vexpress/ct-ca9x4.c b/arch/arm/mach-vexpress/ct-ca9x4.c
deleted file mode 100644
index 27bea049380a..000000000000
--- a/arch/arm/mach-vexpress/ct-ca9x4.c
+++ /dev/null
@@ -1,212 +0,0 @@
1/*
2 * Versatile Express Core Tile Cortex A9x4 Support
3 */
4#include <linux/init.h>
5#include <linux/gfp.h>
6#include <linux/device.h>
7#include <linux/dma-mapping.h>
8#include <linux/platform_device.h>
9#include <linux/amba/bus.h>
10#include <linux/amba/clcd.h>
11#include <linux/platform_data/video-clcd-versatile.h>
12#include <linux/clkdev.h>
13#include <linux/vexpress.h>
14#include <linux/irqchip/arm-gic.h>
15
16#include <asm/hardware/arm_timer.h>
17#include <asm/hardware/cache-l2x0.h>
18#include <asm/smp_scu.h>
19#include <asm/smp_twd.h>
20
21#include <mach/ct-ca9x4.h>
22
23#include <asm/hardware/timer-sp.h>
24
25#include <asm/mach/map.h>
26#include <asm/mach/time.h>
27
28#include "core.h"
29
30#include <mach/motherboard.h>
31#include <mach/irqs.h>
32
33static struct map_desc ct_ca9x4_io_desc[] __initdata = {
34 {
35 .virtual = V2T_PERIPH,
36 .pfn = __phys_to_pfn(CT_CA9X4_MPIC),
37 .length = SZ_8K,
38 .type = MT_DEVICE,
39 },
40};
41
42static void __init ct_ca9x4_map_io(void)
43{
44 iotable_init(ct_ca9x4_io_desc, ARRAY_SIZE(ct_ca9x4_io_desc));
45}
46
47static void __init ca9x4_l2_init(void)
48{
49#ifdef CONFIG_CACHE_L2X0
50 void __iomem *l2x0_base = ioremap(CT_CA9X4_L2CC, SZ_4K);
51
52 if (l2x0_base) {
53 /* set RAM latencies to 1 cycle for this core tile. */
54 writel(0, l2x0_base + L310_TAG_LATENCY_CTRL);
55 writel(0, l2x0_base + L310_DATA_LATENCY_CTRL);
56
57 l2x0_init(l2x0_base, 0x00400000, 0xfe0fffff);
58 } else {
59 pr_err("L2C: unable to map L2 cache controller\n");
60 }
61#endif
62}
63
64#ifdef CONFIG_HAVE_ARM_TWD
65static DEFINE_TWD_LOCAL_TIMER(twd_local_timer, A9_MPCORE_TWD, IRQ_LOCALTIMER);
66
67static void __init ca9x4_twd_init(void)
68{
69 int err = twd_local_timer_register(&twd_local_timer);
70 if (err)
71 pr_err("twd_local_timer_register failed %d\n", err);
72}
73#else
74#define ca9x4_twd_init() do {} while(0)
75#endif
76
77static void __init ct_ca9x4_init_irq(void)
78{
79 gic_init(0, 29, ioremap(A9_MPCORE_GIC_DIST, SZ_4K),
80 ioremap(A9_MPCORE_GIC_CPU, SZ_256));
81 ca9x4_twd_init();
82 ca9x4_l2_init();
83}
84
85static int ct_ca9x4_clcd_setup(struct clcd_fb *fb)
86{
87 unsigned long framesize = 1024 * 768 * 2;
88
89 fb->panel = versatile_clcd_get_panel("XVGA");
90 if (!fb->panel)
91 return -EINVAL;
92
93 return versatile_clcd_setup_dma(fb, framesize);
94}
95
96static struct clcd_board ct_ca9x4_clc