diff options
author | Olof Johansson <olof@lixom.net> | 2007-02-04 17:36:52 -0500 |
---|---|---|
committer | Paul Mackerras <paulus@samba.org> | 2007-02-06 22:03:22 -0500 |
commit | f620be99e9355c41693f0c748ba9260f69278ee0 (patch) | |
tree | e2acc48246629e4afe44abff2f04f79ee9092f61 /arch | |
parent | 1199919b69ff9559a3d3444fb5eb45b7cc48264d (diff) |
[POWERPC] pasemi: Implement restart
Implement reset on platforms/pasemi. Default is just to reset the
cpu using the SDC registers.
Signed-off-by: Olof Johansson <olof@lixom.net>
Signed-off-by: Paul Mackerras <paulus@samba.org>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/powerpc/platforms/pasemi/setup.c | 24 |
1 files changed, 9 insertions, 15 deletions
diff --git a/arch/powerpc/platforms/pasemi/setup.c b/arch/powerpc/platforms/pasemi/setup.c index f69f5e76618f..cabf7017c05e 100644 --- a/arch/powerpc/platforms/pasemi/setup.c +++ b/arch/powerpc/platforms/pasemi/setup.c | |||
@@ -38,21 +38,13 @@ | |||
38 | 38 | ||
39 | #include "pasemi.h" | 39 | #include "pasemi.h" |
40 | 40 | ||
41 | static void pas_restart(char *cmd) | 41 | static void __iomem *reset_reg; |
42 | { | ||
43 | printk("restart unimplemented, looping...\n"); | ||
44 | for (;;) ; | ||
45 | } | ||
46 | |||
47 | static void pas_power_off(void) | ||
48 | { | ||
49 | printk("power off unimplemented, looping...\n"); | ||
50 | for (;;) ; | ||
51 | } | ||
52 | 42 | ||
53 | static void pas_halt(void) | 43 | static void pas_restart(char *cmd) |
54 | { | 44 | { |
55 | pas_power_off(); | 45 | printk("Restarting...\n"); |
46 | while (1) | ||
47 | out_le32(reset_reg, 0x6000000); | ||
56 | } | 48 | } |
57 | 49 | ||
58 | #ifdef CONFIG_SMP | 50 | #ifdef CONFIG_SMP |
@@ -82,6 +74,10 @@ void __init pas_setup_arch(void) | |||
82 | conswitchp = &dummy_con; | 74 | conswitchp = &dummy_con; |
83 | #endif | 75 | #endif |
84 | 76 | ||
77 | /* Remap SDC register for doing reset */ | ||
78 | /* XXXOJN This should maybe come out of the device tree */ | ||
79 | reset_reg = ioremap(0xfc101100, 4); | ||
80 | |||
85 | pasemi_idle_init(); | 81 | pasemi_idle_init(); |
86 | } | 82 | } |
87 | 83 | ||
@@ -211,8 +207,6 @@ define_machine(pas) { | |||
211 | .init_IRQ = pas_init_IRQ, | 207 | .init_IRQ = pas_init_IRQ, |
212 | .get_irq = mpic_get_irq, | 208 | .get_irq = mpic_get_irq, |
213 | .restart = pas_restart, | 209 | .restart = pas_restart, |
214 | .power_off = pas_power_off, | ||
215 | .halt = pas_halt, | ||
216 | .get_boot_time = pas_get_boot_time, | 210 | .get_boot_time = pas_get_boot_time, |
217 | .calibrate_decr = generic_calibrate_decr, | 211 | .calibrate_decr = generic_calibrate_decr, |
218 | .check_legacy_ioport = pas_check_legacy_ioport, | 212 | .check_legacy_ioport = pas_check_legacy_ioport, |