diff options
Diffstat (limited to 'arch/powerpc/platforms/40x/walnut.c')
| -rw-r--r-- | arch/powerpc/platforms/40x/walnut.c | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/arch/powerpc/platforms/40x/walnut.c b/arch/powerpc/platforms/40x/walnut.c index eb0c136b1c4..8b691df72f7 100644 --- a/arch/powerpc/platforms/40x/walnut.c +++ b/arch/powerpc/platforms/40x/walnut.c @@ -17,14 +17,18 @@ */ #include <linux/init.h> +#include <linux/of_platform.h> +#include <linux/rtc.h> + #include <asm/machdep.h> #include <asm/prom.h> #include <asm/udbg.h> #include <asm/time.h> #include <asm/uic.h> -#include <asm/of_platform.h> +#include <asm/pci-bridge.h> +#include <asm/ppc4xx.h> -static struct of_device_id walnut_of_bus[] = { +static __initdata struct of_device_id walnut_of_bus[] = { { .compatible = "ibm,plb3", }, { .compatible = "ibm,opb", }, { .compatible = "ibm,ebc", }, @@ -33,15 +37,12 @@ static struct of_device_id walnut_of_bus[] = { static int __init walnut_device_probe(void) { - if (!machine_is(walnut)) - return 0; - - /* FIXME: do bus probe here */ of_platform_bus_probe(NULL, walnut_of_bus, NULL); + of_instantiate_rtc(); return 0; } -device_initcall(walnut_device_probe); +machine_device_initcall(walnut, walnut_device_probe); static int __init walnut_probe(void) { @@ -50,6 +51,8 @@ static int __init walnut_probe(void) if (!of_flat_dt_is_compatible(root, "ibm,walnut")) return 0; + pci_set_flags(PCI_REASSIGN_ALL_RSRC); + return 1; } @@ -59,5 +62,6 @@ define_machine(walnut) { .progress = udbg_progress, .init_IRQ = uic_init_tree, .get_irq = uic_get_irq, - .calibrate_decr = generic_calibrate_decr, + .restart = ppc4xx_reset_system, + .calibrate_decr = generic_calibrate_decr, }; |
