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

From: Kamil Horák (2N)
Date: Fri Jul 12 2024 - 11:08:13 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

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