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 <wahrenst@gmx.net>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Link: https://patch.msgid.link/20260528184642.33424-3-wahrenst@gmx.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
Stefan Wahren
2026-05-28 20:46:42 +02:00
committed by Jakub Kicinski
parent d790b70643
commit 8a9f9bd2d0

View File

@@ -4,6 +4,7 @@
* Copyright (C) 2017 Texas Instruments Inc.
*/
#include <linux/clk.h>
#include <linux/ethtool.h>
#include <linux/etherdevice.h>
#include <linux/kernel.h>
@@ -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;