[PATCH v6 0/4] net: phy: bcm5481x: add support for BroadR-Reach mode

From: Kamil Horák - 2N
Date: Thu Jun 13 2024 - 09:23:40 EST


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

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 | 125 ++++++
drivers/net/phy/bcm-phy-lib.h | 4 +
drivers/net/phy/broadcom.c | 370 +++++++++++++++++-
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, 584 insertions(+), 18 deletions(-)

--
2.39.2