aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/plat-omap/include/plat/omap_hwmod.h
diff options
context:
space:
mode:
authorBenoit Cousson <b-cousson@ti.com>2010-09-21 12:57:58 -0400
committerPaul Walmsley <paul@pwsan.com>2010-09-21 17:28:30 -0400
commit96835af970e5d6aeedf868e53590a947be5e4a7a (patch)
tree5251098665c477c9ce6f7a0215ca04493140fa47 /arch/arm/plat-omap/include/plat/omap_hwmod.h
parent2cb068149c365f1c2b10f2ece6786139527dcc16 (diff)
OMAP: hwmod: Fix softreset for modules with optional clocks
Some modules (like GPIO, DSS...) require optionals clock to be enabled in order to complete the sofreset properly. Add a HWMOD_CONTROL_OPT_CLKS_IN_RESET flag to force all optional clocks to be enabled before reset. Disabled them once the reset is done. TODO: For the moment it is very hard to understand from the HW spec, which optional clock is needed and which one is not. So the current approach will enable all the optional clocks. Paul proposed a much finer approach that will allow to tag only the needed clock in the optional clock table. This might be doable as soon as we have a clear understanding of these dependencies. Reported-by: Partha Basak <p-basak2@ti.com> Signed-off-by: Benoit Cousson <b-cousson@ti.com> Signed-off-by: Paul Walmsley <paul@pwsan.com> Cc: Kevin Hilman <khilman@deeprootsystems.com>
Diffstat (limited to 'arch/arm/plat-omap/include/plat/omap_hwmod.h')
-rw-r--r--arch/arm/plat-omap/include/plat/omap_hwmod.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/arch/arm/plat-omap/include/plat/omap_hwmod.h b/arch/arm/plat-omap/include/plat/omap_hwmod.h
index faa08273b1e4..ee53758e1f49 100644
--- a/arch/arm/plat-omap/include/plat/omap_hwmod.h
+++ b/arch/arm/plat-omap/include/plat/omap_hwmod.h
@@ -369,6 +369,10 @@ struct omap_hwmod_omap4_prcm {
369 * HWMOD_SET_DEFAULT_CLOCKACT: program CLOCKACTIVITY bits at startup 369 * HWMOD_SET_DEFAULT_CLOCKACT: program CLOCKACTIVITY bits at startup
370 * HWMOD_NO_IDLEST : this module does not have idle status - this is the case 370 * HWMOD_NO_IDLEST : this module does not have idle status - this is the case
371 * only for few initiator modules on OMAP2 & 3. 371 * only for few initiator modules on OMAP2 & 3.
372 * HWMOD_CONTROL_OPT_CLKS_IN_RESET: Enable all optional clocks during reset.
373 * This is needed for devices like DSS that require optional clocks enabled
374 * in order to complete the reset. Optional clocks will be disabled
375 * again after the reset.
372 */ 376 */
373#define HWMOD_SWSUP_SIDLE (1 << 0) 377#define HWMOD_SWSUP_SIDLE (1 << 0)
374#define HWMOD_SWSUP_MSTANDBY (1 << 1) 378#define HWMOD_SWSUP_MSTANDBY (1 << 1)
@@ -377,6 +381,7 @@ struct omap_hwmod_omap4_prcm {
377#define HWMOD_NO_OCP_AUTOIDLE (1 << 4) 381#define HWMOD_NO_OCP_AUTOIDLE (1 << 4)
378#define HWMOD_SET_DEFAULT_CLOCKACT (1 << 5) 382#define HWMOD_SET_DEFAULT_CLOCKACT (1 << 5)
379#define HWMOD_NO_IDLEST (1 << 6) 383#define HWMOD_NO_IDLEST (1 << 6)
384#define HWMOD_CONTROL_OPT_CLKS_IN_RESET (1 << 7)
380 385
381/* 386/*
382 * omap_hwmod._int_flags definitions 387 * omap_hwmod._int_flags definitions