diff options
author | Paul Walmsley <paul@pwsan.com> | 2012-10-30 06:56:07 +0400 |
---|---|---|
committer | Paul Walmsley <paul@pwsan.com> | 2012-11-08 23:33:08 +0400 |
commit | 2f334a3896714b47e24cc4cd08eed11d1a7f0d8e (patch) | |
tree | b9698fae56bb2f5bdcadd35667ef59669d76cf7d /arch/arm/mach-omap2/omap4-common.c | |
parent | baa689b8b2e9a6ae1eb7aa49246276d838345a39 (diff) | |
download | linux-2f334a3896714b47e24cc4cd08eed11d1a7f0d8e.tar.xz |
ARM: OMAP2+: PRCM: create SoC-specific chip restart functions
Split omap_prcm_restart() from mach-omap2/prcm.c into SoC-specific
variants. These functions need to be able to save the reboot reason
into the scratchpad RAM. This implies a dependency on both the PRM
and SCM IP blocks, so they've been moved into their own file. This
will eventually call functions in the PRM and SCM drivers, once those
are created.
Vaibhav Hiremath <hvaibhav@ti.com> identified an unused prototype in
the first version of this patch - now removed. Tony Lindgren
<tony@atomide.com> noted a compile problem with some RMK Kconfigs;
resolved in this patch.
Signed-off-by: Paul Walmsley <paul@pwsan.com>
Cc: Vaibhav Hiremath <hvaibhav@ti.com>
Tested-by: Vaibhav Hiremath <hvaibhav@ti.com>
Cc: Tony Lindgren <tony@atomide.com>
Diffstat (limited to 'arch/arm/mach-omap2/omap4-common.c')
-rw-r--r-- | arch/arm/mach-omap2/omap4-common.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/arch/arm/mach-omap2/omap4-common.c b/arch/arm/mach-omap2/omap4-common.c index 6cd7e877c8e5..3b1398798b61 100644 --- a/arch/arm/mach-omap2/omap4-common.c +++ b/arch/arm/mach-omap2/omap4-common.c @@ -33,6 +33,7 @@ #include "common.h" #include "mmc.h" #include "hsmmc.h" +#include "prminst44xx.h" #include "omap4-sar-layout.h" #include "omap-secure.h" @@ -281,3 +282,19 @@ int __init omap4_twl6030_hsmmc_init(struct omap2_hsmmc_info *controllers) return 0; } #endif + +/** + * omap44xx_restart - trigger a software restart of the SoC + * @mode: the "reboot mode", see arch/arm/kernel/{setup,process}.c + * @cmd: passed from the userspace program rebooting the system (if provided) + * + * Resets the SoC. For @cmd, see the 'reboot' syscall in + * kernel/sys.c. No return value. + */ +void omap44xx_restart(char mode, const char *cmd) +{ + /* XXX Should save 'cmd' into scratchpad for use after reboot */ + omap4_prminst_global_warm_sw_reset(); /* never returns */ + while (1); +} + |