ath79: mikrotik: erase firmware on SPI NOR before install
[openwrt/openwrt.git] / target / linux / mediatek / patches-5.4 / 0402-net-ethernet-mtk_eth_soc-Always-call-mtk_gmac0_rgmii.patch
1 In-Reply-To: <trinity-fb0cdf15-dfcf-4d60-9144-87d8fbfad5ba-1586179542451@3c-app-gmx-bap62>
2 References: <trinity-fb0cdf15-dfcf-4d60-9144-87d8fbfad5ba-1586179542451@3c-app-gmx-bap62>
3 Subject: [PATCH] net: ethernet: mtk_eth_soc: Always call mtk_gmac0_rgmii_adjust() for mt7623
4 MIME-Version: 1.0
5 Content-Type: text/plain; charset=UTF-8
6 Content-Transfer-Encoding: 8bit
7
8 From: René van Dorst <opensource@vdorst.com>
9
10 Modify mtk_gmac0_rgmii_adjust() so it can always be called.
11 mtk_gmac0_rgmii_adjust() sets-up the TRGMII clocks.
12
13 Signed-off-by: René van Dorst <opensource@vdorst.com>
14 Signed-off-By: David Woodhouse <dwmw2@infradead.org>
15 ---
16 drivers/net/ethernet/mediatek/mtk_eth_soc.c | 19 ++++++++++++++-----
17 1 file changed, 14 insertions(+), 5 deletions(-)
18
19 diff --git a/drivers/net/ethernet/mediatek/mtk_eth_soc.c b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
20 index b5408c5b954a..f89f225ab144 100644
21 --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
22 +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
23 @@ -171,11 +171,21 @@ static int mt7621_gmac0_rgmii_adjust(struct mtk_eth *eth,
24 return 0;
25 }
26
27 -static void mtk_gmac0_rgmii_adjust(struct mtk_eth *eth, int speed)
28 +static void mtk_gmac0_rgmii_adjust(struct mtk_eth *eth,
29 + phy_interface_t interface, int speed)
30 {
31 u32 val;
32 int ret;
33
34 + if (interface == PHY_INTERFACE_MODE_TRGMII) {
35 + mtk_w32(eth, TRGMII_MODE, INTF_MODE);
36 + val = 500000000;
37 + ret = clk_set_rate(eth->clks[MTK_CLK_TRGPLL], val);
38 + if (ret)
39 + dev_err(eth->dev, "Failed to set trgmii pll: %d\n", ret);
40 + return;
41 + }
42 +
43 val = (speed == SPEED_1000) ?
44 INTF_MODE_RGMII_1000 : INTF_MODE_RGMII_10_100;
45 mtk_w32(eth, val, INTF_MODE);
46 @@ -262,10 +272,9 @@ static void mtk_mac_config(struct phylink_config *config, unsigned int mode,
47 state->interface))
48 goto err_phy;
49 } else {
50 - if (state->interface !=
51 - PHY_INTERFACE_MODE_TRGMII)
52 - mtk_gmac0_rgmii_adjust(mac->hw,
53 - state->speed);
54 + mtk_gmac0_rgmii_adjust(mac->hw,
55 + state->interface,
56 + state->speed);
57
58 /* mt7623_pad_clk_setup */
59 for (i = 0 ; i < NUM_TRGMII_CTRL; i++)
60 --
61 2.26.2
62