[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-Id: <20250418095114.271562-3-kever.yang@rock-chips.com>
Date: Fri, 18 Apr 2025 17:51:14 +0800
From: Kever Yang <kever.yang@...k-chips.com>
To: heiko@...ech.de
Cc: linux-rockchip@...ts.infradead.org,
David Wu <david.wu@...k-chips.com>,
Kever Yang <kever.yang@...k-chips.com>,
linux-arm-kernel@...ts.infradead.org,
Jonas Karlman <jonas@...boo.se>,
"Jan Petrous (OSS)" <jan.petrous@....nxp.com>,
netdev@...r.kernel.org,
Detlev Casanova <detlev.casanova@...labora.com>,
linux-stm32@...md-mailman.stormreply.com,
linux-kernel@...r.kernel.org,
"David S. Miller" <davem@...emloft.net>,
Jakub Kicinski <kuba@...nel.org>,
Andrew Lunn <andrew+netdev@...n.ch>,
Paolo Abeni <pabeni@...hat.com>,
"Russell King (Oracle)" <rmk+kernel@...linux.org.uk>,
Maxime Coquelin <mcoquelin.stm32@...il.com>,
Uwe Kleine-König <u.kleine-koenig@...libre.com>,
Alexandre Torgue <alexandre.torgue@...s.st.com>,
Eric Dumazet <edumazet@...gle.com>
Subject: [PATCH v3 3/3] ethernet: stmmac: dwmac-rk: Make the phy clock could be used for external phy
From: David Wu <david.wu@...k-chips.com>
Use the phy_clk to prepare_enable and unprepare_disable related phy clock.
Signed-off-by: David Wu <david.wu@...k-chips.com>
Signed-off-by: Kever Yang <kever.yang@...k-chips.com>
---
Changes in v3:
- Update the code logic for backwards compatible;
Changes in v2: None
drivers/net/ethernet/stmicro/stmmac/dwmac-rk.c | 15 ++++++++++-----
1 file changed, 10 insertions(+), 5 deletions(-)
diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac-rk.c b/drivers/net/ethernet/stmicro/stmmac/dwmac-rk.c
index 82174054644a..b237771f687a 100644
--- a/drivers/net/ethernet/stmicro/stmmac/dwmac-rk.c
+++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-rk.c
@@ -1784,12 +1784,17 @@ static int rk_gmac_clk_init(struct plat_stmmacenet_data *plat)
clk_set_rate(bsp_priv->clk_mac, 50000000);
}
- if (plat->phy_node && bsp_priv->integrated_phy) {
+ if (plat->phy_node) {
bsp_priv->clk_phy = of_clk_get(plat->phy_node, 0);
- ret = PTR_ERR_OR_ZERO(bsp_priv->clk_phy);
- if (ret)
- return dev_err_probe(dev, ret, "Cannot get PHY clock\n");
- clk_set_rate(bsp_priv->clk_phy, 50000000);
+ /* If it is not integrated_phy, clk_phy is optional */
+ if (bsp_priv->integrated_phy) {
+ if (IS_ERR(bsp_priv->clk_phy)) {
+ ret = PTR_ERR(bsp_priv->clk_phy);
+ dev_err(dev, "Cannot get PHY clock: %d\n", ret);
+ return -EINVAL;
+ }
+ clk_set_rate(bsp_priv->clk_phy, 50000000);
+ }
}
return 0;
--
2.25.1
Powered by blists - more mailing lists