Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 92a5de80 authored by Alexey Kopytko's avatar Alexey Kopytko Committed by Nicolas Pitre
Browse files

[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: default avatarAlexey Kopytko <alexey@kopytko.ru>
Signed-off-by: default avatarNicolas Pitre <nico@marvell.com>
parent 7b0a26f2
Loading
Loading
Loading
Loading
+20 −0
Original line number Original line Diff line number Diff line
@@ -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
 * General Setup
 ****************************************************************************/
 ****************************************************************************/
@@ -241,6 +258,9 @@ static void __init lsmini_init(void)
	/* enable USB power */
	/* enable USB power */
	gpio_set_value(LSMINI_GPIO_USB_POWER, 1);
	gpio_set_value(LSMINI_GPIO_USB_POWER, 1);


	/* register power-off method */
	pm_power_off = lsmini_power_off;

	pr_info("%s: finished\n", __func__);
	pr_info("%s: finished\n", __func__);
}
}