aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorEero Nurkkala <ext-eero.nurkkala@nokia.com>2009-08-20 09:18:17 -0400
committerMark Brown <broonie@opensource.wolfsonmicro.com>2009-08-20 15:10:27 -0400
commit2ba93f8fa77c0140de163e8a31bb9c09b5ded74c (patch)
tree08fa08e3161b87dff66e37241f52707f4ed493b9 /arch
parentd9a9b3f5f7d4736cfe6fae95b9d63b07faeb702e (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>
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/plat-omap/include/mach/mcbsp.h1
-rw-r--r--arch/arm/plat-omap/mcbsp.c6
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);