summaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-davinci/include/mach/system.h
diff options
context:
space:
mode:
authorCyril Chemparathy <cyril@ti.com>2010-05-01 18:38:28 -0400
committerKevin Hilman <khilman@deeprootsystems.com>2010-05-06 15:02:09 -0700
commitc78a5bc2e77e8fc5be29cda5b28c9b9afd0f4b6d (patch)
treefc54260054d1b46d9f4e6f47c56952a82ee6b1e4 /arch/arm/mach-davinci/include/mach/system.h
parent5b3a05ca911688c53680f2b020a1512b9da29c89 (diff)
downloadlinux-c78a5bc2e77e8fc5be29cda5b28c9b9afd0f4b6d.tar.bz2
Davinci: watchdog reset separation across socs
The earlier watchdog reset mechanism had a couple of limitations. First, it embedded a reference to "davinci_wdt_device" inside common code. This forced all derived platforms (da8xx and tnetv107x) to define such a device. This also would have caused problems in including multiple socs in a single build due to symbol redefinition. With this patch, davinci_watchdog_reset() now takes the platform device as an argument. The davinci_soc_info struct has been extended to include a reset function and a watchdog platform_device. arch_reset() then uses these elements to reset the system in a SoC specific fashion. Signed-off-by: Cyril Chemparathy <cyril@ti.com> Tested-by: Sandeep Paulraj <s-paulraj@ti.com> Signed-off-by: Kevin Hilman <khilman@deeprootsystems.com>
Diffstat (limited to 'arch/arm/mach-davinci/include/mach/system.h')
-rw-r--r--arch/arm/mach-davinci/include/mach/system.h5
1 files changed, 3 insertions, 2 deletions
diff --git a/arch/arm/mach-davinci/include/mach/system.h b/arch/arm/mach-davinci/include/mach/system.h
index 5a7d7581b8ce..e65629c20769 100644
--- a/arch/arm/mach-davinci/include/mach/system.h
+++ b/arch/arm/mach-davinci/include/mach/system.h
@@ -11,7 +11,7 @@
#ifndef __ASM_ARCH_SYSTEM_H
#define __ASM_ARCH_SYSTEM_H
-extern void davinci_watchdog_reset(void);
+#include <mach/common.h>
static inline void arch_idle(void)
{
@@ -20,7 +20,8 @@ static inline void arch_idle(void)
static inline void arch_reset(char mode, const char *cmd)
{
- davinci_watchdog_reset();
+ if (davinci_soc_info.reset)
+ davinci_soc_info.reset(davinci_soc_info.reset_device);
}
#endif /* __ASM_ARCH_SYSTEM_H */