Add support for Ethernet Backplane KR generic driver using link training (ieee802.3ap/ba standards), equalization algorithms (bee, fixed) and enable qoriq family of devices. This driver is dependent on uboot Backplane KR support: patchwork.ozlabs.org/project/uboot/list/?series=164627&state=* v2 changes: * phy.rst and ABI/testing/sysfs-class-net-phydev updates with new PHY interface values according to Florian Fainelli feedback * dt bindings updates according to Rob Herring feedback: fixed errors occurred when running 'make dt_binding_check' * bpdev log changes according to feedback from Joe Perches: use %pV instead of an intermediate buffer and refactoring * reverse christmas tree updates according to David Miller feedback * use pr_info_once function in probe to display qoriq backplane driver version according to Joe's feedback * introduce helper function dt_serdes_type in qoriq backplane according to Joe's feedback * use standard linux defines to access AN control/status registers and not indirect with internal variables according to Andrew's feedback * dt bindings link training updates: pre-cursor, main-cursor, post-cursor * change display format for tx equalization using C() standard notation * add priv pointer in backplane_device and lane as device specific private extension to be used by upper layer backplane drivers * backplane refactoring: split backplane_phy_info struct in backplane_device and backplane_driver, add backplane specific ops and move amp_red as qoriq specific param * lane refactoring: split kr_lane_info struct in lane_device and lane_kr in order to separate lane kr specific data by generic device lane data, lane kr parameters unification, extension params for custom device specific * equalization refactoring: replace eq_setup_info/equalizer_info with equalizer_driver/equalizer_device data structures Feedback not addressed yet: * general solution for PCS representation: still working to find a generic suitable solution, exploring alternatives, perhaps this should be addressed in phy generic layer Florinel Iordache (9): doc: net: add backplane documentation dt-bindings: net: add backplane dt bindings net: phy: add support for kr phy connection type net: fman: add kr support for dpaa1 mac net: dpaa2: add kr support for dpaa2 mac net: phy: add backplane kr driver support net: phy: enable qoriq backplane support net: phy: add bee algorithm for kr training arm64: dts: add serdes and mdio description Documentation/ABI/testing/sysfs-class-net-phydev | 2 +- .../bindings/net/ethernet-controller.yaml | 3 +- .../devicetree/bindings/net/ethernet-phy.yaml | 50 + .../devicetree/bindings/net/serdes-lane.yaml | 51 + Documentation/devicetree/bindings/net/serdes.yaml | 44 + Documentation/networking/backplane.rst | 165 ++ Documentation/networking/phy.rst | 15 +- arch/arm64/boot/dts/freescale/fsl-ls1046a.dtsi | 33 +- arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi | 97 +- arch/arm64/boot/dts/freescale/fsl-ls208xa.dtsi | 160 +- arch/arm64/boot/dts/freescale/fsl-lx2160a.dtsi | 128 +- .../boot/dts/freescale/qoriq-fman3-0-10g-0.dtsi | 5 +- .../boot/dts/freescale/qoriq-fman3-0-10g-1.dtsi | 5 +- drivers/net/ethernet/freescale/dpaa2/dpaa2-mac.c | 10 +- drivers/net/ethernet/freescale/fman/mac.c | 10 +- drivers/net/phy/Kconfig | 2 + drivers/net/phy/Makefile | 1 + drivers/net/phy/backplane/Kconfig | 40 + drivers/net/phy/backplane/Makefile | 12 + drivers/net/phy/backplane/backplane.c | 1626 ++++++++++++++++++++ drivers/net/phy/backplane/backplane.h | 293 ++++ drivers/net/phy/backplane/eq_bee.c | 1076 +++++++++++++ drivers/net/phy/backplane/eq_fixed.c | 83 + drivers/net/phy/backplane/equalization.h | 283 ++++ drivers/net/phy/backplane/link_training.c | 1529 ++++++++++++++++++ drivers/net/phy/backplane/link_training.h | 32 + drivers/net/phy/backplane/qoriq_backplane.c | 501 ++++++ drivers/net/phy/backplane/qoriq_backplane.h | 46 + drivers/net/phy/backplane/qoriq_serdes_10g.c | 486 ++++++ drivers/net/phy/backplane/qoriq_serdes_28g.c | 547 +++++++ drivers/net/phy/phylink.c | 15 +- include/linux/phy.h | 6 +- 32 files changed, 7334 insertions(+), 22 deletions(-) create mode 100644 Documentation/devicetree/bindings/net/serdes-lane.yaml create mode 100644 Documentation/devicetree/bindings/net/serdes.yaml create mode 100644 Documentation/networking/backplane.rst create mode 100644 drivers/net/phy/backplane/Kconfig create mode 100644 drivers/net/phy/backplane/Makefile create mode 100644 drivers/net/phy/backplane/backplane.c create mode 100644 drivers/net/phy/backplane/backplane.h create mode 100644 drivers/net/phy/backplane/eq_bee.c create mode 100644 drivers/net/phy/backplane/eq_fixed.c create mode 100644 drivers/net/phy/backplane/equalization.h create mode 100644 drivers/net/phy/backplane/link_training.c create mode 100644 drivers/net/phy/backplane/link_training.h create mode 100644 drivers/net/phy/backplane/qoriq_backplane.c create mode 100644 drivers/net/phy/backplane/qoriq_backplane.h create mode 100644 drivers/net/phy/backplane/qoriq_serdes_10g.c create mode 100644 drivers/net/phy/backplane/qoriq_serdes_28g.c -- 1.9.1