[PATCH net-next v3] net: phy: motorcomm: Enable optional clock for YT8531

From: Yanan He

Date: Tue Jul 14 2026 - 09:21:29 EST


Some boards feed the YT8531 PHY from an SoC-provided external
reference clock described by the common ethernet-phy "clocks" property.

Enable the optional PHY clock during probe so boards can model this
clock as a PHY input instead of keeping the clock alive from the MAC
driver.

This is needed on the Alientek DLRV1126, where the PHY reference clock
is provided by CLK_GMAC_ETHERNET_OUT.

Reviewed-by: Andrew Lunn <andrew@xxxxxxx>
Signed-off-by: Yanan He <grumpycat921013@xxxxxxxxx>
---
v3:
- Split the Motorcomm PHY change out of the Alientek DLRV1126 board
support series as requested by Andrew.
- Keep the clock modeled as an optional PHY input clock.

v2:
- Model CLK_GMAC_ETHERNET_OUT as a PHY clock instead of keeping it alive
from dwmac-rk.
---
drivers/net/phy/motorcomm.c | 7 +++++++
1 file changed, 7 insertions(+)

diff --git a/drivers/net/phy/motorcomm.c b/drivers/net/phy/motorcomm.c
index 5071605a1a11..3396a38cfc0f 100644
--- a/drivers/net/phy/motorcomm.c
+++ b/drivers/net/phy/motorcomm.c
@@ -6,6 +6,7 @@
* Author: Frank <Frank.Sae@xxxxxxxxxxxxxx>
*/

+#include <linux/clk.h>
#include <linux/etherdevice.h>
#include <linux/kernel.h>
#include <linux/module.h>
@@ -1180,9 +1181,15 @@ static int yt8521_probe(struct phy_device *phydev)
static int yt8531_probe(struct phy_device *phydev)
{
struct device *dev = &phydev->mdio.dev;
+ struct clk *clk;
u16 mask, val;
u32 freq;

+ clk = devm_clk_get_optional_enabled(dev, NULL);
+ if (IS_ERR(clk))
+ return dev_err_probe(dev, PTR_ERR(clk),
+ "failed to get and enable PHY clock\n");
+
if (device_property_read_u32(dev, "motorcomm,clk-out-frequency-hz", &freq))
freq = YTPHY_DTS_OUTPUT_CLK_DIS;


---
base-commit: f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e
change-id: 20260714-motorcomm-yt8531-clk-55f95c34fb49

Best regards,
--
Yanan He <grumpycat921013@xxxxxxxxx>