0079-net-next-mediatek-add-fixed-phy-support.patch 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. From 09f0b50ae838bd6e2bbf0aa22de9f352122297de Mon Sep 17 00:00:00 2001
  2. From: John Crispin <john@phrozen.org>
  3. Date: Fri, 22 Apr 2016 11:06:03 +0200
  4. Subject: [PATCH 079/102] net-next: mediatek: add fixed-phy support
  5. The MT7623 SoC has a builtin gigabit switch. If we want to use it, GMAC1
  6. needs to be configured using a fixed link speed and flow control settings.
  7. The easiest way to do this is to used the fixed-phy driver, allowing us to
  8. reuse the existing mdio polling code to setup the MAC.
  9. Reviewed-by: Andrew Lunn <andrew@lunn.ch>
  10. Signed-off-by: John Crispin <john@phrozen.org>
  11. ---
  12. drivers/net/ethernet/mediatek/mtk_eth_soc.c | 6 ++++++
  13. 1 file changed, 6 insertions(+)
  14. --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
  15. +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
  16. @@ -229,6 +229,9 @@ static int mtk_phy_connect(struct mtk_ma
  17. u32 val, ge_mode;
  18. np = of_parse_phandle(mac->of_node, "phy-handle", 0);
  19. + if (!np && of_phy_is_fixed_link(mac->of_node))
  20. + if (!of_phy_register_fixed_link(mac->of_node))
  21. + np = of_node_get(mac->of_node);
  22. if (!np)
  23. return -ENODEV;
  24. @@ -257,6 +260,9 @@ static int mtk_phy_connect(struct mtk_ma
  25. mac->phy_dev->autoneg = AUTONEG_ENABLE;
  26. mac->phy_dev->speed = 0;
  27. mac->phy_dev->duplex = 0;
  28. + if (of_phy_is_fixed_link(mac->of_node))
  29. + mac->phy_dev->supported |= SUPPORTED_Pause |
  30. + SUPPORTED_Asym_Pause;
  31. mac->phy_dev->supported &= PHY_GBIT_FEATURES | SUPPORTED_Pause |
  32. SUPPORTED_Asym_Pause;
  33. mac->phy_dev->advertising = mac->phy_dev->supported |