Loading drivers/usb/dwc3/dwc3-msm.c +8 −6 Original line number Diff line number Diff line Loading @@ -2482,12 +2482,14 @@ static void dwc3_msm_notify_event(struct dwc3 *dwc, break; case DWC3_CONTROLLER_NOTIFY_CLEAR_DB: dev_dbg(mdwc->dev, "DWC3_CONTROLLER_NOTIFY_CLEAR_DB\n"); if (mdwc->gsi_reg) { dwc3_msm_write_reg_field(mdwc->base, GSI_GENERAL_CFG_REG(mdwc->gsi_reg), BLOCK_GSI_WR_GO_MASK, true); dwc3_msm_write_reg_field(mdwc->base, GSI_GENERAL_CFG_REG(mdwc->gsi_reg), GSI_EN_MASK, 0); } break; default: dev_dbg(mdwc->dev, "unknown dwc3 event\n"); Loading drivers/usb/phy/phy-msm-snps-hs.c +27 −26 Original line number Diff line number Diff line Loading @@ -81,6 +81,8 @@ #define USB_HSPHY_1P8_VOL_MAX 1800000 /* uV */ #define USB_HSPHY_1P8_HPM_LOAD 19000 /* uA */ #define USB_HSPHY_VDD_HPM_LOAD 30000 /* uA */ struct msm_hsphy { struct usb_phy phy; void __iomem *base; Loading Loading @@ -146,23 +148,6 @@ static void msm_hsphy_enable_clocks(struct msm_hsphy *phy, bool on) } } static int msm_hsphy_config_vdd(struct msm_hsphy *phy, int high) { int min, ret; min = high ? 1 : 0; /* low or none? */ ret = regulator_set_voltage(phy->vdd, phy->vdd_levels[min], phy->vdd_levels[2]); if (ret) { dev_err(phy->phy.dev, "unable to set voltage for hsusb vdd\n"); return ret; } dev_dbg(phy->phy.dev, "%s: min_vol:%d max_vol:%d\n", __func__, phy->vdd_levels[min], phy->vdd_levels[2]); return ret; } static int msm_hsphy_enable_power(struct msm_hsphy *phy, bool on) { Loading @@ -179,13 +164,19 @@ static int msm_hsphy_enable_power(struct msm_hsphy *phy, bool on) if (!on) goto disable_vdda33; ret = msm_hsphy_config_vdd(phy, true); if (ret) { dev_err(phy->phy.dev, "Unable to config VDD:%d\n", ret); ret = regulator_set_load(phy->vdd, USB_HSPHY_VDD_HPM_LOAD); if (ret < 0) { dev_err(phy->phy.dev, "Unable to set HPM of vdd:%d\n", ret); goto err_vdd; } ret = regulator_set_voltage(phy->vdd, phy->vdd_levels[1], phy->vdd_levels[2]); if (ret) { dev_err(phy->phy.dev, "unable to set voltage for hsusb vdd\n"); goto put_vdd_lpm; } ret = regulator_enable(phy->vdd); if (ret) { dev_err(phy->phy.dev, "Unable to enable VDD\n"); Loading Loading @@ -272,14 +263,24 @@ static int msm_hsphy_enable_power(struct msm_hsphy *phy, bool on) disable_vdd: ret = regulator_disable(phy->vdd); if (ret) dev_err(phy->phy.dev, "Unable to disable vdd:%d\n", ret); dev_err(phy->phy.dev, "Unable to disable vdd:%d\n", ret); unconfig_vdd: ret = msm_hsphy_config_vdd(phy, false); ret = regulator_set_voltage(phy->vdd, phy->vdd_levels[0], phy->vdd_levels[2]); if (ret) dev_err(phy->phy.dev, "Unable unconfig VDD:%d\n", ret); dev_err(phy->phy.dev, "unable to set voltage for hsusb vdd\n"); put_vdd_lpm: ret = regulator_set_load(phy->vdd, 0); if (ret < 0) dev_err(phy->phy.dev, "Unable to set LPM of vdd\n"); /* Return from here based on power_enabled. If it is not set * then return -EINVAL since either set_voltage or * regulator_enable failed */ if (!phy->power_enabled) return -EINVAL; err_vdd: phy->power_enabled = false; dev_dbg(phy->phy.dev, "HSUSB PHY's regulators are turned OFF.\n"); Loading include/dt-bindings/phy/qcom,sm8150-qmp-usb3.h 0 → 100644 +1315 −0 File added.Preview size limit exceeded, changes collapsed. Show changes Loading
drivers/usb/dwc3/dwc3-msm.c +8 −6 Original line number Diff line number Diff line Loading @@ -2482,12 +2482,14 @@ static void dwc3_msm_notify_event(struct dwc3 *dwc, break; case DWC3_CONTROLLER_NOTIFY_CLEAR_DB: dev_dbg(mdwc->dev, "DWC3_CONTROLLER_NOTIFY_CLEAR_DB\n"); if (mdwc->gsi_reg) { dwc3_msm_write_reg_field(mdwc->base, GSI_GENERAL_CFG_REG(mdwc->gsi_reg), BLOCK_GSI_WR_GO_MASK, true); dwc3_msm_write_reg_field(mdwc->base, GSI_GENERAL_CFG_REG(mdwc->gsi_reg), GSI_EN_MASK, 0); } break; default: dev_dbg(mdwc->dev, "unknown dwc3 event\n"); Loading
drivers/usb/phy/phy-msm-snps-hs.c +27 −26 Original line number Diff line number Diff line Loading @@ -81,6 +81,8 @@ #define USB_HSPHY_1P8_VOL_MAX 1800000 /* uV */ #define USB_HSPHY_1P8_HPM_LOAD 19000 /* uA */ #define USB_HSPHY_VDD_HPM_LOAD 30000 /* uA */ struct msm_hsphy { struct usb_phy phy; void __iomem *base; Loading Loading @@ -146,23 +148,6 @@ static void msm_hsphy_enable_clocks(struct msm_hsphy *phy, bool on) } } static int msm_hsphy_config_vdd(struct msm_hsphy *phy, int high) { int min, ret; min = high ? 1 : 0; /* low or none? */ ret = regulator_set_voltage(phy->vdd, phy->vdd_levels[min], phy->vdd_levels[2]); if (ret) { dev_err(phy->phy.dev, "unable to set voltage for hsusb vdd\n"); return ret; } dev_dbg(phy->phy.dev, "%s: min_vol:%d max_vol:%d\n", __func__, phy->vdd_levels[min], phy->vdd_levels[2]); return ret; } static int msm_hsphy_enable_power(struct msm_hsphy *phy, bool on) { Loading @@ -179,13 +164,19 @@ static int msm_hsphy_enable_power(struct msm_hsphy *phy, bool on) if (!on) goto disable_vdda33; ret = msm_hsphy_config_vdd(phy, true); if (ret) { dev_err(phy->phy.dev, "Unable to config VDD:%d\n", ret); ret = regulator_set_load(phy->vdd, USB_HSPHY_VDD_HPM_LOAD); if (ret < 0) { dev_err(phy->phy.dev, "Unable to set HPM of vdd:%d\n", ret); goto err_vdd; } ret = regulator_set_voltage(phy->vdd, phy->vdd_levels[1], phy->vdd_levels[2]); if (ret) { dev_err(phy->phy.dev, "unable to set voltage for hsusb vdd\n"); goto put_vdd_lpm; } ret = regulator_enable(phy->vdd); if (ret) { dev_err(phy->phy.dev, "Unable to enable VDD\n"); Loading Loading @@ -272,14 +263,24 @@ static int msm_hsphy_enable_power(struct msm_hsphy *phy, bool on) disable_vdd: ret = regulator_disable(phy->vdd); if (ret) dev_err(phy->phy.dev, "Unable to disable vdd:%d\n", ret); dev_err(phy->phy.dev, "Unable to disable vdd:%d\n", ret); unconfig_vdd: ret = msm_hsphy_config_vdd(phy, false); ret = regulator_set_voltage(phy->vdd, phy->vdd_levels[0], phy->vdd_levels[2]); if (ret) dev_err(phy->phy.dev, "Unable unconfig VDD:%d\n", ret); dev_err(phy->phy.dev, "unable to set voltage for hsusb vdd\n"); put_vdd_lpm: ret = regulator_set_load(phy->vdd, 0); if (ret < 0) dev_err(phy->phy.dev, "Unable to set LPM of vdd\n"); /* Return from here based on power_enabled. If it is not set * then return -EINVAL since either set_voltage or * regulator_enable failed */ if (!phy->power_enabled) return -EINVAL; err_vdd: phy->power_enabled = false; dev_dbg(phy->phy.dev, "HSUSB PHY's regulators are turned OFF.\n"); Loading
include/dt-bindings/phy/qcom,sm8150-qmp-usb3.h 0 → 100644 +1315 −0 File added.Preview size limit exceeded, changes collapsed. Show changes