summaryrefslogtreecommitdiff
path: root/drivers/usb/dwc3/debugfs.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/usb/dwc3/debugfs.c')
-rw-r--r--drivers/usb/dwc3/debugfs.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/drivers/usb/dwc3/debugfs.c b/drivers/usb/dwc3/debugfs.c
index 9ac37fe1b6a..0cc5a015451 100644
--- a/drivers/usb/dwc3/debugfs.c
+++ b/drivers/usb/dwc3/debugfs.c
@@ -27,6 +27,7 @@
#include <linux/uaccess.h>
#include <linux/usb/ch9.h>
+#include <linux/usb/drd.h>
#include "core.h"
#include "gadget.h"
@@ -412,7 +413,15 @@ static ssize_t dwc3_mode_write(struct file *file,
if (mode) {
spin_lock_irqsave(&dwc->lock, flags);
- dwc3_set_mode(dwc, mode);
+ if (mode & DWC3_GCTL_PRTCAP_HOST) {
+ dwc3_omap_usbvbus_id_handler(dwc->dev->parent,
+ OMAP_DWC3_ID_GROUND);
+ mode = 0;
+ } else if (mode & DWC3_GCTL_PRTCAP_DEVICE) {
+ dwc3_omap_usbvbus_id_handler(dwc->dev->parent,
+ OMAP_DWC3_VBUS_VALID);
+ mode = 1;
+ }
spin_unlock_irqrestore(&dwc->lock, flags);
}
return count;