* add 'poweroff' support
@ 2012-06-13 19:43 Antony Pavlov
2012-06-13 19:43 ` [PATCH 1/2] add 'poweroff' command Antony Pavlov
` (2 more replies)
0 siblings, 3 replies; 6+ messages in thread
From: Antony Pavlov @ 2012-06-13 19:43 UTC (permalink / raw)
To: barebox
This patch series adds the ability to turn power off on
Ritmix RZX-50 game console.
The Ritmix RZX-50 game console is a battery-powered device.
So I you keep it running barebox it can to use up the battery
in 14-16 hours. So it is very desirable to be able to turn
power off from barebox.
[PATCH 1/2] add 'poweroff' command
[PATCH 2/2] rzx50: add poweroff support
_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH 1/2] add 'poweroff' command
2012-06-13 19:43 add 'poweroff' support Antony Pavlov
@ 2012-06-13 19:43 ` Antony Pavlov
2012-06-13 19:43 ` [PATCH 2/2] rzx50: add poweroff support Antony Pavlov
2012-06-14 8:05 ` add 'poweroff' support Sascha Hauer
2 siblings, 0 replies; 6+ messages in thread
From: Antony Pavlov @ 2012-06-13 19:43 UTC (permalink / raw)
To: barebox
Signed-off-by: Antony Pavlov <antonynpavlov@gmail.com>
---
commands/Kconfig | 9 +++++++++
commands/Makefile | 1 +
commands/poweroff.c | 37 +++++++++++++++++++++++++++++++++++++
include/common.h | 1 +
4 files changed, 48 insertions(+)
create mode 100644 commands/poweroff.c
diff --git a/commands/Kconfig b/commands/Kconfig
index 52e1f17..e9f6e25 100644
--- a/commands/Kconfig
+++ b/commands/Kconfig
@@ -6,6 +6,10 @@ config COMMAND_SUPPORT
depends on !SHELL_NONE
default y
+config HAS_POWEROFF
+ bool
+ default n
+
if COMMAND_SUPPORT
menu "commands "
@@ -422,6 +426,11 @@ config CMD_RESET
tristate
prompt "reset"
+config CMD_POWEROFF
+ tristate
+ depends on HAS_POWEROFF
+ prompt "poweroff"
+
config CMD_GO
tristate
prompt "go"
diff --git a/commands/Makefile b/commands/Makefile
index d39c466..ad3480c 100644
--- a/commands/Makefile
+++ b/commands/Makefile
@@ -12,6 +12,7 @@ obj-$(CONFIG_CMD_EDIT) += edit.o
obj-$(CONFIG_CMD_EXEC) += exec.o
obj-$(CONFIG_CMD_SLEEP) += sleep.o
obj-$(CONFIG_CMD_RESET) += reset.o
+obj-$(CONFIG_CMD_POWEROFF) += poweroff.o
obj-$(CONFIG_CMD_GO) += go.o
obj-$(CONFIG_NET) += net.o
obj-$(CONFIG_CMD_PARTITION) += partition.o
diff --git a/commands/poweroff.c b/commands/poweroff.c
new file mode 100644
index 0000000..cd5542b
--- /dev/null
+++ b/commands/poweroff.c
@@ -0,0 +1,37 @@
+/*
+ * poweroff.c - turn board's power off
+ *
+ * Copyright (C) 2011 Antony Pavlov <antonynpavlov@gmail.com>
+ *
+ * This file is part of barebox.
+ * See file CREDITS for list of people who contributed to this project.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2
+ * as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+#include <common.h>
+#include <command.h>
+
+static int cmd_poweroff(struct command *cmdtp, int argc, char *argv[])
+{
+ poweroff();
+
+ /* Not reached */
+ return 1;
+}
+
+BAREBOX_CMD_START(poweroff)
+ .cmd = cmd_poweroff,
+ .usage = "Perform POWER OFF of the board",
+BAREBOX_CMD_END
diff --git a/include/common.h b/include/common.h
index d2347f8..9745aeb 100644
--- a/include/common.h
+++ b/include/common.h
@@ -102,6 +102,7 @@ long get_ram_size (volatile long *, long);
/* $(CPU)/cpu.c */
void __noreturn reset_cpu(unsigned long addr);
+void __noreturn poweroff(void);
/* lib_$(ARCH)/time.c */
void udelay (unsigned long);
--
1.7.10
_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH 2/2] rzx50: add poweroff support
2012-06-13 19:43 add 'poweroff' support Antony Pavlov
2012-06-13 19:43 ` [PATCH 1/2] add 'poweroff' command Antony Pavlov
@ 2012-06-13 19:43 ` Antony Pavlov
2012-06-25 7:32 ` Sascha Hauer
2012-06-14 8:05 ` add 'poweroff' support Sascha Hauer
2 siblings, 1 reply; 6+ messages in thread
From: Antony Pavlov @ 2012-06-13 19:43 UTC (permalink / raw)
To: barebox
Signed-off-by: Antony Pavlov <antonynpavlov@gmail.com>
---
arch/mips/mach-xburst/Kconfig | 1 +
arch/mips/mach-xburst/include/mach/jz4750d_regs.h | 31 +++++++++++++++++++++
arch/mips/mach-xburst/reset-jz4750.c | 28 +++++++++++++++++++
3 files changed, 60 insertions(+)
diff --git a/arch/mips/mach-xburst/Kconfig b/arch/mips/mach-xburst/Kconfig
index 60e411c..c72b741 100644
--- a/arch/mips/mach-xburst/Kconfig
+++ b/arch/mips/mach-xburst/Kconfig
@@ -12,6 +12,7 @@ choice
config BOARD_RZX50
bool "Ritmix RZX-50"
+ select HAS_POWEROFF
select CPU_JZ4755
endchoice
diff --git a/arch/mips/mach-xburst/include/mach/jz4750d_regs.h b/arch/mips/mach-xburst/include/mach/jz4750d_regs.h
index 717493b..eafdd2f 100644
--- a/arch/mips/mach-xburst/include/mach/jz4750d_regs.h
+++ b/arch/mips/mach-xburst/include/mach/jz4750d_regs.h
@@ -15,6 +15,7 @@
#define TCU_BASE 0xb0002000
#define WDT_BASE 0xb0002000
+#define RTC_BASE 0xb0003000
#define UART1_BASE 0xb0031000
/*************************************************************************
@@ -77,4 +78,34 @@
#define WDT_TCER_TCEN (1 << 0)
+/*************************************************************************
+ * RTC
+ *************************************************************************/
+#define RTC_RCR (RTC_BASE + 0x00) /* RTC Control Register */
+#define RTC_RSR (RTC_BASE + 0x04) /* RTC Second Register */
+#define RTC_RSAR (RTC_BASE + 0x08) /* RTC Second Alarm Register */
+#define RTC_RGR (RTC_BASE + 0x0c) /* RTC Regulator Register */
+
+#define RTC_HCR (RTC_BASE + 0x20) /* Hibernate Control Register */
+#define RTC_HWFCR (RTC_BASE + 0x24) /* Hibernate Wakeup Filter Counter Reg */
+#define RTC_HRCR (RTC_BASE + 0x28) /* Hibernate Reset Counter Register */
+#define RTC_HWCR (RTC_BASE + 0x2c) /* Hibernate Wakeup Control Register */
+#define RTC_HWRSR (RTC_BASE + 0x30) /* Hibernate Wakeup Status Register */
+#define RTC_HSPR (RTC_BASE + 0x34) /* Hibernate Scratch Pattern Register */
+
+/* RTC Control Register */
+#define RTC_RCR_WRDY_BIT 7
+#define RTC_RCR_WRDY (1 << 7) /* Write Ready Flag */
+#define RTC_RCR_1HZ_BIT 6
+#define RTC_RCR_1HZ (1 << RTC_RCR_1HZ_BIT) /* 1Hz Flag */
+#define RTC_RCR_1HZIE (1 << 5) /* 1Hz Interrupt Enable */
+#define RTC_RCR_AF_BIT 4
+#define RTC_RCR_AF (1 << RTC_RCR_AF_BIT) /* Alarm Flag */
+#define RTC_RCR_AIE (1 << 3) /* Alarm Interrupt Enable */
+#define RTC_RCR_AE (1 << 2) /* Alarm Enable */
+#define RTC_RCR_RTCE (1 << 0) /* RTC Enable */
+
+/* Hibernate Control Register */
+#define RTC_HCR_PD (1 << 0) /* Power Down */
+
#endif /* __JZ4750D_REGS_H__ */
diff --git a/arch/mips/mach-xburst/reset-jz4750.c b/arch/mips/mach-xburst/reset-jz4750.c
index 3540ca9..4bda56c 100644
--- a/arch/mips/mach-xburst/reset-jz4750.c
+++ b/arch/mips/mach-xburst/reset-jz4750.c
@@ -29,6 +29,19 @@
#define JZ_EXTAL 24000000
+static void jz4750d_halt(void)
+{
+ while (1) {
+ __asm__(".set push;\n"
+ ".set mips3;\n"
+ "wait;\n"
+ ".set pop;\n"
+ );
+ }
+
+ unreachable();
+}
+
void __noreturn reset_cpu(ulong addr)
{
__raw_writew(WDT_TCSR_PRESCALE4 | WDT_TCSR_EXT_EN, (u16 *)WDT_TCSR);
@@ -44,3 +57,18 @@ void __noreturn reset_cpu(ulong addr)
unreachable();
}
EXPORT_SYMBOL(reset_cpu);
+
+void __noreturn poweroff()
+{
+ u32 ctrl;
+
+ shutdown_barebox();
+
+ do {
+ ctrl = readl(RTC_RCR);
+ } while (!(ctrl & RTC_RCR_WRDY));
+
+ writel(RTC_HCR_PD, RTC_HCR);
+ jz4750d_halt();
+}
+EXPORT_SYMBOL(poweroff);
--
1.7.10
_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: add 'poweroff' support
2012-06-13 19:43 add 'poweroff' support Antony Pavlov
2012-06-13 19:43 ` [PATCH 1/2] add 'poweroff' command Antony Pavlov
2012-06-13 19:43 ` [PATCH 2/2] rzx50: add poweroff support Antony Pavlov
@ 2012-06-14 8:05 ` Sascha Hauer
2 siblings, 0 replies; 6+ messages in thread
From: Sascha Hauer @ 2012-06-14 8:05 UTC (permalink / raw)
To: Antony Pavlov; +Cc: barebox
On Wed, Jun 13, 2012 at 11:43:06PM +0400, Antony Pavlov wrote:
> This patch series adds the ability to turn power off on
> Ritmix RZX-50 game console.
>
> The Ritmix RZX-50 game console is a battery-powered device.
> So I you keep it running barebox it can to use up the battery
> in 14-16 hours. So it is very desirable to be able to turn
> power off from barebox.
>
> [PATCH 1/2] add 'poweroff' command
> [PATCH 2/2] rzx50: add poweroff support
Applied, thanks
Sascha
>
> _______________________________________________
> barebox mailing list
> barebox@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/barebox
>
--
Pengutronix e.K. | |
Industrial Linux Solutions | http://www.pengutronix.de/ |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 2/2] rzx50: add poweroff support
2012-06-13 19:43 ` [PATCH 2/2] rzx50: add poweroff support Antony Pavlov
@ 2012-06-25 7:32 ` Sascha Hauer
2012-06-25 7:35 ` Antony Pavlov
0 siblings, 1 reply; 6+ messages in thread
From: Sascha Hauer @ 2012-06-25 7:32 UTC (permalink / raw)
To: Antony Pavlov; +Cc: barebox
Hi Antony,
This patch introduces some new build warnings in rx50_defconfig. Could you fix these?
arch/mips/mach-xburst/reset-jz4750.c: In function 'poweroff':
arch/mips/mach-xburst/reset-jz4750.c:68: warning: passing argument 1 of '__raw_readl' makes pointer from integer without a cast
arch/mips/mach-xburst/reset-jz4750.c:71: warning: passing argument 2 of '__raw_writel' makes pointer from integer without a cast
arch/mips/mach-xburst/reset-jz4750.c:73: warning: 'noreturn' function does return
Thanks
Sascha
On Wed, Jun 13, 2012 at 11:43:08PM +0400, Antony Pavlov wrote:
> Signed-off-by: Antony Pavlov <antonynpavlov@gmail.com>
> ---
> arch/mips/mach-xburst/Kconfig | 1 +
> arch/mips/mach-xburst/include/mach/jz4750d_regs.h | 31 +++++++++++++++++++++
> arch/mips/mach-xburst/reset-jz4750.c | 28 +++++++++++++++++++
> 3 files changed, 60 insertions(+)
>
> diff --git a/arch/mips/mach-xburst/Kconfig b/arch/mips/mach-xburst/Kconfig
> index 60e411c..c72b741 100644
> --- a/arch/mips/mach-xburst/Kconfig
> +++ b/arch/mips/mach-xburst/Kconfig
> @@ -12,6 +12,7 @@ choice
>
> config BOARD_RZX50
> bool "Ritmix RZX-50"
> + select HAS_POWEROFF
> select CPU_JZ4755
>
> endchoice
> diff --git a/arch/mips/mach-xburst/include/mach/jz4750d_regs.h b/arch/mips/mach-xburst/include/mach/jz4750d_regs.h
> index 717493b..eafdd2f 100644
> --- a/arch/mips/mach-xburst/include/mach/jz4750d_regs.h
> +++ b/arch/mips/mach-xburst/include/mach/jz4750d_regs.h
> @@ -15,6 +15,7 @@
>
> #define TCU_BASE 0xb0002000
> #define WDT_BASE 0xb0002000
> +#define RTC_BASE 0xb0003000
> #define UART1_BASE 0xb0031000
>
> /*************************************************************************
> @@ -77,4 +78,34 @@
>
> #define WDT_TCER_TCEN (1 << 0)
>
> +/*************************************************************************
> + * RTC
> + *************************************************************************/
> +#define RTC_RCR (RTC_BASE + 0x00) /* RTC Control Register */
> +#define RTC_RSR (RTC_BASE + 0x04) /* RTC Second Register */
> +#define RTC_RSAR (RTC_BASE + 0x08) /* RTC Second Alarm Register */
> +#define RTC_RGR (RTC_BASE + 0x0c) /* RTC Regulator Register */
> +
> +#define RTC_HCR (RTC_BASE + 0x20) /* Hibernate Control Register */
> +#define RTC_HWFCR (RTC_BASE + 0x24) /* Hibernate Wakeup Filter Counter Reg */
> +#define RTC_HRCR (RTC_BASE + 0x28) /* Hibernate Reset Counter Register */
> +#define RTC_HWCR (RTC_BASE + 0x2c) /* Hibernate Wakeup Control Register */
> +#define RTC_HWRSR (RTC_BASE + 0x30) /* Hibernate Wakeup Status Register */
> +#define RTC_HSPR (RTC_BASE + 0x34) /* Hibernate Scratch Pattern Register */
> +
> +/* RTC Control Register */
> +#define RTC_RCR_WRDY_BIT 7
> +#define RTC_RCR_WRDY (1 << 7) /* Write Ready Flag */
> +#define RTC_RCR_1HZ_BIT 6
> +#define RTC_RCR_1HZ (1 << RTC_RCR_1HZ_BIT) /* 1Hz Flag */
> +#define RTC_RCR_1HZIE (1 << 5) /* 1Hz Interrupt Enable */
> +#define RTC_RCR_AF_BIT 4
> +#define RTC_RCR_AF (1 << RTC_RCR_AF_BIT) /* Alarm Flag */
> +#define RTC_RCR_AIE (1 << 3) /* Alarm Interrupt Enable */
> +#define RTC_RCR_AE (1 << 2) /* Alarm Enable */
> +#define RTC_RCR_RTCE (1 << 0) /* RTC Enable */
> +
> +/* Hibernate Control Register */
> +#define RTC_HCR_PD (1 << 0) /* Power Down */
> +
> #endif /* __JZ4750D_REGS_H__ */
> diff --git a/arch/mips/mach-xburst/reset-jz4750.c b/arch/mips/mach-xburst/reset-jz4750.c
> index 3540ca9..4bda56c 100644
> --- a/arch/mips/mach-xburst/reset-jz4750.c
> +++ b/arch/mips/mach-xburst/reset-jz4750.c
> @@ -29,6 +29,19 @@
>
> #define JZ_EXTAL 24000000
>
> +static void jz4750d_halt(void)
> +{
> + while (1) {
> + __asm__(".set push;\n"
> + ".set mips3;\n"
> + "wait;\n"
> + ".set pop;\n"
> + );
> + }
> +
> + unreachable();
> +}
> +
> void __noreturn reset_cpu(ulong addr)
> {
> __raw_writew(WDT_TCSR_PRESCALE4 | WDT_TCSR_EXT_EN, (u16 *)WDT_TCSR);
> @@ -44,3 +57,18 @@ void __noreturn reset_cpu(ulong addr)
> unreachable();
> }
> EXPORT_SYMBOL(reset_cpu);
> +
> +void __noreturn poweroff()
> +{
> + u32 ctrl;
> +
> + shutdown_barebox();
> +
> + do {
> + ctrl = readl(RTC_RCR);
> + } while (!(ctrl & RTC_RCR_WRDY));
> +
> + writel(RTC_HCR_PD, RTC_HCR);
> + jz4750d_halt();
> +}
> +EXPORT_SYMBOL(poweroff);
> --
> 1.7.10
>
>
> _______________________________________________
> barebox mailing list
> barebox@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/barebox
>
--
Pengutronix e.K. | |
Industrial Linux Solutions | http://www.pengutronix.de/ |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 2/2] rzx50: add poweroff support
2012-06-25 7:32 ` Sascha Hauer
@ 2012-06-25 7:35 ` Antony Pavlov
0 siblings, 0 replies; 6+ messages in thread
From: Antony Pavlov @ 2012-06-25 7:35 UTC (permalink / raw)
To: Sascha Hauer; +Cc: barebox
Ok, I'll fix it in a few hours.
On 25 June 2012 11:32, Sascha Hauer <s.hauer@pengutronix.de> wrote:
> Hi Antony,
>
> This patch introduces some new build warnings in rx50_defconfig. Could you fix these?
>
> arch/mips/mach-xburst/reset-jz4750.c: In function 'poweroff':
> arch/mips/mach-xburst/reset-jz4750.c:68: warning: passing argument 1 of '__raw_readl' makes pointer from integer without a cast
> arch/mips/mach-xburst/reset-jz4750.c:71: warning: passing argument 2 of '__raw_writel' makes pointer from integer without a cast
> arch/mips/mach-xburst/reset-jz4750.c:73: warning: 'noreturn' function does return
>
> Thanks
> Sascha
>
> On Wed, Jun 13, 2012 at 11:43:08PM +0400, Antony Pavlov wrote:
>> Signed-off-by: Antony Pavlov <antonynpavlov@gmail.com>
>> ---
>> arch/mips/mach-xburst/Kconfig | 1 +
>> arch/mips/mach-xburst/include/mach/jz4750d_regs.h | 31 +++++++++++++++++++++
>> arch/mips/mach-xburst/reset-jz4750.c | 28 +++++++++++++++++++
>> 3 files changed, 60 insertions(+)
>>
>> diff --git a/arch/mips/mach-xburst/Kconfig b/arch/mips/mach-xburst/Kconfig
>> index 60e411c..c72b741 100644
>> --- a/arch/mips/mach-xburst/Kconfig
>> +++ b/arch/mips/mach-xburst/Kconfig
>> @@ -12,6 +12,7 @@ choice
>>
>> config BOARD_RZX50
>> bool "Ritmix RZX-50"
>> + select HAS_POWEROFF
>> select CPU_JZ4755
>>
>> endchoice
>> diff --git a/arch/mips/mach-xburst/include/mach/jz4750d_regs.h b/arch/mips/mach-xburst/include/mach/jz4750d_regs.h
>> index 717493b..eafdd2f 100644
>> --- a/arch/mips/mach-xburst/include/mach/jz4750d_regs.h
>> +++ b/arch/mips/mach-xburst/include/mach/jz4750d_regs.h
>> @@ -15,6 +15,7 @@
>>
>> #define TCU_BASE 0xb0002000
>> #define WDT_BASE 0xb0002000
>> +#define RTC_BASE 0xb0003000
>> #define UART1_BASE 0xb0031000
>>
>> /*************************************************************************
>> @@ -77,4 +78,34 @@
>>
>> #define WDT_TCER_TCEN (1 << 0)
>>
>> +/*************************************************************************
>> + * RTC
>> + *************************************************************************/
>> +#define RTC_RCR (RTC_BASE + 0x00) /* RTC Control Register */
>> +#define RTC_RSR (RTC_BASE + 0x04) /* RTC Second Register */
>> +#define RTC_RSAR (RTC_BASE + 0x08) /* RTC Second Alarm Register */
>> +#define RTC_RGR (RTC_BASE + 0x0c) /* RTC Regulator Register */
>> +
>> +#define RTC_HCR (RTC_BASE + 0x20) /* Hibernate Control Register */
>> +#define RTC_HWFCR (RTC_BASE + 0x24) /* Hibernate Wakeup Filter Counter Reg */
>> +#define RTC_HRCR (RTC_BASE + 0x28) /* Hibernate Reset Counter Register */
>> +#define RTC_HWCR (RTC_BASE + 0x2c) /* Hibernate Wakeup Control Register */
>> +#define RTC_HWRSR (RTC_BASE + 0x30) /* Hibernate Wakeup Status Register */
>> +#define RTC_HSPR (RTC_BASE + 0x34) /* Hibernate Scratch Pattern Register */
>> +
>> +/* RTC Control Register */
>> +#define RTC_RCR_WRDY_BIT 7
>> +#define RTC_RCR_WRDY (1 << 7) /* Write Ready Flag */
>> +#define RTC_RCR_1HZ_BIT 6
>> +#define RTC_RCR_1HZ (1 << RTC_RCR_1HZ_BIT) /* 1Hz Flag */
>> +#define RTC_RCR_1HZIE (1 << 5) /* 1Hz Interrupt Enable */
>> +#define RTC_RCR_AF_BIT 4
>> +#define RTC_RCR_AF (1 << RTC_RCR_AF_BIT) /* Alarm Flag */
>> +#define RTC_RCR_AIE (1 << 3) /* Alarm Interrupt Enable */
>> +#define RTC_RCR_AE (1 << 2) /* Alarm Enable */
>> +#define RTC_RCR_RTCE (1 << 0) /* RTC Enable */
>> +
>> +/* Hibernate Control Register */
>> +#define RTC_HCR_PD (1 << 0) /* Power Down */
>> +
>> #endif /* __JZ4750D_REGS_H__ */
>> diff --git a/arch/mips/mach-xburst/reset-jz4750.c b/arch/mips/mach-xburst/reset-jz4750.c
>> index 3540ca9..4bda56c 100644
>> --- a/arch/mips/mach-xburst/reset-jz4750.c
>> +++ b/arch/mips/mach-xburst/reset-jz4750.c
>> @@ -29,6 +29,19 @@
>>
>> #define JZ_EXTAL 24000000
>>
>> +static void jz4750d_halt(void)
>> +{
>> + while (1) {
>> + __asm__(".set push;\n"
>> + ".set mips3;\n"
>> + "wait;\n"
>> + ".set pop;\n"
>> + );
>> + }
>> +
>> + unreachable();
>> +}
>> +
>> void __noreturn reset_cpu(ulong addr)
>> {
>> __raw_writew(WDT_TCSR_PRESCALE4 | WDT_TCSR_EXT_EN, (u16 *)WDT_TCSR);
>> @@ -44,3 +57,18 @@ void __noreturn reset_cpu(ulong addr)
>> unreachable();
>> }
>> EXPORT_SYMBOL(reset_cpu);
>> +
>> +void __noreturn poweroff()
>> +{
>> + u32 ctrl;
>> +
>> + shutdown_barebox();
>> +
>> + do {
>> + ctrl = readl(RTC_RCR);
>> + } while (!(ctrl & RTC_RCR_WRDY));
>> +
>> + writel(RTC_HCR_PD, RTC_HCR);
>> + jz4750d_halt();
>> +}
>> +EXPORT_SYMBOL(poweroff);
>> --
>> 1.7.10
>>
>>
>> _______________________________________________
>> barebox mailing list
>> barebox@lists.infradead.org
>> http://lists.infradead.org/mailman/listinfo/barebox
>>
>
> --
> Pengutronix e.K. | |
> Industrial Linux Solutions | http://www.pengutronix.de/ |
> Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
> Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
--
Best regards,
Antony Pavlov
_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2012-06-25 7:35 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-06-13 19:43 add 'poweroff' support Antony Pavlov
2012-06-13 19:43 ` [PATCH 1/2] add 'poweroff' command Antony Pavlov
2012-06-13 19:43 ` [PATCH 2/2] rzx50: add poweroff support Antony Pavlov
2012-06-25 7:32 ` Sascha Hauer
2012-06-25 7:35 ` Antony Pavlov
2012-06-14 8:05 ` add 'poweroff' support Sascha Hauer
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox