[POWERPC] Create of_buses for MV64x60 devices
authorRemi Machet <rmachet@slac.stanford.edu>
Thu, 1 May 2008 00:40:44 +0000 (10:40 +1000)
committerPaul Mackerras <paulus@samba.org>
Wed, 14 May 2008 12:31:41 +0000 (22:31 +1000)
For each mv64360 entry in the OpenFirmware database, add the
registration of an of_bus to take care of devices connected to
the MV64x60 asynchronous devices controller.
This change makes it possible for those devices to be detected by
drivers that support the of_platform without having a custom call
for each of them in the board file.

Signed-off-by: Remi Machet <rmachet@slac.stanford.edu>
Signed-off-by: Paul Mackerras <paulus@samba.org>
arch/powerpc/sysdev/mv64x60_dev.c

index a132e0de8ca5a056ac1f7803c7fe5925a037cf31..32e0ad0ebea8286af9b5b3b8cc1bd18ac1a42ed0 100644 (file)
@@ -15,6 +15,7 @@
 #include <linux/console.h>
 #include <linux/mv643xx.h>
 #include <linux/platform_device.h>
+#include <linux/of_platform.h>
 
 #include <asm/prom.h>
 
  * PowerPC of_platform_bus_type.  They support platform_bus_type instead.
  */
 
+static struct of_device_id __initdata of_mv64x60_devices[] = {
+       { .compatible = "marvell,mv64306-devctrl", },
+       {}
+};
+
 /*
  * Create MPSC platform devices
  */
@@ -484,6 +490,10 @@ static int __init mv64x60_device_setup(void)
                of_node_put(np);
        }
 
+       /* Now add every node that is on the device bus */
+       for_each_compatible_node(np, NULL, "marvell,mv64360")
+               of_platform_bus_probe(np, of_mv64x60_devices, NULL);
+
        return 0;
 }
 arch_initcall(mv64x60_device_setup);