net:stmmac:dwc-qos: add support for external rmii_rtx clocks
[platform/kernel/linux-starfive.git] / drivers / net / ethernet / stmicro / stmmac / dwmac-starfive-plat.c
index c563582..bde2a61 100644 (file)
@@ -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;