diff options
Diffstat (limited to 'drivers/net/ethernet/stmicro/stmmac/dwmac-starfive-plat.c')
-rw-r--r-- | drivers/net/ethernet/stmicro/stmmac/dwmac-starfive-plat.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac-starfive-plat.c b/drivers/net/ethernet/stmicro/stmmac/dwmac-starfive-plat.c index c5635829817f..bde2a61f0b71 100644 --- a/drivers/net/ethernet/stmicro/stmmac/dwmac-starfive-plat.c +++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-starfive-plat.c @@ -13,6 +13,7 @@ struct starfive_dwmac { struct clk *clk_tx; struct clk *clk_gtx; struct clk *clk_gtxc; + struct clk *clk_rmii_rtx; }; static void starfive_eth_fix_mac_speed(void *priv, unsigned int speed) @@ -39,6 +40,10 @@ static void starfive_eth_fix_mac_speed(void *priv, unsigned int speed) err = clk_set_rate(dwmac->clk_gtx, rate); if (err < 0) dev_err(dwmac->dev, "failed to set tx rate %lu\n", rate); + + err = clk_set_rate(dwmac->clk_rmii_rtx, rate); + if (err < 0) + dev_err(dwmac->dev, "failed to set rtx rate %lu\n", rate); } static const struct of_device_id starfive_eth_plat_match[] = { @@ -100,6 +105,12 @@ static int starfive_eth_plat_probe(struct platform_device *pdev) goto disable_gtx; } + dwmac->clk_rmii_rtx = devm_clk_get(&pdev->dev, "rmii_rtx"); + if (IS_ERR(dwmac->clk_rmii_rtx)) { + err = PTR_ERR(dwmac->clk_rmii_rtx); + goto disable_gtx; + } + err = clk_prepare_enable(dwmac->clk_gtxc); if (err < 0) goto disable_gtx; |