net: ethernet: mtk_eth_soc: Always call mtk_gmac0_rgmii_adjust() for mt7623
Modify mtk_gmac0_rgmii_adjust() so it can always be called. mtk_gmac0_rgmii_adjust() sets-up the TRGMII clocks. Signed-off-by: René van Dorst <opensource@vdorst.com> Signed-off-By: David Woodhouse <dwmw2@infradead.org> Tested-by: Frank Wunderlich <frank-w@public-files.de> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Родитель
b5cd55b334
Коммит
19016d93bf
|
@ -171,11 +171,21 @@ static int mt7621_gmac0_rgmii_adjust(struct mtk_eth *eth,
|
|||
return 0;
|
||||
}
|
||||
|
||||
static void mtk_gmac0_rgmii_adjust(struct mtk_eth *eth, int speed)
|
||||
static void mtk_gmac0_rgmii_adjust(struct mtk_eth *eth,
|
||||
phy_interface_t interface, int speed)
|
||||
{
|
||||
u32 val;
|
||||
int ret;
|
||||
|
||||
if (interface == PHY_INTERFACE_MODE_TRGMII) {
|
||||
mtk_w32(eth, TRGMII_MODE, INTF_MODE);
|
||||
val = 500000000;
|
||||
ret = clk_set_rate(eth->clks[MTK_CLK_TRGPLL], val);
|
||||
if (ret)
|
||||
dev_err(eth->dev, "Failed to set trgmii pll: %d\n", ret);
|
||||
return;
|
||||
}
|
||||
|
||||
val = (speed == SPEED_1000) ?
|
||||
INTF_MODE_RGMII_1000 : INTF_MODE_RGMII_10_100;
|
||||
mtk_w32(eth, val, INTF_MODE);
|
||||
|
@ -262,10 +272,9 @@ static void mtk_mac_config(struct phylink_config *config, unsigned int mode,
|
|||
state->interface))
|
||||
goto err_phy;
|
||||
} else {
|
||||
if (state->interface !=
|
||||
PHY_INTERFACE_MODE_TRGMII)
|
||||
mtk_gmac0_rgmii_adjust(mac->hw,
|
||||
state->speed);
|
||||
mtk_gmac0_rgmii_adjust(mac->hw,
|
||||
state->interface,
|
||||
state->speed);
|
||||
|
||||
/* mt7623_pad_clk_setup */
|
||||
for (i = 0 ; i < NUM_TRGMII_CTRL; i++)
|
||||
|
|
Загрузка…
Ссылка в новой задаче