Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 669a7f8d authored by Jack Pham's avatar Jack Pham
Browse files

usb: dwc3: Allow dwc_usb31 to operate in dual-role



According to the comment in dwc3_get_dr_mode() controller
revisions > 3.30a, including dwc_usb31, do not support OTG.
However, dual-role switching can still be supported with the
use of an extcon or usb_role_switch driver, so there is no
need to restrict the operation to host-only or peripheral-only.

Change-Id: I7dea9ff15f5ac15f673c4569ffe401981de04f22
Signed-off-by: default avatarJack Pham <jackp@codeaurora.org>
parent 06ae205d
Loading
Loading
Loading
Loading
+0 −9
Original line number Diff line number Diff line
@@ -84,15 +84,6 @@ static int dwc3_get_dr_mode(struct dwc3 *dwc)
			mode = USB_DR_MODE_HOST;
		else if (IS_ENABLED(CONFIG_USB_DWC3_GADGET))
			mode = USB_DR_MODE_PERIPHERAL;

		/*
		 * DWC_usb31 and DWC_usb3 v3.30a and higher do not support OTG
		 * mode. If the controller supports DRD but the dr_mode is not
		 * specified or set to OTG, then set the mode to peripheral.
		 */
		if (mode == USB_DR_MODE_OTG &&
		    dwc->revision >= DWC3_REVISION_330A)
			mode = USB_DR_MODE_PERIPHERAL;
	}

	if (mode != dwc->dr_mode) {