diff options
author | Remi Machet <rmachet@slac.stanford.edu> | 2008-04-30 20:40:44 -0400 |
---|---|---|
committer | Paul Mackerras <paulus@samba.org> | 2008-05-14 08:31:41 -0400 |
commit | 683307da07afd3a7ee55269ee8cb70c8053b0923 (patch) | |
tree | 5e18139868c02c14f95a61afb85855065a71315e /arch/powerpc | |
parent | 663276b7c6340e755ed62bed67a2b96f4fc3d513 (diff) |
[POWERPC] Create of_buses for MV64x60 devices
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>
Diffstat (limited to 'arch/powerpc')
-rw-r--r-- | arch/powerpc/sysdev/mv64x60_dev.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/arch/powerpc/sysdev/mv64x60_dev.c b/arch/powerpc/sysdev/mv64x60_dev.c index a132e0de8ca5..32e0ad0ebea8 100644 --- a/arch/powerpc/sysdev/mv64x60_dev.c +++ b/arch/powerpc/sysdev/mv64x60_dev.c | |||
@@ -15,6 +15,7 @@ | |||
15 | #include <linux/console.h> | 15 | #include <linux/console.h> |
16 | #include <linux/mv643xx.h> | 16 | #include <linux/mv643xx.h> |
17 | #include <linux/platform_device.h> | 17 | #include <linux/platform_device.h> |
18 | #include <linux/of_platform.h> | ||
18 | 19 | ||
19 | #include <asm/prom.h> | 20 | #include <asm/prom.h> |
20 | 21 | ||
@@ -25,6 +26,11 @@ | |||
25 | * PowerPC of_platform_bus_type. They support platform_bus_type instead. | 26 | * PowerPC of_platform_bus_type. They support platform_bus_type instead. |
26 | */ | 27 | */ |
27 | 28 | ||
29 | static struct of_device_id __initdata of_mv64x60_devices[] = { | ||
30 | { .compatible = "marvell,mv64306-devctrl", }, | ||
31 | {} | ||
32 | }; | ||
33 | |||
28 | /* | 34 | /* |
29 | * Create MPSC platform devices | 35 | * Create MPSC platform devices |
30 | */ | 36 | */ |
@@ -484,6 +490,10 @@ static int __init mv64x60_device_setup(void) | |||
484 | of_node_put(np); | 490 | of_node_put(np); |
485 | } | 491 | } |
486 | 492 | ||
493 | /* Now add every node that is on the device bus */ | ||
494 | for_each_compatible_node(np, NULL, "marvell,mv64360") | ||
495 | of_platform_bus_probe(np, of_mv64x60_devices, NULL); | ||
496 | |||
487 | return 0; | 497 | return 0; |
488 | } | 498 | } |
489 | arch_initcall(mv64x60_device_setup); | 499 | arch_initcall(mv64x60_device_setup); |