Loading drivers/usb/phy/phy-qcom-snps-28nm-hs.c +14 −1 Original line number Diff line number Diff line Loading @@ -373,8 +373,20 @@ static void msm_snps_hsphy_enable_hv_interrupts(struct msm_snps_hsphy *phy) usleep_range(200, 220); writeb_relaxed(0x01, USB2_PHY_USB_PHY_IRQ_CMD); /* Make sure the interrupts are cleared */ usleep_range(200, 220); val = readl_relaxed(USB2_PHY_USB_PHY_INTERRUPT_MASK0); val |= USB2_PHY_USB_PHY_DPDM_0_1_MASK; if (phy->phy.flags & PHY_HSFS_MODE) { val |= USB2_PHY_USB_PHY_DP_1_0_MASK | USB2_PHY_USB_PHY_DM_0_1_MASK; } else if (phy->phy.flags & PHY_LS_MODE) { val |= USB2_PHY_USB_PHY_DP_0_1_MASK | USB2_PHY_USB_PHY_DM_1_0_MASK; } else { val |= USB2_PHY_USB_PHY_DP_0_1_MASK | USB2_PHY_USB_PHY_DM_0_1_MASK; } writeb_relaxed(val, USB2_PHY_USB_PHY_INTERRUPT_MASK0); } Loading @@ -395,6 +407,7 @@ static void msm_snps_hsphy_disable_hv_interrupts(struct msm_snps_hsphy *phy) writeb_relaxed(0x00, USB2_PHY_USB_PHY_IRQ_CMD); usleep_range(200, 220); writeb_relaxed(0x01, USB2_PHY_USB_PHY_IRQ_CMD); usleep_range(200, 220); } static int msm_snps_hsphy_set_suspend(struct usb_phy *uphy, int suspend) Loading include/linux/usb/msm_hsusb_hw.h +4 −1 Original line number Diff line number Diff line Loading @@ -95,7 +95,10 @@ #define USB2_PHY_USB_PHY_INTERRUPT_CLEAR1 (MSM_USB_PHY_CSR_BASE + 0x0E0) #define USB2_PHY_USB_PHY_INTERRUPT_MASK0 (MSM_USB_PHY_CSR_BASE + 0x0D4) #define USB2_PHY_USB_PHY_DPDM_0_1_MASK 0x0A #define USB2_PHY_USB_PHY_DP_1_0_MASK BIT(4) #define USB2_PHY_USB_PHY_DP_0_1_MASK BIT(3) #define USB2_PHY_USB_PHY_DM_1_0_MASK BIT(2) #define USB2_PHY_USB_PHY_DM_0_1_MASK BIT(1) #define USB2_PHY_USB_PHY_INTERRUPT_MASK1 (MSM_USB_PHY_CSR_BASE + 0x0D8) Loading Loading
drivers/usb/phy/phy-qcom-snps-28nm-hs.c +14 −1 Original line number Diff line number Diff line Loading @@ -373,8 +373,20 @@ static void msm_snps_hsphy_enable_hv_interrupts(struct msm_snps_hsphy *phy) usleep_range(200, 220); writeb_relaxed(0x01, USB2_PHY_USB_PHY_IRQ_CMD); /* Make sure the interrupts are cleared */ usleep_range(200, 220); val = readl_relaxed(USB2_PHY_USB_PHY_INTERRUPT_MASK0); val |= USB2_PHY_USB_PHY_DPDM_0_1_MASK; if (phy->phy.flags & PHY_HSFS_MODE) { val |= USB2_PHY_USB_PHY_DP_1_0_MASK | USB2_PHY_USB_PHY_DM_0_1_MASK; } else if (phy->phy.flags & PHY_LS_MODE) { val |= USB2_PHY_USB_PHY_DP_0_1_MASK | USB2_PHY_USB_PHY_DM_1_0_MASK; } else { val |= USB2_PHY_USB_PHY_DP_0_1_MASK | USB2_PHY_USB_PHY_DM_0_1_MASK; } writeb_relaxed(val, USB2_PHY_USB_PHY_INTERRUPT_MASK0); } Loading @@ -395,6 +407,7 @@ static void msm_snps_hsphy_disable_hv_interrupts(struct msm_snps_hsphy *phy) writeb_relaxed(0x00, USB2_PHY_USB_PHY_IRQ_CMD); usleep_range(200, 220); writeb_relaxed(0x01, USB2_PHY_USB_PHY_IRQ_CMD); usleep_range(200, 220); } static int msm_snps_hsphy_set_suspend(struct usb_phy *uphy, int suspend) Loading
include/linux/usb/msm_hsusb_hw.h +4 −1 Original line number Diff line number Diff line Loading @@ -95,7 +95,10 @@ #define USB2_PHY_USB_PHY_INTERRUPT_CLEAR1 (MSM_USB_PHY_CSR_BASE + 0x0E0) #define USB2_PHY_USB_PHY_INTERRUPT_MASK0 (MSM_USB_PHY_CSR_BASE + 0x0D4) #define USB2_PHY_USB_PHY_DPDM_0_1_MASK 0x0A #define USB2_PHY_USB_PHY_DP_1_0_MASK BIT(4) #define USB2_PHY_USB_PHY_DP_0_1_MASK BIT(3) #define USB2_PHY_USB_PHY_DM_1_0_MASK BIT(2) #define USB2_PHY_USB_PHY_DM_0_1_MASK BIT(1) #define USB2_PHY_USB_PHY_INTERRUPT_MASK1 (MSM_USB_PHY_CSR_BASE + 0x0D8) Loading