phy: for 5.7 -rc

*) Update MAINTAINER to include Vinod Koul as co-maintainer of PHY
 *) Fix Kconfig dependencies in seen with PHY_TEGRA_XUSB
 *) Re-add "qcom,sdm845-qusb2-phy" compatible in phy-qcom-qusb2.c to
    make it work with existing dtbs
 *) Move clock enable from ->poweron() to ->init() in Qualcomm
    usb-hs-28nm driver to initialize HW in ->init()
 
 Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
 -----BEGIN PGP SIGNATURE-----
 
 iQJCBAABCgAsFiEEUXMr/TfP2p4suIY5Dlx4XIBNgtkFAl6qy44OHGtpc2hvbkB0
 aS5jb20ACgkQDlx4XIBNgtna7Q//YK+AzMPUB/PQW+fNZpv7Ouel5FipxLAMKOWt
 F5/TvJUIK+0GMnKnDAs1LruO+yNkWGVtwHYInOoau5KlacGZm7zpGGkQOYZwVxT+
 WSwAEHwR9JL9BlzP43FbMoWEcBnwNlpCH/6g79fU/d0TcMHinPBkgEhHKrp1/Cyh
 2MwYrmsRmq7YnX0GQkFuFwWNXXp+awsCgtStQyA/2J8otDF4xHnKJfrsmFwfsesJ
 u2hpVzW9GTpMsT1CJeP03i37cU7g4uCBvHxtvInTtQ34Y0XZN2sLjtb1dk9UoBBH
 2jB3bBK16qPqID0em5q8iEFXLg5+8k8uE49C0ADxTSWtOCm/U/UpFl6peWlk7cTd
 yz0O439IMbrub1Hh22HlOOuESAWWrkmksQAq7DFvMkqwGSx/tCjmrQCAt+zs3glu
 lgif/cfVqj+KgngSQrEUkFt+btqtAMZzPWAKSHj17Ik3oevgnKr2Q0r5E4Tq7zMd
 3Y0q6DeVBovcfVA6ZXAGt4XkC9nKADwvg1exIpZ3kPiuTICzTvjAPaYAnfU+D2Fw
 gHjePhvUQtVNx0fyya5USeJCOc39gFSwePK/MrbQWKjLuBRHj2G6V45XfhEVuIhw
 wUCmTsDV0SUMWYPPrhU5n/fC6Ab+/UhHRiD6bYiSQMWK4Y/PPmofVp4NICvFlLiB
 5zFysgU=
 =uUy7
 -----END PGP SIGNATURE-----

Merge tag 'phy-for-5.7-rc' of git://git.kernel.org/pub/scm/linux/kernel/git/phy/linux-phy into char-misc-linus

phy: for 5.7 -rc

*) Update MAINTAINER to include Vinod Koul as co-maintainer of PHY
*) Fix Kconfig dependencies in seen with PHY_TEGRA_XUSB
*) Re-add "qcom,sdm845-qusb2-phy" compatible in phy-qcom-qusb2.c to
   make it work with existing dtbs
*) Move clock enable from ->poweron() to ->init() in Qualcomm
   usb-hs-28nm driver to initialize HW in ->init()

Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>

* tag 'phy-for-5.7-rc' of git://git.kernel.org/pub/scm/linux/kernel/git/phy/linux-phy:
  phy: qualcomm: usb-hs-28nm: Prepare clocks in init
  MAINTAINERS: Add Vinod Koul as Generic PHY co-maintainer
  phy: qcom-qusb2: Re add "qcom,sdm845-qusb2-phy" compat string
  phy: tegra: Select USB_COMMON for usb_get_maximum_speed()
This commit is contained in:
Greg Kroah-Hartman 2020-04-30 15:29:49 +02:00
commit 73faaa623f
3 changed files with 30 additions and 12 deletions

View file

@ -7119,9 +7119,10 @@ F: include/uapi/asm-generic/
GENERIC PHY FRAMEWORK
M: Kishon Vijay Abraham I <kishon@ti.com>
M: Vinod Koul <vkoul@kernel.org>
L: linux-kernel@vger.kernel.org
S: Supported
T: git git://git.kernel.org/pub/scm/linux/kernel/git/kishon/linux-phy.git
T: git git://git.kernel.org/pub/scm/linux/kernel/git/phy/linux-phy.git
F: Documentation/devicetree/bindings/phy/
F: drivers/phy/
F: include/linux/phy/

View file

@ -815,6 +815,13 @@ static const struct of_device_id qusb2_phy_of_match_table[] = {
}, {
.compatible = "qcom,msm8998-qusb2-phy",
.data = &msm8998_phy_cfg,
}, {
/*
* Deprecated. Only here to support legacy device
* trees that didn't include "qcom,qusb2-v2-phy"
*/
.compatible = "qcom,sdm845-qusb2-phy",
.data = &qusb2_v2_phy_cfg,
}, {
.compatible = "qcom,qusb2-v2-phy",
.data = &qusb2_v2_phy_cfg,

View file

@ -160,18 +160,11 @@ static int qcom_snps_hsphy_power_on(struct phy *phy)
ret = regulator_bulk_enable(VREG_NUM, priv->vregs);
if (ret)
return ret;
ret = clk_bulk_prepare_enable(priv->num_clks, priv->clks);
if (ret)
goto err_disable_regulator;
qcom_snps_hsphy_disable_hv_interrupts(priv);
qcom_snps_hsphy_exit_retention(priv);
return 0;
err_disable_regulator:
regulator_bulk_disable(VREG_NUM, priv->vregs);
return ret;
}
static int qcom_snps_hsphy_power_off(struct phy *phy)
@ -180,7 +173,6 @@ static int qcom_snps_hsphy_power_off(struct phy *phy)
qcom_snps_hsphy_enter_retention(priv);
qcom_snps_hsphy_enable_hv_interrupts(priv);
clk_bulk_disable_unprepare(priv->num_clks, priv->clks);
regulator_bulk_disable(VREG_NUM, priv->vregs);
return 0;
@ -266,21 +258,39 @@ static int qcom_snps_hsphy_init(struct phy *phy)
struct hsphy_priv *priv = phy_get_drvdata(phy);
int ret;
ret = qcom_snps_hsphy_reset(priv);
ret = clk_bulk_prepare_enable(priv->num_clks, priv->clks);
if (ret)
return ret;
ret = qcom_snps_hsphy_reset(priv);
if (ret)
goto disable_clocks;
qcom_snps_hsphy_init_sequence(priv);
ret = qcom_snps_hsphy_por_reset(priv);
if (ret)
return ret;
goto disable_clocks;
return 0;
disable_clocks:
clk_bulk_disable_unprepare(priv->num_clks, priv->clks);
return ret;
}
static int qcom_snps_hsphy_exit(struct phy *phy)
{
struct hsphy_priv *priv = phy_get_drvdata(phy);
clk_bulk_disable_unprepare(priv->num_clks, priv->clks);
return 0;
}
static const struct phy_ops qcom_snps_hsphy_ops = {
.init = qcom_snps_hsphy_init,
.exit = qcom_snps_hsphy_exit,
.power_on = qcom_snps_hsphy_power_on,
.power_off = qcom_snps_hsphy_power_off,
.set_mode = qcom_snps_hsphy_set_mode,