From: Stefan Wahren Date: Thu, 28 May 2026 18:46:42 +0000 (+0200) Subject: net: phy: dp83822: Add optional external PHY clock X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8a9f9bd2d070f55bc892e7cb6879ce25e6fe1d62;p=thirdparty%2Flinux.git net: phy: dp83822: Add optional external PHY clock In some cases, the PHY can use an external ref clock source instead of a crystal. Add an optional clock in the PHY node to make sure that the clock source is enabled, if specified, before probing. Signed-off-by: Stefan Wahren Reviewed-by: Andrew Lunn Link: https://patch.msgid.link/20260528184642.33424-3-wahrenst@gmx.net Signed-off-by: Jakub Kicinski --- diff --git a/drivers/net/phy/dp83822.c b/drivers/net/phy/dp83822.c index d8c5b5cd1bc0..6fc86be9d593 100644 --- a/drivers/net/phy/dp83822.c +++ b/drivers/net/phy/dp83822.c @@ -4,6 +4,7 @@ * Copyright (C) 2017 Texas Instruments Inc. */ +#include #include #include #include @@ -986,11 +987,18 @@ static int dp8382x_probe(struct phy_device *phydev) { struct device *dev = &phydev->mdio.dev; struct dp83822_private *dp83822; + struct clk *clk; dp83822 = devm_kzalloc(dev, sizeof(*dp83822), GFP_KERNEL); if (!dp83822) return -ENOMEM; + clk = devm_clk_get_optional_enabled(dev, NULL); + if (IS_ERR(clk)) { + return dev_err_probe(dev, PTR_ERR(clk), + "Failed to request ref clock\n"); + } + dp83822->tx_amplitude_100base_tx_index = -1; dp83822->mac_termination_index = -1; phydev->priv = dp83822;