diff options
author | Tomi Valkeinen <tomi.valkeinen@ti.com> | 2011-11-08 05:16:11 -0500 |
---|---|---|
committer | Paul Walmsley <paul@pwsan.com> | 2011-11-08 05:16:11 -0500 |
commit | 37ad085527860397438f27c81a2cb13272378458 (patch) | |
tree | 344a5c4252be8c4af3facfc089b36c7de71b206b /arch | |
parent | 4247878efca76143aa015ed1142652056052abb8 (diff) |
ARM: OMAP4: HWMOD: Add HWMOD_CONTROL_OPT_CLKS_IN_RESET for dss_core
DSS needs all DSS clocks to be enabled to be able to finish reset
properly. Before v3.1-rc1 the omapdss driver was managing clocks and
resets correctly. However, when omapdss started using runtime PM at
v3.1-rc1, the responsibility for the reset moved to HWMOD framework.
HWMOD framework does not currently enable all the DSS clocks when
resetting the DSS hardware. This causes the HWMOD frameworks boot-time
reset to fail, possibly leaving the DSS hardware in undefined state.
This patch sets HWMOD_CONTROL_OPT_CLKS_IN_RESET for dss_core. The flag
is actually not used on OMAP4, because dss_core hardware does not have
soft-reset functionality and thus the HWMOD framework never resets nor
waits for the reset to finish.
However, while the flag is not strictly needed currently, I think it
represents the HW correctly: all the DSS clocks should be enabled after
power-on to allow DSS hardware to finish its reset.
A custom reset function will be added in the following patches which
manages this correctly for OMAP4.
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Signed-off-by: Paul Walmsley <paul@pwsan.com>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/mach-omap2/omap_hwmod_44xx_data.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c index 3b9f2d9f1471..b82720abf210 100644 --- a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c +++ b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c | |||
@@ -1245,6 +1245,7 @@ static struct omap_hwmod_opt_clk dss_opt_clks[] = { | |||
1245 | 1245 | ||
1246 | static struct omap_hwmod omap44xx_dss_hwmod = { | 1246 | static struct omap_hwmod omap44xx_dss_hwmod = { |
1247 | .name = "dss_core", | 1247 | .name = "dss_core", |
1248 | .flags = HWMOD_CONTROL_OPT_CLKS_IN_RESET, | ||
1248 | .class = &omap44xx_dss_hwmod_class, | 1249 | .class = &omap44xx_dss_hwmod_class, |
1249 | .clkdm_name = "l3_dss_clkdm", | 1250 | .clkdm_name = "l3_dss_clkdm", |
1250 | .main_clk = "dss_dss_clk", | 1251 | .main_clk = "dss_dss_clk", |