aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--arch/powerpc/platforms/pasemi/setup.c24
1 files changed, 9 insertions, 15 deletions
diff --git a/arch/powerpc/platforms/pasemi/setup.c b/arch/powerpc/platforms/pasemi/setup.c
index f69f5e76618..cabf7017c05 100644
--- a/arch/powerpc/platforms/pasemi/setup.c
+++ b/arch/powerpc/platforms/pasemi/setup.c
@@ -38,21 +38,13 @@
#include "pasemi.h"
-static void pas_restart(char *cmd)
-{
- printk("restart unimplemented, looping...\n");
- for (;;) ;
-}
-
-static void pas_power_off(void)
-{
- printk("power off unimplemented, looping...\n");
- for (;;) ;
-}
+static void __iomem *reset_reg;
-static void pas_halt(void)
+static void pas_restart(char *cmd)
{
- pas_power_off();
+ printk("Restarting...\n");
+ while (1)
+ out_le32(reset_reg, 0x6000000);
}
#ifdef CONFIG_SMP
@@ -82,6 +74,10 @@ void __init pas_setup_arch(void)
conswitchp = &dummy_con;
#endif
+ /* Remap SDC register for doing reset */
+ /* XXXOJN This should maybe come out of the device tree */
+ reset_reg = ioremap(0xfc101100, 4);
+
pasemi_idle_init();
}
@@ -211,8 +207,6 @@ define_machine(pas) {
.init_IRQ = pas_init_IRQ,
.get_irq = mpic_get_irq,
.restart = pas_restart,
- .power_off = pas_power_off,
- .halt = pas_halt,
.get_boot_time = pas_get_boot_time,
.calibrate_decr = generic_calibrate_decr,
.check_legacy_ioport = pas_check_legacy_ioport,