diff options
Diffstat (limited to 'arch/arm/mach-omap2/usb-musb.c')
| -rw-r--r-- | arch/arm/mach-omap2/usb-musb.c | 21 | 
1 files changed, 20 insertions, 1 deletions
diff --git a/arch/arm/mach-omap2/usb-musb.c b/arch/arm/mach-omap2/usb-musb.c index 34a56a136ef..d85296dc896 100644 --- a/arch/arm/mach-omap2/usb-musb.c +++ b/arch/arm/mach-omap2/usb-musb.c @@ -28,10 +28,20 @@  #include <mach/hardware.h>  #include <mach/irqs.h> -#include <mach/pm.h>  #include <mach/mux.h>  #include <mach/usb.h> +#define OTG_SYSCONFIG	(OMAP34XX_HSUSB_OTG_BASE + 0x404) + +static void __init usb_musb_pm_init(void) +{ +	/* Ensure force-idle mode for OTG controller */ +	if (cpu_is_omap34xx()) +		omap_writel(0, OTG_SYSCONFIG); +} + +#ifdef CONFIG_USB_MUSB_SOC +  static struct resource musb_resources[] = {  	[0] = { /* start and end set dynamically */  		.flags	= IORESOURCE_MEM, @@ -184,4 +194,13 @@ void __init usb_musb_init(void)  		printk(KERN_ERR "Unable to register HS-USB (MUSB) device\n");  		return;  	} + +	usb_musb_pm_init(); +} + +#else +void __init usb_musb_init(void) +{ +	usb_musb_pm_init();  } +#endif /* CONFIG_USB_MUSB_SOC */  |