]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
usb: dwc3: turn off VBUS when leaving host mode
authorBin Liu <b-liu@ti.com>
Wed, 11 Dec 2019 16:10:03 +0000 (10:10 -0600)
committerBen Hutchings <ben@decadent.org.uk>
Fri, 22 May 2020 20:19:27 +0000 (21:19 +0100)
commit 09ed259fac621634d51cd986aa8d65f035662658 upstream.

VBUS should be turned off when leaving the host mode.
Set GCTL_PRTCAP to device mode in teardown to de-assert DRVVBUS pin to
turn off VBUS power.

Fixes: 5f94adfeed97 ("usb: dwc3: core: refactor mode initialization to its own function")
Signed-off-by: Bin Liu <b-liu@ti.com>
Signed-off-by: Felipe Balbi <balbi@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
drivers/usb/dwc3/core.c

index 52b30c5b000e3828d3ecf41aced3e38f165b6d3d..b489be926ebd9a9a42ba06c421c17d984d201392 100644 (file)
@@ -614,6 +614,9 @@ static void dwc3_core_exit_mode(struct dwc3 *dwc)
                /* do nothing */
                break;
        }
+
+       /* de-assert DRVVBUS for HOST and OTG mode */
+       dwc3_set_mode(dwc, DWC3_GCTL_PRTCAP_DEVICE);
 }
 
 #define DWC3_ALIGN_MASK                (16 - 1)