diff options
| author | Stefan Wahren <wahrenst@gmx.net> | 2026-05-28 21:46:42 +0300 |
|---|---|---|
| committer | Jakub Kicinski <kuba@kernel.org> | 2026-06-02 21:38:00 +0300 |
| commit | 8a9f9bd2d070f55bc892e7cb6879ce25e6fe1d62 (patch) | |
| tree | 3a1d4143d31e22076d802bbe268750a0f880e577 | |
| parent | d790b7064387e5a38f6feec2cb386f1941332dc8 (diff) | |
| download | linux-8a9f9bd2d070f55bc892e7cb6879ce25e6fe1d62.tar.xz | |
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>
| -rw-r--r-- | drivers/net/phy/dp83822.c | 8 |
1 files changed, 8 insertions, 0 deletions
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 <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; |
