
On 2023/8/3 03:04, Jonas Karlman wrote:
Add a phy_init ops in preparation for upcoming support of a RK3588 variant in the driver.
Signed-off-by: Jonas Karlman jonas@kwiboo.se
Reviewed-by: Kever Yang kever.yang@rock-chips.com
Thanks, - Kever
v2:
No change
.../phy/rockchip/phy-rockchip-snps-pcie3.c | 40 +++++++++++++++---- 1 file changed, 32 insertions(+), 8 deletions(-)
diff --git a/drivers/phy/rockchip/phy-rockchip-snps-pcie3.c b/drivers/phy/rockchip/phy-rockchip-snps-pcie3.c index 3053543a3329..b76b5386bef0 100644 --- a/drivers/phy/rockchip/phy-rockchip-snps-pcie3.c +++ b/drivers/phy/rockchip/phy-rockchip-snps-pcie3.c @@ -35,8 +35,32 @@ struct rockchip_p3phy_priv { struct clk_bulk clks; };
+struct rockchip_p3phy_ops {
- int (*phy_init)(struct phy *phy);
+};
+static int rockchip_p3phy_rk3568_init(struct phy *phy) +{
- struct rockchip_p3phy_priv *priv = dev_get_priv(phy->dev);
- /* Deassert PCIe PMA output clamp mode */
- regmap_write(priv->phy_grf, GRF_PCIE30PHY_CON9,
(0x1 << 15) | (0x1 << 31));
- reset_deassert(&priv->p30phy);
- udelay(1);
- return 0;
+}
+static const struct rockchip_p3phy_ops rk3568_ops = {
- .phy_init = rockchip_p3phy_rk3568_init,
+};
- static int rochchip_p3phy_init(struct phy *phy) {
- struct rockchip_p3phy_ops *ops =
struct rockchip_p3phy_priv *priv = dev_get_priv(phy->dev); int ret;(struct rockchip_p3phy_ops *)dev_get_driver_data(phy->dev);
@@ -47,14 +71,11 @@ static int rochchip_p3phy_init(struct phy *phy) reset_assert(&priv->p30phy); udelay(1);
- /* Deassert PCIe PMA output clamp mode */
- regmap_write(priv->phy_grf, GRF_PCIE30PHY_CON9,
(0x1 << 15) | (0x1 << 31));
- reset_deassert(&priv->p30phy);
- udelay(1);
- ret = ops->phy_init(phy);
- if (ret)
clk_disable_bulk(&priv->clks);
- return 0;
return ret; }
static int rochchip_p3phy_exit(struct phy *phy)
@@ -103,7 +124,10 @@ static struct phy_ops rochchip_p3phy_ops = { };
static const struct udevice_id rockchip_p3phy_of_match[] = {
- { .compatible = "rockchip,rk3568-pcie3-phy" },
- {
.compatible = "rockchip,rk3568-pcie3-phy",
.data = (ulong)&rk3568_ops,
- }, { }, };