Previous patches added sufficient PHYLINK support to the mv88e6xxx that it did not break existing use cases, basically fixed-link phys.
This patchset builds out the support so that SFP modules, up to 2.5Gbps can be supported, on mv88e6390X, on ports 9 and 10. It also provides a framework which can be extended to support SFPs on ports 2-8 of mv88e6390X, 10Gbps PHYs, and SFP support on the 6352 family. Russell King did much of the initial work, implementing the validate and mac_link_state calls. However, there is an important TODO in the commit message: needs to call phylink_mac_change() when the port link comes up/goes down. The remaining patches implement this, by adding more support for the SERDES interfaces, in particular, interrupt support so we get notified when the SERDES gains/looses sync. This has been tested on the ZII devel C, using a Clearfog as peer device. Andrew Lunn (11): net: dsa: mv88e6xxx: Add support to enabling pause net: dsa: mv88e6xxx: Refactor SERDES lane code net: dsa: mv88e6xxx: 6390 vs 6390X SERDES support net: dsa: mv88e6xxx: Rename sgmii/10g power functions net: dsa: mv88e6xxx: Add serdes register read/write helper net: dsa: mv88e6xxx: 2500Base-X uses the 1000Base-X SERDES net: dsa: mv88e6xxx: Cache the port cmode net: dsa: mv88e6xxx: Power on/off SERDES on cmode change net: dsa: mv88e6xxx: link mv88e6xxx_port to mv88e6xxx_chip net: dsa: mv88e6xxx: Add SERDES phydev_mac_change up for 6390 net: dsa: mv88e6xxx: Re-setup interrupts on CMODE change. Russell King (2): phylink: add helper for configuring 2500BaseX modes net: dsa: mv88e6xxx: add phylink support drivers/net/dsa/mv88e6xxx/chip.c | 226 ++++++++++++++- drivers/net/dsa/mv88e6xxx/chip.h | 24 ++ drivers/net/dsa/mv88e6xxx/port.c | 109 ++++++- drivers/net/dsa/mv88e6xxx/port.h | 23 +- drivers/net/dsa/mv88e6xxx/serdes.c | 439 ++++++++++++++++++++++------- drivers/net/dsa/mv88e6xxx/serdes.h | 24 +- drivers/net/phy/phylink.c | 30 ++ include/linux/phylink.h | 1 + 8 files changed, 767 insertions(+), 109 deletions(-) -- 2.18.0