diff options
Diffstat (limited to 'drivers/usb/musb/davinci.c')
| -rw-r--r-- | drivers/usb/musb/davinci.c | 20 | 
1 files changed, 4 insertions, 16 deletions
diff --git a/drivers/usb/musb/davinci.c b/drivers/usb/musb/davinci.c index 75baf181a8c..dfb3bcbe00f 100644 --- a/drivers/usb/musb/davinci.c +++ b/drivers/usb/musb/davinci.c @@ -30,6 +30,7 @@  #include <linux/delay.h>  #include <linux/clk.h>  #include <linux/io.h> +#include <linux/gpio.h>  #include <asm/arch/hardware.h>  #include <asm/arch/memory.h> @@ -39,7 +40,7 @@  #include "musb_core.h"  #ifdef CONFIG_MACH_DAVINCI_EVM -#include <asm/arch/i2c-client.h> +#define GPIO_nVBUS_DRV		87  #endif  #include "davinci.h" @@ -138,7 +139,6 @@ static int vbus_state = -1;  /* VBUS SWITCHING IS BOARD-SPECIFIC */  #ifdef CONFIG_MACH_DAVINCI_EVM -#ifndef CONFIG_MACH_DAVINCI_EVM_OTG  /* I2C operations are always synchronous, and require a task context.   * With unloaded systems, using the shared workqueue seems to suffice @@ -146,12 +146,11 @@ static int vbus_state = -1;   */  static void evm_deferred_drvvbus(struct work_struct *ignored)  { -	davinci_i2c_expander_op(0x3a, USB_DRVVBUS, vbus_state); +	gpio_set_value_cansleep(GPIO_nVBUS_DRV, vbus_state);  	vbus_state = !vbus_state;  }  static DECLARE_WORK(evm_vbus_work, evm_deferred_drvvbus); -#endif	/* modified board */  #endif	/* EVM */  static void davinci_source_power(struct musb *musb, int is_on, int immediate) @@ -165,21 +164,10 @@ static void davinci_source_power(struct musb *musb, int is_on, int immediate)  #ifdef CONFIG_MACH_DAVINCI_EVM  	if (machine_is_davinci_evm()) { -#ifdef CONFIG_MACH_DAVINCI_EVM_OTG -		/* modified EVM board switching VBUS with GPIO(6) not I2C -		 * NOTE:  PINMUX0.RGB888 (bit23) must be clear -		 */ -		if (is_on) -			gpio_set(GPIO(6)); -		else -			gpio_clear(GPIO(6)); -		immediate = 1; -#else  		if (immediate) -			davinci_i2c_expander_op(0x3a, USB_DRVVBUS, !is_on); +			gpio_set_value_cansleep(GPIO_nVBUS_DRV, vbus_state);  		else  			schedule_work(&evm_vbus_work); -#endif  	}  #endif  	if (immediate)  | 
