usb: dwc3: control redriver connect/disconnect

control redriver when start/stop host or device mode.

Change-Id: Id2e7af96a20b285292d0799b6ed04365611ba709
Signed-off-by: Linyu Yuan <linyyuan@codeaurora.org>
This commit is contained in:
Linyu Yuan 2020-11-29 11:02:29 +08:00 • committed by Gerrit - the friendly Code Review server
commit 44c53ef829

View file

@ -4755,6 +4755,7 @@ static int dwc3_otg_start_host(struct dwc3_msm *mdwc, int on)
pm_runtime_get_sync(mdwc->dev);
dbg_event(0xFF, "StrtHost gync",
atomic_read(&mdwc->dev->power.usage_count));
redriver_notify_connect(mdwc->ss_redriver_node);
if (dwc->maximum_speed >= USB_SPEED_SUPER) {
mdwc->ss_phy->flags |= PHY_HOST_MODE;
usb_phy_notify_connect(mdwc->ss_phy,
@ -4851,6 +4852,7 @@ static int dwc3_otg_start_host(struct dwc3_msm *mdwc, int on)
USB_SPEED_SUPER);
mdwc->ss_phy->flags &= ~PHY_HOST_MODE;
}
redriver_notify_disconnect(mdwc->ss_redriver_node);
mdwc->hs_phy->flags &= ~PHY_HOST_MODE;
dwc3_host_exit(dwc);
@ -4909,6 +4911,7 @@ static int dwc3_otg_start_peripheral(struct dwc3_msm *mdwc, int on)
__func__, dwc->gadget.name);
dwc3_override_vbus_status(mdwc, true);
redriver_notify_connect(mdwc->ss_redriver_node);
usb_phy_notify_connect(mdwc->hs_phy, USB_SPEED_HIGH);
usb_phy_notify_connect(mdwc->ss_phy, USB_SPEED_SUPER);
@ -4954,6 +4957,7 @@ static int dwc3_otg_start_peripheral(struct dwc3_msm *mdwc, int on)
usb_gadget_vbus_disconnect(&dwc->gadget);
usb_phy_notify_disconnect(mdwc->hs_phy, USB_SPEED_HIGH);
usb_phy_notify_disconnect(mdwc->ss_phy, USB_SPEED_SUPER);
redriver_notify_disconnect(mdwc->ss_redriver_node);
dwc3_override_vbus_status(mdwc, false);
dwc3_msm_write_reg_field(mdwc->base, DWC3_GUSB3PIPECTL(0),
DWC3_GUSB3PIPECTL_SUSPHY, 0);