Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9a4b5e36 authored by Niilo Minkkinen's avatar Niilo Minkkinen Committed by Greg Kroah-Hartman
Browse files

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: default avatarNiilo Minkkinen <ext-niilo.1.minkkinen@nokia.com>
Signed-off-by: default avatarRichard Woodruff <r-woodruff2@ti.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent a2bfb4a3
Loading
Loading
Loading
Loading
+6 −1
Original line number Original line Diff line number Diff line
@@ -227,6 +227,11 @@ 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 */
	/*
	 * MUSB AUTOIDLE don't work in 3430.
	 * Workaround by Richard Woodruff/TI
	 */
	if (!cpu_is_omap3430())
		l |= AUTOIDLE;		/* enable auto idle */
		l |= AUTOIDLE;		/* enable auto idle */
	omap_writel(l, OTG_SYSCONFIG);
	omap_writel(l, OTG_SYSCONFIG);