powerpc/85xx: consolidate of_platform_bus_probe calls
[cascardo/linux.git] / arch / powerpc / platforms / 85xx / sbc8560.c
index 09ced72..e9a7ed2 100644 (file)
 #include <sysdev/fsl_soc.h>
 #include <sysdev/fsl_pci.h>
 
+#include "mpc85xx.h"
+
 #ifdef CONFIG_CPM2
 #include <asm/cpm2.h>
 #include <sysdev/cpm2_pic.h>
 #endif
 
-#ifdef CONFIG_CPM2
-
-static void cpm2_cascade(unsigned int irq, struct irq_desc *desc)
-{
-       struct irq_chip *chip = irq_desc_get_chip(desc);
-       int cascade_irq;
-
-       while ((cascade_irq = cpm2_get_irq()) >= 0)
-               generic_handle_irq(cascade_irq);
-
-       chip->irq_eoi(&desc->irq_data);
-}
-
-#endif /* CONFIG_CPM2 */
-
 static void __init sbc8560_pic_init(void)
 {
        struct mpic *mpic;
        struct resource r;
        struct device_node *np = NULL;
-#ifdef CONFIG_CPM2
-       int irq;
-#endif
 
        np = of_find_node_by_type(np, "open-pic");
        if (!np) {
@@ -81,19 +65,7 @@ static void __init sbc8560_pic_init(void)
 
        mpic_init(mpic);
 
-#ifdef CONFIG_CPM2
-       /* Setup CPM2 PIC */
-       np = of_find_compatible_node(NULL, NULL, "fsl,cpm2-pic");
-       if (np == NULL) {
-               printk(KERN_ERR "PIC init: can not find fsl,cpm2-pic node\n");
-               return;
-       }
-       irq = irq_of_parse_and_map(np, 0);
-
-       cpm2_pic_init(np);
-       of_node_put(np);
-       irq_set_chained_handler(irq, cpm2_cascade);
-#endif
+       mpc85xx_cpm2_pic_init();
 }
 
 /*
@@ -208,23 +180,7 @@ static void sbc8560_show_cpuinfo(struct seq_file *m)
        seq_printf(m, "PLL setting\t: 0x%x\n", ((phid1 >> 24) & 0x3f));
 }
 
-static struct of_device_id __initdata of_bus_ids[] = {
-       { .name = "soc", },
-       { .type = "soc", },
-       { .name = "cpm", },
-       { .name = "localbus", },
-       { .compatible = "simple-bus", },
-       { .compatible = "gianfar", },
-       {},
-};
-
-static int __init declare_of_platform_devices(void)
-{
-       of_platform_bus_probe(NULL, of_bus_ids, NULL);
-
-       return 0;
-}
-machine_device_initcall(sbc8560, declare_of_platform_devices);
+machine_device_initcall(sbc8560, mpc85xx_common_publish_devices);
 
 /*
  * Called very early, device-tree isn't unflattened
@@ -283,7 +239,7 @@ static int __init sbc8560_bdrstcr_init(void)
 
        of_address_to_resource(np, 0, &res);
 
-       printk(KERN_INFO "sbc8560: Found BRSTCR at i/o 0x%x\n", res.start);
+       printk(KERN_INFO "sbc8560: Found BRSTCR at %pR\n", &res);
 
        brstcr = ioremap(res.start, resource_size(&res));
        if(!brstcr)