[U-Boot] [PATCH] lsxl: support power switch

Prafulla Wadaskar prafulla at marvell.com
Mon Sep 3 11:02:12 CEST 2012



> -----Original Message-----
> From: Prafulla Wadaskar
> Sent: 01 August 2012 12:58
> To: 'Michael Walle'
> Cc: u-boot at lists.denx.de
> Subject: RE: [PATCH] lsxl: support power switch
> 
> 
> 
> > -----Original Message-----
> > From: Michael Walle [mailto:michael at walle.cc]
> > Sent: 01 August 2012 01:58
> > To: Prafulla Wadaskar
> > Cc: u-boot at lists.denx.de
> > Subject: Re: [PATCH] lsxl: support power switch
> >
> > Am Dienstag 31 Juli 2012, 13:12:19 schrieb Prafulla Wadaskar:
> > > > -----Original Message-----
> > > > From: Michael Walle [mailto:michael at walle.cc]
> > > > Sent: 31 July 2012 16:22
> > > > To: Prafulla Wadaskar
> > > > Cc: Michael Walle; u-boot at 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:michael at walle.cc]
> > > > >> Sent: 31 July 2012 02:17
> > > > >> To: u-boot at 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 <michael at walle.cc>
> > > > >> Cc: Prafulla Wadaskar <prafulla at 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.
> >
> > ok thanks, can you apply it to your repository?
> >
> 
> Sure..

Applied to u-boot-marvell.git master branch

Regards...
Prafulla . . .


More information about the U-Boot mailing list