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 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 | 7 + drivers/net/phy/bcm-phy-lib.c | 113 +++++ drivers/net/phy/bcm-phy-lib.h | 4 + drivers/net/phy/broadcom.c | 393 +++++++++++++++++- drivers/net/phy/phy-core.c | 3 +- include/linux/brcmphy.h | 89 ++++ include/uapi/linux/ethtool.h | 1 + net/ethtool/common.c | 3 + 8 files changed, 594 insertions(+), 19 deletions(-) -- 2.39.2