[PATCH net-next 0/2] net: phy: sfp: Add single-byte SMBus SFP access
From: Maxime Chevallier
Date: Sun Feb 23 2025 - 12:29:08 EST
Hi everyone,
Some PHYs such as the VSC8552 have embedded "Two-wire Interfaces" designed to
access SFP modules downstream. These controllers are actually SMBus controllers
that can only perform single-byte accesses for read and write.
This series adds support for accessing SFP modules through single-byte SMBus,
which could be relevant for other setups.
The first patch deals with the SFP module access by itself, for addresses 0x50
and 0x51.
The second patch allows accessing embedded PHYs within the module with single-byte
SMBus, adding this in the mdio-i2c driver.
As raw i2c transfers are always more efficient, we make sure that the smbus accesses
are only used if we really have no other choices.
This has been tested with the following modules (as reported upon module insertion)
Fiber modules :
UBNT UF-MM-1G rev sn FT20051201212 dc 200512
PROLABS SFP-1GSXLC-T-C rev A1 sn PR2109CA1080 dc 220607
CISCOSOLIDOPTICS CWDM-SFP-1490 rev 1.0 sn SOSC49U0891 dc 181008
CISCOSOLIDOPTICS CWDM-SFP-1470 rev 1.0 sn SOSC47U1175 dc 190620
OEM SFP-10G-SR rev 02 sn CSSSRIC3174 dc 181201
FINISAR CORP. FTLF1217P2BTL-HA rev A sn PA3A0L6 dc 230716
OEM ES8512-3LCD05 rev 10 sn ESC22SX296055 dc 220722
SOURCEPHOTONICS SPP10ESRCDFF rev 10 sn E8G2017450 dc 140715
CXR SFP-STM1-MM-850 rev 0000 sn K719017031 dc 200720
Copper modules
OEM SFT-7000-RJ45-AL rev 11.0 sn EB1902240862 dc 190313
FINISAR CORP. FCLF8521P2BTL rev A sn P1KBAPD dc 190508
CHAMPION ONE 1000SFPT rev - sn GBC59750 dc 19110401
DAC :
OEM SFP-H10GB-CU1M rev R sn CSC200803140115 dc 200827
In all cases, read/write operations happened without errors, and the internal
PHY (if any) was always properly detected and accessible
I haven't tested with any RollBall SFPs though, as I don't have any, and I don't
have Copper modules with anything else than a Marvell 88e1111 inside. The support
for the VSC8552 SMBus may follow at some point.
Thanks,
Maxime
Maxime Chevallier (2):
net: phy: sfp: Add support for SMBus module access
net: mdio: mdio-i2c: Add support for single-byte SMBus operations
drivers/net/mdio/mdio-i2c.c | 79 ++++++++++++++++++++++++++++++++++++-
drivers/net/phy/sfp.c | 65 +++++++++++++++++++++++++++---
2 files changed, 138 insertions(+), 6 deletions(-)
--
2.48.1