diff options
author | Eero Nurkkala <ext-eero.nurkkala@nokia.com> | 2009-08-20 09:18:17 -0400 |
---|---|---|
committer | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2009-08-20 15:10:27 -0400 |
commit | 2ba93f8fa77c0140de163e8a31bb9c09b5ded74c (patch) | |
tree | 08fa08e3161b87dff66e37241f52707f4ed493b9 | |
parent | d9a9b3f5f7d4736cfe6fae95b9d63b07faeb702e (diff) |
OMAP: McBSP: Retain McBSP FCLK clockactivity
FCLK may get autogated so that it prevents the McBSP
to work properly. It is the bit 9 that must be set
for maintaining the McBSP FCLK.
Signed-off-by: Eero Nurkkala <ext-eero.nurkkala@nokia.com>
Signed-off-by: Eduardo Valentin <eduardo.valentin@nokia.com>
Acked-by: Jarkko Nikula <jarkko.nikula@nokia.com>
Acked-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
-rw-r--r-- | arch/arm/plat-omap/include/mach/mcbsp.h | 1 | ||||
-rw-r--r-- | arch/arm/plat-omap/mcbsp.c | 6 |
2 files changed, 4 insertions, 3 deletions
diff --git a/arch/arm/plat-omap/include/mach/mcbsp.h b/arch/arm/plat-omap/include/mach/mcbsp.h index fe10ae8b027b..70e950e295e1 100644 --- a/arch/arm/plat-omap/include/mach/mcbsp.h +++ b/arch/arm/plat-omap/include/mach/mcbsp.h | |||
@@ -254,6 +254,7 @@ | |||
254 | #define RDISABLE 0x0001 | 254 | #define RDISABLE 0x0001 |
255 | 255 | ||
256 | /********************** McBSP SYSCONFIG bit definitions ********************/ | 256 | /********************** McBSP SYSCONFIG bit definitions ********************/ |
257 | #define CLOCKACTIVITY(value) ((value)<<8) | ||
257 | #define SIDLEMODE(value) ((value)<<3) | 258 | #define SIDLEMODE(value) ((value)<<3) |
258 | #define ENAWAKEUP 0x0004 | 259 | #define ENAWAKEUP 0x0004 |
259 | #define SOFTRST 0x0002 | 260 | #define SOFTRST 0x0002 |
diff --git a/arch/arm/plat-omap/mcbsp.c b/arch/arm/plat-omap/mcbsp.c index 86bfad88abdf..2c274e6f0de9 100644 --- a/arch/arm/plat-omap/mcbsp.c +++ b/arch/arm/plat-omap/mcbsp.c | |||
@@ -316,8 +316,8 @@ static inline void omap34xx_mcbsp_request(struct omap_mcbsp *mcbsp) | |||
316 | u16 syscon; | 316 | u16 syscon; |
317 | 317 | ||
318 | syscon = OMAP_MCBSP_READ(mcbsp->io_base, SYSCON); | 318 | syscon = OMAP_MCBSP_READ(mcbsp->io_base, SYSCON); |
319 | syscon &= ~(ENAWAKEUP | SIDLEMODE(0x03)); | 319 | syscon &= ~(ENAWAKEUP | SIDLEMODE(0x03) | CLOCKACTIVITY(0x03)); |
320 | syscon |= (ENAWAKEUP | SIDLEMODE(0x02)); | 320 | syscon |= (ENAWAKEUP | SIDLEMODE(0x02) | CLOCKACTIVITY(0x02)); |
321 | OMAP_MCBSP_WRITE(mcbsp->io_base, SYSCON, syscon); | 321 | OMAP_MCBSP_WRITE(mcbsp->io_base, SYSCON, syscon); |
322 | 322 | ||
323 | OMAP_MCBSP_WRITE(mcbsp->io_base, WAKEUPEN, XRDYEN | RRDYEN); | 323 | OMAP_MCBSP_WRITE(mcbsp->io_base, WAKEUPEN, XRDYEN | RRDYEN); |
@@ -333,7 +333,7 @@ static inline void omap34xx_mcbsp_free(struct omap_mcbsp *mcbsp) | |||
333 | u16 syscon; | 333 | u16 syscon; |
334 | 334 | ||
335 | syscon = OMAP_MCBSP_READ(mcbsp->io_base, SYSCON); | 335 | syscon = OMAP_MCBSP_READ(mcbsp->io_base, SYSCON); |
336 | syscon &= ~(ENAWAKEUP | SIDLEMODE(0x03)); | 336 | syscon &= ~(ENAWAKEUP | SIDLEMODE(0x03) | CLOCKACTIVITY(0x03)); |
337 | OMAP_MCBSP_WRITE(mcbsp->io_base, SYSCON, syscon); | 337 | OMAP_MCBSP_WRITE(mcbsp->io_base, SYSCON, syscon); |
338 | 338 | ||
339 | OMAP_MCBSP_WRITE(mcbsp->io_base, WAKEUPEN, 0); | 339 | OMAP_MCBSP_WRITE(mcbsp->io_base, WAKEUPEN, 0); |