net: ethernet: stmmac: Add support for syscfg clock
Add optional support for syscfg clock in dwmac-stm32.c Now Syscfg clock is activated automatically when syscfg registers are used Signed-off-by: Christophe Roullier <christophe.roullier@st.com> Reviewed-by: Andrew Lunn <andrew@lunn.ch> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
d408bef4bf
commit
caee317473
@ -155,18 +155,14 @@ static int stm32mp1_clk_prepare(struct stm32_dwmac *dwmac, bool prepare)
|
|||||||
ret = clk_prepare_enable(dwmac->syscfg_clk);
|
ret = clk_prepare_enable(dwmac->syscfg_clk);
|
||||||
if (ret)
|
if (ret)
|
||||||
return ret;
|
return ret;
|
||||||
|
ret = clk_prepare_enable(dwmac->clk_eth_ck);
|
||||||
if (dwmac->clk_eth_ck) {
|
if (ret) {
|
||||||
ret = clk_prepare_enable(dwmac->clk_eth_ck);
|
clk_disable_unprepare(dwmac->syscfg_clk);
|
||||||
if (ret) {
|
|
||||||
clk_disable_unprepare(dwmac->syscfg_clk);
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
clk_disable_unprepare(dwmac->syscfg_clk);
|
clk_disable_unprepare(dwmac->syscfg_clk);
|
||||||
if (dwmac->clk_eth_ck)
|
clk_disable_unprepare(dwmac->clk_eth_ck);
|
||||||
clk_disable_unprepare(dwmac->clk_eth_ck);
|
|
||||||
}
|
}
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
@ -320,12 +316,10 @@ static int stm32mp1_parse_data(struct stm32_dwmac *dwmac,
|
|||||||
return PTR_ERR(dwmac->clk_ethstp);
|
return PTR_ERR(dwmac->clk_ethstp);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Clock for sysconfig */
|
/* Optional Clock for sysconfig */
|
||||||
dwmac->syscfg_clk = devm_clk_get(dev, "syscfg-clk");
|
dwmac->syscfg_clk = devm_clk_get(dev, "syscfg-clk");
|
||||||
if (IS_ERR(dwmac->syscfg_clk)) {
|
if (IS_ERR(dwmac->syscfg_clk))
|
||||||
dev_err(dev, "No syscfg clock provided...\n");
|
dwmac->syscfg_clk = NULL;
|
||||||
return PTR_ERR(dwmac->syscfg_clk);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Get IRQ information early to have an ability to ask for deferred
|
/* Get IRQ information early to have an ability to ask for deferred
|
||||||
* probe if needed before we went too far with resource allocation.
|
* probe if needed before we went too far with resource allocation.
|
||||||
@ -437,8 +431,7 @@ static int stm32mp1_suspend(struct stm32_dwmac *dwmac)
|
|||||||
|
|
||||||
clk_disable_unprepare(dwmac->clk_tx);
|
clk_disable_unprepare(dwmac->clk_tx);
|
||||||
clk_disable_unprepare(dwmac->syscfg_clk);
|
clk_disable_unprepare(dwmac->syscfg_clk);
|
||||||
if (dwmac->clk_eth_ck)
|
clk_disable_unprepare(dwmac->clk_eth_ck);
|
||||||
clk_disable_unprepare(dwmac->clk_eth_ck);
|
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user