This series adds experimental support for Xilinx PCS devices. It is experimental because while I believe I have the Linux side mostly sorted, I have yet to achieve any data transfer. Adding support for this device has required some plumbing work related to PCSs in general, and I would appreciate feedback in that area. In general, I have not tested these changes outside of my particular setup, though I do have the ability to test the macb changes using the internal PCS in the future. Sean Anderson (16): dt-bindings: net: Add pcs property dt-bindings: net: Add binding for Xilinx PCS net: sfp: Fix typo in state machine debug string net: phylink: Move phylink_set_pcs before phylink_create net: phylink: Automatically attach PCS devices net: phylink: Add function for optionally adding a PCS net: phylink: Add helpers for c22 registers without MDIO net: macb: Clean up macb_validate net: macb: Move most of mac_prepare to mac_config net: macb: Move PCS settings to PCS callbacks net: macb: Support restarting PCS autonegotiation net: macb: Support external PCSs net: phy: Export get_phy_c22_id net: mdio: Add helper functions for accessing MDIO devices net: pcs: Add Xilinx PCS driver net: sfp: Add quirk to ignore PHYs .../bindings/net/ethernet-controller.yaml | 5 + .../devicetree/bindings/net/xilinx,pcs.yaml | 83 ++++ MAINTAINERS | 6 + drivers/net/ethernet/cadence/macb_main.c | 375 +++++++++++------- drivers/net/pcs/Kconfig | 19 + drivers/net/pcs/Makefile | 1 + drivers/net/pcs/pcs-xilinx.c | 326 +++++++++++++++ drivers/net/phy/phy_device.c | 3 +- drivers/net/phy/phylink.c | 335 ++++++++++++---- drivers/net/phy/sfp-bus.c | 12 +- drivers/net/phy/sfp.c | 5 +- include/linux/mdio.h | 17 + include/linux/phy.h | 1 + include/linux/phylink.h | 17 +- 14 files changed, 963 insertions(+), 242 deletions(-) create mode 100644 Documentation/devicetree/bindings/net/xilinx,pcs.yaml create mode 100644 drivers/net/pcs/pcs-xilinx.c -- 2.25.1