|
@@ -260,6 +260,10 @@ static void omap_st_on(struct omap_mcbsp *mcbsp)
|
|
if (mcbsp->pdata->enable_st_clock)
|
|
if (mcbsp->pdata->enable_st_clock)
|
|
mcbsp->pdata->enable_st_clock(mcbsp->id, 1);
|
|
mcbsp->pdata->enable_st_clock(mcbsp->id, 1);
|
|
|
|
|
|
|
|
+ /* Disable Sidetone clock auto-gating for normal operation */
|
|
|
|
+ w = MCBSP_ST_READ(mcbsp, SYSCONFIG);
|
|
|
|
+ MCBSP_ST_WRITE(mcbsp, SYSCONFIG, w & ~(ST_AUTOIDLE));
|
|
|
|
+
|
|
/* Enable McBSP Sidetone */
|
|
/* Enable McBSP Sidetone */
|
|
w = MCBSP_READ(mcbsp, SSELCR);
|
|
w = MCBSP_READ(mcbsp, SSELCR);
|
|
MCBSP_WRITE(mcbsp, SSELCR, w | SIDETONEEN);
|
|
MCBSP_WRITE(mcbsp, SSELCR, w | SIDETONEEN);
|
|
@@ -279,6 +283,10 @@ static void omap_st_off(struct omap_mcbsp *mcbsp)
|
|
w = MCBSP_READ(mcbsp, SSELCR);
|
|
w = MCBSP_READ(mcbsp, SSELCR);
|
|
MCBSP_WRITE(mcbsp, SSELCR, w & ~(SIDETONEEN));
|
|
MCBSP_WRITE(mcbsp, SSELCR, w & ~(SIDETONEEN));
|
|
|
|
|
|
|
|
+ /* Enable Sidetone clock auto-gating to reduce power consumption */
|
|
|
|
+ w = MCBSP_ST_READ(mcbsp, SYSCONFIG);
|
|
|
|
+ MCBSP_ST_WRITE(mcbsp, SYSCONFIG, w | ST_AUTOIDLE);
|
|
|
|
+
|
|
if (mcbsp->pdata->enable_st_clock)
|
|
if (mcbsp->pdata->enable_st_clock)
|
|
mcbsp->pdata->enable_st_clock(mcbsp->id, 0);
|
|
mcbsp->pdata->enable_st_clock(mcbsp->id, 0);
|
|
}
|
|
}
|