Loading arch/arm/boot/dts/qcom/mdmcalifornium-usb.dtsi +5 −3 Original line number Diff line number Diff line Loading @@ -22,13 +22,15 @@ ranges; interrupt-parent = <&usb3>; interrupts = <0 1 2>; interrupts = <0 1 2 3>; #interrupt-cells = <1>; interrupt-map-mask = <0x0 0xffffffff>; interrupt-map = <0x0 0 &intc 0 202 0 0x0 1 &intc 0 203 0 0x0 2 &intc 0 180 0>; interrupt-names = "hs_phy_irq", "ss_phy_irq", "pwr_event_irq"; 0x0 2 &intc 0 180 0 0x0 3 &spmi_bus 0x0 0x0 0xc4 0x0>; interrupt-names = "hs_phy_irq", "ss_phy_irq", "pwr_event_irq", "pmic_id_irq"; USB3_GDSC-supply = <&gdsc_usb30>; vdda33-supply = <&pmdcalifornium_l10>; vdda18-supply = <&pmdcalifornium_l5>; Loading drivers/usb/dwc3/dwc3-msm.c +4 −0 Original line number Diff line number Diff line Loading @@ -1951,6 +1951,9 @@ static int dwc3_msm_suspend(struct dwc3_msm *mdwc) /* Suspend SS PHY */ if (can_suspend_ssphy) { /* indicate phy about SS mode */ if (dwc3_msm_is_superspeed(mdwc)) mdwc->ss_phy->flags |= DEVICE_IN_SS_MODE; usb_phy_set_suspend(mdwc->ss_phy, 1); mdwc->lpm_flags |= MDWC3_SS_PHY_SUSPEND; } Loading Loading @@ -2063,6 +2066,7 @@ static int dwc3_msm_resume(struct dwc3_msm *mdwc) /* Resume SS PHY */ if (mdwc->lpm_flags & MDWC3_SS_PHY_SUSPEND) { usb_phy_set_suspend(mdwc->ss_phy, 0); mdwc->ss_phy->flags &= ~DEVICE_IN_SS_MODE; mdwc->lpm_flags &= ~MDWC3_SS_PHY_SUSPEND; } Loading drivers/usb/phy/phy-msm-ssusb-qmp.c +8 −6 Original line number Diff line number Diff line Loading @@ -401,12 +401,14 @@ static void msm_ssusb_qmp_enable_autonomous(struct msm_ssphy_qmp *phy, if (enable) { msm_ssusb_qmp_clr_lfps_rxterm_int(phy); if (phy->phy.flags & DEVICE_IN_SS_MODE) { val = readb_relaxed(phy->base + autonomous_mode_offset); val |= ARCVR_DTCT_EN; val |= ALFPS_DTCT_EN; val &= ~ARCVR_DTCT_EVENT_SEL; writeb_relaxed(val, phy->base + autonomous_mode_offset); } /* clamp phy level shifter to perform autonomous detection */ writel_relaxed(0x1, phy->vls_clamp_reg); Loading include/linux/usb/msm_hsusb.h +1 −0 Original line number Diff line number Diff line Loading @@ -320,6 +320,7 @@ struct msm_otg_platform_data { #define PHY_HOST_MODE BIT(2) #define PHY_CHARGER_CONNECTED BIT(3) #define PHY_VBUS_VALID_OVERRIDE BIT(4) #define DEVICE_IN_SS_MODE BIT(5) #define USB_NUM_BUS_CLOCKS 3 Loading Loading
arch/arm/boot/dts/qcom/mdmcalifornium-usb.dtsi +5 −3 Original line number Diff line number Diff line Loading @@ -22,13 +22,15 @@ ranges; interrupt-parent = <&usb3>; interrupts = <0 1 2>; interrupts = <0 1 2 3>; #interrupt-cells = <1>; interrupt-map-mask = <0x0 0xffffffff>; interrupt-map = <0x0 0 &intc 0 202 0 0x0 1 &intc 0 203 0 0x0 2 &intc 0 180 0>; interrupt-names = "hs_phy_irq", "ss_phy_irq", "pwr_event_irq"; 0x0 2 &intc 0 180 0 0x0 3 &spmi_bus 0x0 0x0 0xc4 0x0>; interrupt-names = "hs_phy_irq", "ss_phy_irq", "pwr_event_irq", "pmic_id_irq"; USB3_GDSC-supply = <&gdsc_usb30>; vdda33-supply = <&pmdcalifornium_l10>; vdda18-supply = <&pmdcalifornium_l5>; Loading
drivers/usb/dwc3/dwc3-msm.c +4 −0 Original line number Diff line number Diff line Loading @@ -1951,6 +1951,9 @@ static int dwc3_msm_suspend(struct dwc3_msm *mdwc) /* Suspend SS PHY */ if (can_suspend_ssphy) { /* indicate phy about SS mode */ if (dwc3_msm_is_superspeed(mdwc)) mdwc->ss_phy->flags |= DEVICE_IN_SS_MODE; usb_phy_set_suspend(mdwc->ss_phy, 1); mdwc->lpm_flags |= MDWC3_SS_PHY_SUSPEND; } Loading Loading @@ -2063,6 +2066,7 @@ static int dwc3_msm_resume(struct dwc3_msm *mdwc) /* Resume SS PHY */ if (mdwc->lpm_flags & MDWC3_SS_PHY_SUSPEND) { usb_phy_set_suspend(mdwc->ss_phy, 0); mdwc->ss_phy->flags &= ~DEVICE_IN_SS_MODE; mdwc->lpm_flags &= ~MDWC3_SS_PHY_SUSPEND; } Loading
drivers/usb/phy/phy-msm-ssusb-qmp.c +8 −6 Original line number Diff line number Diff line Loading @@ -401,12 +401,14 @@ static void msm_ssusb_qmp_enable_autonomous(struct msm_ssphy_qmp *phy, if (enable) { msm_ssusb_qmp_clr_lfps_rxterm_int(phy); if (phy->phy.flags & DEVICE_IN_SS_MODE) { val = readb_relaxed(phy->base + autonomous_mode_offset); val |= ARCVR_DTCT_EN; val |= ALFPS_DTCT_EN; val &= ~ARCVR_DTCT_EVENT_SEL; writeb_relaxed(val, phy->base + autonomous_mode_offset); } /* clamp phy level shifter to perform autonomous detection */ writel_relaxed(0x1, phy->vls_clamp_reg); Loading
include/linux/usb/msm_hsusb.h +1 −0 Original line number Diff line number Diff line Loading @@ -320,6 +320,7 @@ struct msm_otg_platform_data { #define PHY_HOST_MODE BIT(2) #define PHY_CHARGER_CONNECTED BIT(3) #define PHY_VBUS_VALID_OVERRIDE BIT(4) #define DEVICE_IN_SS_MODE BIT(5) #define USB_NUM_BUS_CLOCKS 3 Loading