aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-omap2/omap_hwmod.c
diff options
context:
space:
mode:
authorPaul Walmsley <paul@pwsan.com>2009-12-08 18:34:14 -0500
committerpaul <paul@twilight.(none)>2009-12-11 19:00:43 -0500
commitb835d0142196466c5ff3695b90cff1e3ea635c8e (patch)
treee48bec55ff5805e8a438cf19784bc80d92f80ffd /arch/arm/mach-omap2/omap_hwmod.c
parent6f8b7ff5b01e16a65c3b17865ce047faeca40907 (diff)
OMAP3 hwmod: reprogram OCP_SYSCONFIG register after setting SOFTRESET
Reprogram the module's OCP_SYSCONFIG register after module reset (SOFTRESET = 1). This may not be needed, but the definition of the reset performed by the SOFTRESET bit is unclear. Kevin Hilman <khilman@deeprootsystems.com> tested an earlier version of this patch. Signed-off-by: Paul Walmsley <paul@pwsan.com> Tested-by: Kevin Hilman <khilman@deeprootsystems.com>
Diffstat (limited to 'arch/arm/mach-omap2/omap_hwmod.c')
-rw-r--r--arch/arm/mach-omap2/omap_hwmod.c18
1 files changed, 13 insertions, 5 deletions
diff --git a/arch/arm/mach-omap2/omap_hwmod.c b/arch/arm/mach-omap2/omap_hwmod.c
index 7aaf5f1eea7a..65a8e0ae394f 100644
--- a/arch/arm/mach-omap2/omap_hwmod.c
+++ b/arch/arm/mach-omap2/omap_hwmod.c
@@ -945,11 +945,19 @@ static int _setup(struct omap_hwmod *oh)
945 945
946 _enable(oh); 946 _enable(oh);
947 947
948 if (!(oh->flags & HWMOD_INIT_NO_RESET)) 948 if (!(oh->flags & HWMOD_INIT_NO_RESET)) {
949 _reset(oh); 949 /*
950 950 * XXX Do the OCP_SYSCONFIG bits need to be
951 /* XXX OCP AUTOIDLE bit? */ 951 * reprogrammed after a reset? If not, then this can
952 /* XXX OCP ENAWAKEUP bit? */ 952 * be removed. If they do, then probably the
953 * _enable() function should be split to avoid the
954 * rewrite of the OCP_SYSCONFIG register.
955 */
956 if (oh->sysconfig) {
957 _update_sysc_cache(oh);
958 _sysc_enable(oh);
959 }
960 }
953 961
954 if (!(oh->flags & HWMOD_INIT_NO_IDLE)) 962 if (!(oh->flags & HWMOD_INIT_NO_IDLE))
955 _idle(oh); 963 _idle(oh);