aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb/gadget/atmel_usba_udc.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/usb/gadget/atmel_usba_udc.c')
-rw-r--r--drivers/usb/gadget/atmel_usba_udc.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/usb/gadget/atmel_usba_udc.c b/drivers/usb/gadget/atmel_usba_udc.c
index 976822f50c70..f79bdfe4bed9 100644
--- a/drivers/usb/gadget/atmel_usba_udc.c
+++ b/drivers/usb/gadget/atmel_usba_udc.c
@@ -320,7 +320,7 @@ static inline void usba_cleanup_debugfs(struct usba_udc *udc)
320static int vbus_is_present(struct usba_udc *udc) 320static int vbus_is_present(struct usba_udc *udc)
321{ 321{
322 if (gpio_is_valid(udc->vbus_pin)) 322 if (gpio_is_valid(udc->vbus_pin))
323 return gpio_get_value(udc->vbus_pin); 323 return gpio_get_value(udc->vbus_pin) ^ udc->vbus_pin_inverted;
324 324
325 /* No Vbus detection: Assume always present */ 325 /* No Vbus detection: Assume always present */
326 return 1; 326 return 1;
@@ -1763,7 +1763,7 @@ static irqreturn_t usba_vbus_irq(int irq, void *devid)
1763 if (!udc->driver) 1763 if (!udc->driver)
1764 goto out; 1764 goto out;
1765 1765
1766 vbus = gpio_get_value(udc->vbus_pin); 1766 vbus = vbus_is_present(udc);
1767 if (vbus != udc->vbus_prev) { 1767 if (vbus != udc->vbus_prev) {
1768 if (vbus) { 1768 if (vbus) {
1769 toggle_bias(1); 1769 toggle_bias(1);
@@ -2000,6 +2000,7 @@ static int __init usba_udc_probe(struct platform_device *pdev)
2000 if (gpio_is_valid(pdata->vbus_pin)) { 2000 if (gpio_is_valid(pdata->vbus_pin)) {
2001 if (!gpio_request(pdata->vbus_pin, "atmel_usba_udc")) { 2001 if (!gpio_request(pdata->vbus_pin, "atmel_usba_udc")) {
2002 udc->vbus_pin = pdata->vbus_pin; 2002 udc->vbus_pin = pdata->vbus_pin;
2003 udc->vbus_pin_inverted = pdata->vbus_pin_inverted;
2003 2004
2004 ret = request_irq(gpio_to_irq(udc->vbus_pin), 2005 ret = request_irq(gpio_to_irq(udc->vbus_pin),
2005 usba_vbus_irq, 0, 2006 usba_vbus_irq, 0,