public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
From: Michael Walle <michael@walle.cc>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH] lsxl: support power switch
Date: Tue, 31 Jul 2012 12:52:03 +0200	[thread overview]
Message-ID: <efb4913b63e84beb2bbef84c5acd2130.squirrel@ssl.serverraum.org> (raw)
In-Reply-To: <F766E4F80769BD478052FB6533FA745D1A582161DA@SC-VEXCH4.marvell.com>

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@walle.cc>
>> Cc: Prafulla Wadaskar <prafulla@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.

>
>> +
>> +		/* turn power on again */
>> +		kw_gpio_set_value(GPIO_HDD_POWER, 1);
>> +		kw_gpio_set_value(GPIO_USB_VBUS, 1);
>> +		set_led(LED_POWER_BLINKING);
>> +	}
>> +}
>> +
>>  void check_enetaddr(void)
>>  {
>>  	uchar enetaddr[6];
>> @@ -261,6 +280,7 @@ static void check_push_button(void)
>>
>>  int misc_init_r(void)
>>  {
>> +	check_power_switch();
>>  	check_enetaddr();
>>  	check_push_button();
>
> Ack for rest of the code.

Thanks for the review.

-- 
michael

  reply	other threads:[~2012-07-31 10:52 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-07-30 20:47 [U-Boot] [PATCH] lsxl: support power switch Michael Walle
2012-07-31  5:59 ` Prafulla Wadaskar
2012-07-31 10:52   ` Michael Walle [this message]
2012-07-31 11:12     ` Prafulla Wadaskar
2012-07-31 20:27       ` Michael Walle
2012-08-01  7:28         ` Prafulla Wadaskar
2012-09-03  9:02         ` Prafulla Wadaskar

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=efb4913b63e84beb2bbef84c5acd2130.squirrel@ssl.serverraum.org \
    --to=michael@walle.cc \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox