mirror of
https://github.com/torvalds/linux.git
synced 2026-01-25 15:03:52 +08:00
net: stmmac: starfive: use generic stmmac_set_clk_tx_rate()
Use the generic stmmac_set_clk_tx_rate() to configure the MAC transmit clock. Reviewed-by: Thierry Reding <treding@nvidia.com> Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk> Reviewed-by: Andrew Lunn <andrew@lunn.ch> Link: https://patch.msgid.link/E1tna0V-0052sk-1L@rmk-PC.armlinux.org.uk Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
committed by
Jakub Kicinski
parent
17c24f6dc6
commit
c81eb3da0b
@@ -27,27 +27,9 @@ struct starfive_dwmac_data {
|
||||
|
||||
struct starfive_dwmac {
|
||||
struct device *dev;
|
||||
struct clk *clk_tx;
|
||||
const struct starfive_dwmac_data *data;
|
||||
};
|
||||
|
||||
static void starfive_dwmac_fix_mac_speed(void *priv, int speed, unsigned int mode)
|
||||
{
|
||||
struct starfive_dwmac *dwmac = priv;
|
||||
long rate;
|
||||
int err;
|
||||
|
||||
rate = rgmii_clock(speed);
|
||||
if (rate < 0) {
|
||||
dev_err(dwmac->dev, "invalid speed %d\n", speed);
|
||||
return;
|
||||
}
|
||||
|
||||
err = clk_set_rate(dwmac->clk_tx, rate);
|
||||
if (err)
|
||||
dev_err(dwmac->dev, "failed to set tx rate %lu\n", rate);
|
||||
}
|
||||
|
||||
static int starfive_dwmac_set_mode(struct plat_stmmacenet_data *plat_dat)
|
||||
{
|
||||
struct starfive_dwmac *dwmac = plat_dat->bsp_priv;
|
||||
@@ -122,9 +104,9 @@ static int starfive_dwmac_probe(struct platform_device *pdev)
|
||||
|
||||
dwmac->data = device_get_match_data(&pdev->dev);
|
||||
|
||||
dwmac->clk_tx = devm_clk_get_enabled(&pdev->dev, "tx");
|
||||
if (IS_ERR(dwmac->clk_tx))
|
||||
return dev_err_probe(&pdev->dev, PTR_ERR(dwmac->clk_tx),
|
||||
plat_dat->clk_tx_i = devm_clk_get_enabled(&pdev->dev, "tx");
|
||||
if (IS_ERR(plat_dat->clk_tx_i))
|
||||
return dev_err_probe(&pdev->dev, PTR_ERR(plat_dat->clk_tx_i),
|
||||
"error getting tx clock\n");
|
||||
|
||||
clk_gtx = devm_clk_get_enabled(&pdev->dev, "gtx");
|
||||
@@ -139,7 +121,7 @@ static int starfive_dwmac_probe(struct platform_device *pdev)
|
||||
* internally, because rgmii_rxin will be adaptively adjusted.
|
||||
*/
|
||||
if (!device_property_read_bool(&pdev->dev, "starfive,tx-use-rgmii-clk"))
|
||||
plat_dat->fix_mac_speed = starfive_dwmac_fix_mac_speed;
|
||||
plat_dat->set_clk_tx_rate = stmmac_set_clk_tx_rate;
|
||||
|
||||
dwmac->dev = &pdev->dev;
|
||||
plat_dat->bsp_priv = dwmac;
|
||||
|
||||
Reference in New Issue
Block a user