PATCH 1 - Add the 10baseT1BRR_Full link mode PATCH 2 - Add the definitions of LRE registers, necessary to use BroadR-Reach modes on the BCM5481x PHY PATCH 3 - Add brr-mode flag to switch between IEEE802.3 and BroadR-Reach PATCH 4 - Implementation of the BroadR-Reach modes for the Broadcom PHYs Changes in v2: - Divided into multiple patches, removed useless link modes Changes in v3: - Fixed uninitialized variable in bcm5481x_config_delay_swap function Changes in v4: - Improved the division of functions between bcm-phy library and broadcom.c - Changed the BroadR-Reach / IEEE mode switching to device tree boolean as these modes are mutually exclusive and barely could coexist in one hardware - Made the link mode selection compatible with current ethtool (i.e. the linkmode is selected by choosing speed and master-slave) Changes in v5: - Fixed the operator precedence as reported by the kernel test robot - Fixed doc of bcm_linkmode_adv_to_mii_adv_t function Changes in v6: - Moved the brr-mode flag to separate commit as required by the rules for DT binding patches - Renamed some functions to make clear they handle LRE-related stuff - Reordered variable definitions to match the coding style requirements Changes in v7: - Fixed the changes distribution into patches (first one was not buildable) Changes in v8: - Fixed coding style and did other changes on behalf of the reviewers Changes in v9: - Applied reviewed tags to unchanged commits, reformatted the submitter's address Changes in v10: - Fixed minor CR issues, clarified the embedded documentation and the commit message Changes in v11: - Reworded the brr-mode flag documentation Changes in v12: - Reworked the BroadR-Reach mode selection as suggested by the review - Renamed some functions to make clear that they handle the alternative (LRE) register set - Some minor changes as recommended Kamil Horák (2N) (4): net: phy: bcm54811: New link mode for BroadR-Reach net: phy: bcm54811: Add LRE registers definitions dt-bindings: ethernet-phy: add optional brr-mode flag net: phy: bcm-phy-lib: Implement BroadR-Reach link modes .../devicetree/bindings/net/ethernet-phy.yaml | 8 + drivers/net/phy/bcm-phy-lib.c | 115 +++++ drivers/net/phy/bcm-phy-lib.h | 4 + drivers/net/phy/broadcom.c | 403 ++++++++++++++++-- drivers/net/phy/phy-core.c | 3 +- include/linux/brcmphy.h | 88 ++++ include/uapi/linux/ethtool.h | 1 + net/ethtool/common.c | 3 + 8 files changed, 596 insertions(+), 29 deletions(-) -- 2.39.2