mirror of
https://github.com/torvalds/linux.git
synced 2026-07-27 09:36:22 +02:00
net: phy: at803x: add RX and TX clock management for IPQ5018 PHY
Acquire and enable the RX and TX clocks for the IPQ5018 PHY. These clocks are required for the PHY's datapath to function correctly. Signed-off-by: George Moussalem <george.moussalem@outlook.com> Link: https://patch.msgid.link/20260608-ipq5018-gephy-clocks-v4-4-fb2ccd56894b@outlook.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
fea4ae4b5b
commit
cf6077e490
|
|
@ -19,6 +19,7 @@
|
|||
#include <linux/regulator/consumer.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/phylink.h>
|
||||
#include <linux/clk.h>
|
||||
#include <linux/reset.h>
|
||||
#include <linux/phy_port.h>
|
||||
#include <dt-bindings/net/qca-ar803x.h>
|
||||
|
|
@ -1074,6 +1075,7 @@ static void ipq5018_link_change_notify(struct phy_device *phydev)
|
|||
static int ipq5018_probe(struct phy_device *phydev)
|
||||
{
|
||||
struct device *dev = &phydev->mdio.dev;
|
||||
struct clk *rx_clk, *tx_clk;
|
||||
struct ipq5018_priv *priv;
|
||||
int ret;
|
||||
|
||||
|
|
@ -1084,6 +1086,16 @@ static int ipq5018_probe(struct phy_device *phydev)
|
|||
priv->set_short_cable_dac = of_property_read_bool(dev->of_node,
|
||||
"qcom,dac-preset-short-cable");
|
||||
|
||||
rx_clk = devm_clk_get_enabled(dev, "rx");
|
||||
if (IS_ERR(rx_clk))
|
||||
return dev_err_probe(dev, PTR_ERR(rx_clk),
|
||||
"failed to get and enable RX clock\n");
|
||||
|
||||
tx_clk = devm_clk_get_enabled(dev, "tx");
|
||||
if (IS_ERR(tx_clk))
|
||||
return dev_err_probe(dev, PTR_ERR(tx_clk),
|
||||
"failed to get and enable TX clock\n");
|
||||
|
||||
priv->rst = devm_reset_control_array_get_exclusive(dev);
|
||||
if (IS_ERR(priv->rst))
|
||||
return dev_err_probe(dev, PTR_ERR(priv->rst),
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user