Browse Source

[ARM] Orion: Add Buffalo Linkstation Mini power-off method

This patch adds specific power-off method for Buffalo Linkstation Mini
board. The board has a hardware switch which should be monitored from
userspace. When the switch is in OFF position the board should be rebooted
and U-Boot will start in an idle mode and wait for the user to move the
power switch back to ON position.

Signed-off-by: Alexey Kopytko <alexey@kopytko.ru>
Signed-off-by: Nicolas Pitre <nico@marvell.com>
Alexey Kopytko 16 years ago
parent
commit
92a5de80e5
1 changed files with 20 additions and 0 deletions
  1. 20 0
      arch/arm/mach-orion5x/lsmini-setup.c

+ 20 - 0
arch/arm/mach-orion5x/lsmini-setup.c

@@ -173,6 +173,23 @@ static struct mv_sata_platform_data lsmini_sata_data = {
 };
 
 
+/*****************************************************************************
+ * Linkstation Mini specific power off method: reboot
+ ****************************************************************************/
+/*
+ * On the Linkstation Mini, the shutdown process is following:
+ * - Userland monitors key events until the power switch goes to off position
+ * - The board reboots
+ * - U-boot starts and goes into an idle mode waiting for the user
+ *   to move the switch to ON position
+ */
+
+static void lsmini_power_off(void)
+{
+	arch_reset(0);
+}
+
+
 /*****************************************************************************
  * General Setup
  ****************************************************************************/
@@ -241,6 +258,9 @@ static void __init lsmini_init(void)
 	/* enable USB power */
 	gpio_set_value(LSMINI_GPIO_USB_POWER, 1);
 
+	/* register power-off method */
+	pm_power_off = lsmini_power_off;
+
 	pr_info("%s: finished\n", __func__);
 }