mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-07-22 04:37:32 -04:00
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:
committed by
Jakub Kicinski
parent
d790b70643
commit
8a9f9bd2d0
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user