> -----Original Message----- > From: Michael Walle [mailto:mich...@walle.cc] > Sent: 31 July 2012 16:22 > To: Prafulla Wadaskar > Cc: Michael Walle; u-boot@lists.denx.de > Subject: RE: [PATCH] lsxl: support power switch > > On Tue, July 31, 2012 07:59, Prafulla Wadaskar wrote: > > > > > >> -----Original Message----- > >> From: Michael Walle [mailto:mich...@walle.cc] > >> Sent: 31 July 2012 02:17 > >> To: u-boot@lists.denx.de > >> Cc: Michael Walle; Prafulla Wadaskar > >> Subject: [PATCH] lsxl: support power switch > >> > >> This patch restores the Linkstation's original behaviour when > powering > >> off. > >> Once the (soft) power switch is turned off, linux will reboot and > the > >> bootloader turns off HDD and USB power. Then it loops as long as > the > >> switch > >> is in the off position, before continuing the boot process again. > >> > >> Additionally, this patch fixes the board function set_led(LED_OFF). > >> > >> Signed-off-by: Michael Walle <mich...@walle.cc> > >> Cc: Prafulla Wadaskar <prafu...@marvell.com> > >> --- > >> board/buffalo/lsxl/lsxl.c | 22 +++++++++++++++++++++- > >> 1 files changed, 21 insertions(+), 1 deletions(-) > >> > >> diff --git a/board/buffalo/lsxl/lsxl.c b/board/buffalo/lsxl/lsxl.c > >> index fe15511..b3f31d6 100644 > >> --- a/board/buffalo/lsxl/lsxl.c > >> +++ b/board/buffalo/lsxl/lsxl.c > >> @@ -158,7 +158,7 @@ static void set_led(int state) > >> { > >> switch (state) { > >> case LED_OFF: > >> - __set_led(0, 0, 0, 0, 0, 0); > >> + __set_led(0, 0, 0, 1, 1, 1); > >> break; > >> case LED_ALARM_ON: > >> __set_led(0, 0, 0, 0, 1, 1); > >> @@ -192,6 +192,25 @@ int board_init(void) > >> } > >> > >> #ifdef CONFIG_MISC_INIT_R > >> +static void check_power_switch(void) > >> +{ > >> + if (kw_gpio_get_value(GPIO_POWER_SWITCH)) { > >> + /* turn off HDD and USB power */ > >> + kw_gpio_set_value(GPIO_HDD_POWER, 0); > >> + kw_gpio_set_value(GPIO_USB_VBUS, 0); > >> + set_led(LED_OFF); > >> + > >> + /* loop until released */ > >> + while (kw_gpio_get_value(GPIO_POWER_SWITCH)) > >> + ; > > > > Please avoid infinite loop, may you introduce timeout? > > actually, thats the use case, to loop indefinitely ;) See the commit > message. The GPIO is a switch not a button. As long as it is switched > to > "Power Off" uboot should loop.
Okay got it. Ack for this patch. Regards... Prafulla . . . _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot