* [PATCH net-next] net: stmmac: dwmac-rk: enable the reference clock for output mode
@ 2026-07-16 6:56 Jiaxing Hu
2026-07-16 7:30 ` Maxime Chevallier
0 siblings, 1 reply; 2+ messages in thread
From: Jiaxing Hu @ 2026-07-16 6:56 UTC (permalink / raw)
To: andrew+netdev, davem, edumazet, kuba, pabeni, heiko,
mcoquelin.stm32, alexandre.torgue
Cc: netdev, linux-rockchip, linux-arm-kernel, linux-stm32,
linux-kernel
rk_gmac_clk_init() only requests the refout clock group for RMII. The
ArmSoM CM5 has an on-module YT8531 RGMII PHY with no crystal that needs
the SoC 25 MHz reference (clk_mac_refout), so in RGMII the clock was
never enabled and the PHY did not respond on MDIO.
Request the group whenever the SoC drives the clock (clock_in_out =
"output"), not just for RMII. The clocks are optional, so other boards
are unaffected.
Signed-off-by: Jiaxing Hu <gahing@gahingwoo.com>
---
drivers/net/ethernet/stmicro/stmmac/dwmac-rk.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac-rk.c b/drivers/net/ethernet/stmicro/stmmac/dwmac-rk.c
index 8d7042e68..dd060e4b8 100644
--- a/drivers/net/ethernet/stmicro/stmmac/dwmac-rk.c
+++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-rk.c
@@ -1112,7 +1112,7 @@ static int rk_gmac_clk_init(struct plat_stmmacenet_data *plat)
bsp_priv->clk_enabled = false;
bsp_priv->num_clks = ARRAY_SIZE(rk_clocks);
- if (phy_iface == PHY_INTERFACE_MODE_RMII)
+ if (phy_iface == PHY_INTERFACE_MODE_RMII || !bsp_priv->clock_input)
bsp_priv->num_clks += ARRAY_SIZE(rk_rmii_clocks);
bsp_priv->clks = devm_kcalloc(dev, bsp_priv->num_clks,
@@ -1123,7 +1123,7 @@ static int rk_gmac_clk_init(struct plat_stmmacenet_data *plat)
for (i = 0; i < ARRAY_SIZE(rk_clocks); i++)
bsp_priv->clks[i].id = rk_clocks[i];
- if (phy_iface == PHY_INTERFACE_MODE_RMII) {
+ if (phy_iface == PHY_INTERFACE_MODE_RMII || !bsp_priv->clock_input) {
for (j = 0; j < ARRAY_SIZE(rk_rmii_clocks); j++)
bsp_priv->clks[i++].id = rk_rmii_clocks[j];
}
--
2.43.0
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH net-next] net: stmmac: dwmac-rk: enable the reference clock for output mode
2026-07-16 6:56 [PATCH net-next] net: stmmac: dwmac-rk: enable the reference clock for output mode Jiaxing Hu
@ 2026-07-16 7:30 ` Maxime Chevallier
0 siblings, 0 replies; 2+ messages in thread
From: Maxime Chevallier @ 2026-07-16 7:30 UTC (permalink / raw)
To: Jiaxing Hu, andrew+netdev, davem, edumazet, kuba, pabeni, heiko,
mcoquelin.stm32, alexandre.torgue
Cc: netdev, linux-rockchip, linux-arm-kernel, linux-stm32,
linux-kernel
Hi,
On 7/16/26 08:56, Jiaxing Hu wrote:
>
> rk_gmac_clk_init() only requests the refout clock group for RMII. The
> ArmSoM CM5 has an on-module YT8531 RGMII PHY with no crystal that needs
> the SoC 25 MHz reference (clk_mac_refout), so in RGMII the clock was
> never enabled and the PHY did not respond on MDIO.
>
> Request the group whenever the SoC drives the clock (clock_in_out =
> "output"), not just for RMII. The clocks are optional, so other boards
> are unaffected.
DT binding for rockchip-dwmac says :
clock_in_out:
description:
For RGMII, it must be "input", means main clock(125MHz)
is not sourced from SoC's PLL, but input from PHY.
For RMII, "input" means PHY provides the reference clock(50MHz),
"output" means GMAC provides the reference clock.
So the statement "For RGMII, it must be input [...]" is now incorrect :
- it can be output for RGMII
- it will be 25Hz if set to output, from what I get from the commit log.
Can you update it ?
Maxime
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2026-07-16 7:30 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-16 6:56 [PATCH net-next] net: stmmac: dwmac-rk: enable the reference clock for output mode Jiaxing Hu
2026-07-16 7:30 ` Maxime Chevallier
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox