diff options
Diffstat (limited to 'drivers/usb/gadget/omap_udc.c')
| -rw-r--r-- | drivers/usb/gadget/omap_udc.c | 25 | 
1 files changed, 20 insertions, 5 deletions
diff --git a/drivers/usb/gadget/omap_udc.c b/drivers/usb/gadget/omap_udc.c index a2db0e174f2..f81e4f025f2 100644 --- a/drivers/usb/gadget/omap_udc.c +++ b/drivers/usb/gadget/omap_udc.c @@ -52,9 +52,9 @@  #include <asm/unaligned.h>  #include <asm/mach-types.h> -#include <mach/dma.h> -#include <mach/usb.h> -#include <mach/control.h> +#include <plat/dma.h> +#include <plat/usb.h> +#include <plat/control.h>  #include "omap_udc.h" @@ -2098,6 +2098,7 @@ static inline int machine_without_vbus_sense(void)  		|| machine_is_omap_h4()  #endif  		|| machine_is_sx1() +		|| cpu_is_omap7xx() /* No known omap7xx boards with vbus sense */  		);  } @@ -2838,6 +2839,16 @@ static int __init omap_udc_probe(struct platform_device *pdev)  		udelay(100);  	} +	if (cpu_is_omap7xx()) { +		dc_clk = clk_get(&pdev->dev, "usb_dc_ck"); +		hhc_clk = clk_get(&pdev->dev, "l3_ocpi_ck"); +		BUG_ON(IS_ERR(dc_clk) || IS_ERR(hhc_clk)); +		/* can't use omap_udc_enable_clock yet */ +		clk_enable(dc_clk); +		clk_enable(hhc_clk); +		udelay(100); +	} +  	INFO("OMAP UDC rev %d.%d%s\n",  		omap_readw(UDC_REV) >> 4, omap_readw(UDC_REV) & 0xf,  		config->otg ? ", Mini-AB" : ""); @@ -2970,7 +2981,7 @@ known:  		goto cleanup3;  	}  #endif -	if (cpu_is_omap16xx()) { +	if (cpu_is_omap16xx() || cpu_is_omap7xx()) {  		udc->dc_clk = dc_clk;  		udc->hhc_clk = hhc_clk;  		clk_disable(hhc_clk); @@ -3008,7 +3019,7 @@ cleanup0:  	if (xceiv)  		otg_put_transceiver(xceiv); -	if (cpu_is_omap16xx() || cpu_is_omap24xx()) { +	if (cpu_is_omap16xx() || cpu_is_omap24xx() || cpu_is_omap7xx()) {  		clk_disable(hhc_clk);  		clk_disable(dc_clk);  		clk_put(hhc_clk); @@ -3115,6 +3126,10 @@ static struct platform_driver udc_driver = {  static int __init udc_init(void)  { +	/* Disable DMA for omap7xx -- it doesn't work right. */ +	if (cpu_is_omap7xx()) +		use_dma = 0; +  	INFO("%s, version: " DRIVER_VERSION  #ifdef	USE_ISO  		" (iso)"  |