aboutsummaryrefslogtreecommitdiffstats
path: root/arch/mips/cobalt/reset.c
diff options
context:
space:
mode:
authorYoichi Yuasa <yoichi_yuasa@tripeaks.co.jp>2007-10-01 06:45:05 -0400
committerRalf Baechle <ralf@linux-mips.org>2007-10-11 18:46:12 -0400
commite86169fffedc2f461be6f70817ae5ab201c12fd5 (patch)
tree62a42062dbdddb79c759736122a0af161d2e3668 /arch/mips/cobalt/reset.c
parentf4fae8267c152d6c319a7bfaf92ed1c2c9a2c4e8 (diff)
[MIPS] Cobalt: Add Cobalt Raq LED platform register and power off trigger
Signed-off-by: Yoichi Yuasa <yoichi_yuasa@tripeaks.co.jp> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Diffstat (limited to 'arch/mips/cobalt/reset.c')
-rw-r--r--arch/mips/cobalt/reset.c22
1 files changed, 14 insertions, 8 deletions
diff --git a/arch/mips/cobalt/reset.c b/arch/mips/cobalt/reset.c
index 43cca21fdbc0..f503a0d04b3b 100644
--- a/arch/mips/cobalt/reset.c
+++ b/arch/mips/cobalt/reset.c
@@ -8,31 +8,37 @@
8 * Copyright (C) 1995, 1996, 1997 by Ralf Baechle 8 * Copyright (C) 1995, 1996, 1997 by Ralf Baechle
9 * Copyright (C) 2001 by Liam Davies (ldavies@agile.tv) 9 * Copyright (C) 2001 by Liam Davies (ldavies@agile.tv)
10 */ 10 */
11#include <linux/init.h>
11#include <linux/jiffies.h> 12#include <linux/jiffies.h>
12 13#include <linux/leds.h>
13#include <asm/io.h>
14#include <asm/reboot.h>
15 14
16#include <cobalt.h> 15#include <cobalt.h>
17 16
17DEFINE_LED_TRIGGER(power_off_led_trigger);
18
19static int __init ledtrig_power_off_init(void)
20{
21 led_trigger_register_simple("power-off", &power_off_led_trigger);
22 return 0;
23}
24device_initcall(ledtrig_power_off_init);
25
18void cobalt_machine_halt(void) 26void cobalt_machine_halt(void)
19{ 27{
20 int state, last, diff; 28 int state, last, diff;
21 unsigned long mark; 29 unsigned long mark;
22 30
23 /* 31 /*
24 * turn off bar on Qube, flash power off LED on RaQ (0.5Hz) 32 * turn on power off LED on RaQ
25 * 33 *
26 * restart if ENTER and SELECT are pressed 34 * restart if ENTER and SELECT are pressed
27 */ 35 */
28 36
29 last = COBALT_KEY_PORT; 37 last = COBALT_KEY_PORT;
30 38
31 for (state = 0;;) { 39 led_trigger_event(power_off_led_trigger, LED_FULL);
32
33 state ^= COBALT_LED_POWER_OFF;
34 COBALT_LED_PORT = state;
35 40
41 for (state = 0;;) {
36 diff = COBALT_KEY_PORT ^ last; 42 diff = COBALT_KEY_PORT ^ last;
37 last ^= diff; 43 last ^= diff;
38 44