aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-shmobile
diff options
context:
space:
mode:
authorKuninori Morimoto <kuninori.morimoto.gx@renesas.com>2013-08-02 02:39:13 -0400
committerSimon Horman <horms+renesas@verge.net.au>2013-08-05 22:18:29 -0400
commit15645581a9401cf2370d2c975e2673d289d5e561 (patch)
treef842b09826cf0cb3e928814297fe16ff83e90004 /arch/arm/mach-shmobile
parentd2f463a66abb1edc3b0ab6cc8252d9fa4e3d30e8 (diff)
ARM: shmobile: armadillo800eva: Use DT for GIC
Current Armadillo800eva is using DT booting, and r8a7740.dtsi already has GIC settings. So, we can remove the C version of the GIC setup code, instead rely on GIC information provided by DT. This patch removes r8a7740_init_irq() which has no user any more Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Acked-by: Magnus Damm <damm@opensource.se> Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Diffstat (limited to 'arch/arm/mach-shmobile')
-rw-r--r--arch/arm/mach-shmobile/board-armadillo800eva.c2
-rw-r--r--arch/arm/mach-shmobile/include/mach/r8a7740.h1
-rw-r--r--arch/arm/mach-shmobile/intc-r8a7740.c20
3 files changed, 4 insertions, 19 deletions
diff --git a/arch/arm/mach-shmobile/board-armadillo800eva.c b/arch/arm/mach-shmobile/board-armadillo800eva.c
index 66cfd5686578..68641952b63a 100644
--- a/arch/arm/mach-shmobile/board-armadillo800eva.c
+++ b/arch/arm/mach-shmobile/board-armadillo800eva.c
@@ -1265,7 +1265,7 @@ static const char *eva_boards_compat_dt[] __initdata = {
1265DT_MACHINE_START(ARMADILLO800EVA_DT, "armadillo800eva") 1265DT_MACHINE_START(ARMADILLO800EVA_DT, "armadillo800eva")
1266 .map_io = r8a7740_map_io, 1266 .map_io = r8a7740_map_io,
1267 .init_early = eva_add_early_devices, 1267 .init_early = eva_add_early_devices,
1268 .init_irq = r8a7740_init_irq, 1268 .init_irq = r8a7740_init_irq_of,
1269 .init_machine = eva_init, 1269 .init_machine = eva_init,
1270 .init_late = shmobile_init_late, 1270 .init_late = shmobile_init_late,
1271 .init_time = eva_earlytimer_init, 1271 .init_time = eva_earlytimer_init,
diff --git a/arch/arm/mach-shmobile/include/mach/r8a7740.h b/arch/arm/mach-shmobile/include/mach/r8a7740.h
index 56f375005fcd..d07932f872b6 100644
--- a/arch/arm/mach-shmobile/include/mach/r8a7740.h
+++ b/arch/arm/mach-shmobile/include/mach/r8a7740.h
@@ -48,7 +48,6 @@ enum {
48 48
49extern void r8a7740_meram_workaround(void); 49extern void r8a7740_meram_workaround(void);
50extern void r8a7740_init_delay(void); 50extern void r8a7740_init_delay(void);
51extern void r8a7740_init_irq(void);
52extern void r8a7740_init_irq_of(void); 51extern void r8a7740_init_irq_of(void);
53extern void r8a7740_map_io(void); 52extern void r8a7740_map_io(void);
54extern void r8a7740_add_early_devices(void); 53extern void r8a7740_add_early_devices(void);
diff --git a/arch/arm/mach-shmobile/intc-r8a7740.c b/arch/arm/mach-shmobile/intc-r8a7740.c
index 8871f7717dc8..75193539b541 100644
--- a/arch/arm/mach-shmobile/intc-r8a7740.c
+++ b/arch/arm/mach-shmobile/intc-r8a7740.c
@@ -23,12 +23,14 @@
23#include <linux/irqchip.h> 23#include <linux/irqchip.h>
24#include <linux/irqchip/arm-gic.h> 24#include <linux/irqchip/arm-gic.h>
25 25
26static void __init r8a7740_init_irq_common(void) 26void __init r8a7740_init_irq_of(void)
27{ 27{
28 void __iomem *intc_prio_base = ioremap_nocache(0xe6900010, 0x10); 28 void __iomem *intc_prio_base = ioremap_nocache(0xe6900010, 0x10);
29 void __iomem *intc_msk_base = ioremap_nocache(0xe6900040, 0x10); 29 void __iomem *intc_msk_base = ioremap_nocache(0xe6900040, 0x10);
30 void __iomem *pfc_inta_ctrl = ioremap_nocache(0xe605807c, 0x4); 30 void __iomem *pfc_inta_ctrl = ioremap_nocache(0xe605807c, 0x4);
31 31
32 irqchip_init();
33
32 /* route signals to GIC */ 34 /* route signals to GIC */
33 iowrite32(0x0, pfc_inta_ctrl); 35 iowrite32(0x0, pfc_inta_ctrl);
34 36
@@ -50,19 +52,3 @@ static void __init r8a7740_init_irq_common(void)
50 iounmap(intc_msk_base); 52 iounmap(intc_msk_base);
51 iounmap(pfc_inta_ctrl); 53 iounmap(pfc_inta_ctrl);
52} 54}
53
54void __init r8a7740_init_irq_of(void)
55{
56 irqchip_init();
57 r8a7740_init_irq_common();
58}
59
60void __init r8a7740_init_irq(void)
61{
62 void __iomem *gic_dist_base = ioremap_nocache(0xc2800000, 0x1000);
63 void __iomem *gic_cpu_base = ioremap_nocache(0xc2000000, 0x1000);
64
65 /* initialize the Generic Interrupt Controller PL390 r0p0 */
66 gic_init(0, 29, gic_dist_base, gic_cpu_base);
67 r8a7740_init_irq_common();
68}