]> Pileus Git - ~andy/linux/blobdiff - arch/arm/mach-prima2/common.c
ARM: sirf: move irq driver to drivers/irqchip
[~andy/linux] / arch / arm / mach-prima2 / common.c
index ed3570e5eb8fd34e08f1daf7c17a1d772eb80a0f..15c14dfb47a0e213624fc44de702266ff0f77dad 100644 (file)
@@ -8,6 +8,7 @@
 
 #include <linux/init.h>
 #include <linux/kernel.h>
+#include <linux/irqchip.h>
 #include <asm/sizes.h>
 #include <asm/mach-types.h>
 #include <asm/mach/arch.h>
@@ -30,6 +31,30 @@ void __init sirfsoc_init_late(void)
        sirfsoc_pm_init();
 }
 
+static __init void sirfsoc_map_io(void)
+{
+       sirfsoc_map_lluart();
+       sirfsoc_map_scu();
+}
+
+#ifdef CONFIG_ARCH_ATLAS6
+static const char *atlas6_dt_match[] __initdata = {
+       "sirf,atlas6",
+       NULL
+};
+
+DT_MACHINE_START(ATLAS6_DT, "Generic ATLAS6 (Flattened Device Tree)")
+       /* Maintainer: Barry Song <baohua.song@csr.com> */
+       .map_io         = sirfsoc_map_io,
+       .init_irq       = irqchip_init,
+       .init_time      = sirfsoc_prima2_timer_init,
+       .init_machine   = sirfsoc_mach_init,
+       .init_late      = sirfsoc_init_late,
+       .dt_compat      = atlas6_dt_match,
+       .restart        = sirfsoc_restart,
+MACHINE_END
+#endif
+
 #ifdef CONFIG_ARCH_PRIMA2
 static const char *prima2_dt_match[] __initdata = {
        "sirf,prima2",
@@ -38,9 +63,9 @@ static const char *prima2_dt_match[] __initdata = {
 
 DT_MACHINE_START(PRIMA2_DT, "Generic PRIMA2 (Flattened Device Tree)")
        /* Maintainer: Barry Song <baohua.song@csr.com> */
-       .map_io         = sirfsoc_map_lluart,
-       .init_irq       = sirfsoc_of_irq_init,
-       .init_time      = sirfsoc_timer_init,
+       .map_io         = sirfsoc_map_io,
+       .init_irq       = irqchip_init,
+       .init_time      = sirfsoc_prima2_timer_init,
        .dma_zone_size  = SZ_256M,
        .init_machine   = sirfsoc_mach_init,
        .init_late      = sirfsoc_init_late,
@@ -48,3 +73,22 @@ DT_MACHINE_START(PRIMA2_DT, "Generic PRIMA2 (Flattened Device Tree)")
        .restart        = sirfsoc_restart,
 MACHINE_END
 #endif
+
+#ifdef CONFIG_ARCH_MARCO
+static const char *marco_dt_match[] __initdata = {
+       "sirf,marco",
+       NULL
+};
+
+DT_MACHINE_START(MARCO_DT, "Generic MARCO (Flattened Device Tree)")
+       /* Maintainer: Barry Song <baohua.song@csr.com> */
+       .smp            = smp_ops(sirfsoc_smp_ops),
+       .map_io         = sirfsoc_map_io,
+       .init_irq       = irqchip_init,
+       .init_time      = sirfsoc_marco_timer_init,
+       .init_machine   = sirfsoc_mach_init,
+       .init_late      = sirfsoc_init_late,
+       .dt_compat      = marco_dt_match,
+       .restart        = sirfsoc_restart,
+MACHINE_END
+#endif