]> Pileus Git - ~andy/linux/blobdiff - arch/arm/mach-prima2/common.c
Merge remote-tracking branch 'asoc/fix/dapm' into asoc-next
[~andy/linux] / arch / arm / mach-prima2 / common.c
index ed3570e5eb8fd34e08f1daf7c17a1d772eb80a0f..2d57aa479a7bea697176537028f9fbb7f10101f7 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,12 @@ 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_PRIMA2
 static const char *prima2_dt_match[] __initdata = {
        "sirf,prima2",
@@ -38,9 +45,12 @@ 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,
+       .map_io         = sirfsoc_map_io,
        .init_irq       = sirfsoc_of_irq_init,
-       .init_time      = sirfsoc_timer_init,
+       .init_time      = sirfsoc_prima2_timer_init,
+#ifdef CONFIG_MULTI_IRQ_HANDLER
+       .handle_irq     = sirfsoc_handle_irq,
+#endif
        .dma_zone_size  = SZ_256M,
        .init_machine   = sirfsoc_mach_init,
        .init_late      = sirfsoc_init_late,
@@ -48,3 +58,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