]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - arch/powerpc/platforms/85xx/mpc85xx_ds.c
powerpc/85xx: Move gianfar mdio nodes under the ethernet nodes
[linux-2.6-omap-h63xx.git] / arch / powerpc / platforms / 85xx / mpc85xx_ds.c
index 613bf8c2e30d988b3fac38c2f0297a944551a46f..de66de7a9ca2876a7bd27bd27e619cceac36c0ec 100644 (file)
@@ -63,6 +63,7 @@ void __init mpc85xx_ds_pic_init(void)
        struct device_node *cascade_node = NULL;
        int cascade_irq;
 #endif
+       unsigned long root = of_get_flat_dt_root();
 
        np = of_find_node_by_type(NULL, "open-pic");
        if (np == NULL) {
@@ -76,11 +77,19 @@ void __init mpc85xx_ds_pic_init(void)
                return;
        }
 
-       mpic = mpic_alloc(np, r.start,
+       if (of_flat_dt_is_compatible(root, "fsl,MPC8572DS-CAMP")) {
+               mpic = mpic_alloc(np, r.start,
+                       MPIC_PRIMARY |
+                       MPIC_BIG_ENDIAN | MPIC_BROKEN_FRR_NIRQS,
+                       0, 256, " OpenPIC  ");
+       } else {
+               mpic = mpic_alloc(np, r.start,
                          MPIC_PRIMARY | MPIC_WANTS_RESET |
                          MPIC_BIG_ENDIAN | MPIC_BROKEN_FRR_NIRQS |
                          MPIC_SINGLE_DEST_CPU,
                        0, 256, " OpenPIC  ");
+       }
+
        BUG_ON(mpic == NULL);
        of_node_put(np);
 
@@ -139,6 +148,9 @@ static int mpc85xx_exclude_device(struct pci_controller *hose,
 /*
  * Setup the architecture
  */
+#ifdef CONFIG_SMP
+extern void __init mpc85xx_smp_init(void);
+#endif
 static void __init mpc85xx_ds_setup_arch(void)
 {
 #ifdef CONFIG_PCI
@@ -164,6 +176,10 @@ static void __init mpc85xx_ds_setup_arch(void)
        ppc_md.pci_exclude_device = mpc85xx_exclude_device;
 #endif
 
+#ifdef CONFIG_SMP
+       mpc85xx_smp_init();
+#endif
+
        printk("MPC85xx DS board from Freescale Semiconductor\n");
 }
 
@@ -188,6 +204,7 @@ static struct of_device_id __initdata mpc85xxds_ids[] = {
        { .type = "soc", },
        { .compatible = "soc", },
        { .compatible = "simple-bus", },
+       { .compatible = "gianfar", },
        {},
 };