ARM: shmobile: marzen: Use DT for GIC
authorKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Fri, 2 Aug 2013 06:39:34 +0000 (23:39 -0700)
committerSimon Horman <horms+renesas@verge.net.au>
Tue, 6 Aug 2013 02:18:40 +0000 (11:18 +0900)
Current Marzen is using DT booting,
and r8a7779.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.

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>
arch/arm/mach-shmobile/board-marzen.c
arch/arm/mach-shmobile/include/mach/r8a7779.h
arch/arm/mach-shmobile/intc-r8a7779.c

index bcd07c065224ee9e16a93c598cdc50e4d3d5cf8c..f3027295f60ca411f326f89c5115923d74a17e4b 100644 (file)
@@ -247,8 +247,7 @@ DT_MACHINE_START(MARZEN, "marzen")
        .smp            = smp_ops(r8a7779_smp_ops),
        .map_io         = r8a7779_map_io,
        .init_early     = r8a7779_add_early_devices,
-       .nr_irqs        = NR_IRQS_LEGACY,
-       .init_irq       = r8a7779_init_irq,
+       .init_irq       = r8a7779_init_irq_dt,
        .init_machine   = marzen_init,
        .init_late      = r8a7779_init_late,
        .dt_compat      = marzen_boards_compat_dt,
index fc47073c7ba905d0a74c3a723cd4e5e29abb6e0e..c62252f77c85c4ee83f403280995b9b825280a28 100644 (file)
@@ -25,7 +25,6 @@ static inline struct r8a7779_pm_ch *to_r8a7779_ch(struct generic_pm_domain *d)
 }
 
 extern void r8a7779_init_delay(void);
-extern void r8a7779_init_irq(void);
 extern void r8a7779_init_irq_extpin(int irlm);
 extern void r8a7779_init_irq_dt(void);
 extern void r8a7779_map_io(void);
index b86dc8908724f3cb38a651897623b021aeb37c28..8a082f032414ce129678020738e1d9c632e1e2eb 100644 (file)
@@ -90,15 +90,18 @@ void __init r8a7779_init_irq_extpin(int irlm)
                pr_warn("r8a7779: unable to setup external irq pin mode\n");
 }
 
+#ifdef CONFIG_OF
 static int r8a7779_set_wake(struct irq_data *data, unsigned int on)
 {
        return 0; /* always allow wakeup */
 }
 
-static void __init r8a7779_init_irq_common(void)
+void __init r8a7779_init_irq_dt(void)
 {
        gic_arch_extn.irq_set_wake = r8a7779_set_wake;
 
+       irqchip_init();
+
        /* route all interrupts to ARM */
        __raw_writel(0xffffffff, INT2NTSR0);
        __raw_writel(0x3fffffff, INT2NTSR1);
@@ -109,23 +112,6 @@ static void __init r8a7779_init_irq_common(void)
        __raw_writel(0xfffbffdf, INT2SMSKCR2);
        __raw_writel(0xbffffffc, INT2SMSKCR3);
        __raw_writel(0x003fee3f, INT2SMSKCR4);
-}
-
-void __init r8a7779_init_irq(void)
-{
-       void __iomem *gic_dist_base = IOMEM(0xf0001000);
-       void __iomem *gic_cpu_base = IOMEM(0xf0000100);
 
-       /* use GIC to handle interrupts */
-       gic_init(0, 29, gic_dist_base, gic_cpu_base);
-
-       r8a7779_init_irq_common();
-}
-
-#ifdef CONFIG_OF
-void __init r8a7779_init_irq_dt(void)
-{
-       irqchip_init();
-       r8a7779_init_irq_common();
 }
 #endif