usb: musb: disable OTG AUTOIDLE only with omap3430
Omap3 MUSB AUTOIDLE functionality configured through OTG_SYSCONFIG register prevents the device from going into retention. This is a workaround (by Richard Woodruff/TI), as his comment : > A new MUSB bug which is a match to data below was identified very > recently (on hardware and in simulation). > This bug is in 3430 and not 3630. > As a priority test (and as new default) you should have engineers > disable autoidle for MUSB block. > This is the workaround which will show up in next errata. Signed-off-by: Niilo Minkkinen <ext-niilo.1.minkkinen@nokia.com> Signed-off-by: Richard Woodruff <r-woodruff2@ti.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
parent
a2bfb4a346
commit
9a4b5e36ce
|
@ -227,7 +227,12 @@ int __init musb_platform_init(struct musb *musb)
|
||||||
l &= ~AUTOIDLE; /* disable auto idle */
|
l &= ~AUTOIDLE; /* disable auto idle */
|
||||||
l &= ~NOIDLE; /* remove possible noidle */
|
l &= ~NOIDLE; /* remove possible noidle */
|
||||||
l |= SMARTIDLE; /* enable smart idle */
|
l |= SMARTIDLE; /* enable smart idle */
|
||||||
l |= AUTOIDLE; /* enable auto idle */
|
/*
|
||||||
|
* MUSB AUTOIDLE don't work in 3430.
|
||||||
|
* Workaround by Richard Woodruff/TI
|
||||||
|
*/
|
||||||
|
if (!cpu_is_omap3430())
|
||||||
|
l |= AUTOIDLE; /* enable auto idle */
|
||||||
omap_writel(l, OTG_SYSCONFIG);
|
omap_writel(l, OTG_SYSCONFIG);
|
||||||
|
|
||||||
l = omap_readl(OTG_INTERFSEL);
|
l = omap_readl(OTG_INTERFSEL);
|
||||||
|
|
Loading…
Reference in New Issue