]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
net: phy: mscc: report and configure in-band auto-negotiation for SGMII/QSGMII
authorVladimir Oltean <vladimir.oltean@nxp.com>
Wed, 13 Aug 2025 07:44:54 +0000 (10:44 +0300)
committerJakub Kicinski <kuba@kernel.org>
Fri, 15 Aug 2025 00:42:32 +0000 (17:42 -0700)
commitdf979273bd716a93ca9ffa8f84aeb205c9bf2ab6
treee3669140ff4b0c7868858a370a3915c719e0cb3e
parent20e1b75b38fd51ad7fb215943cd80fd78d1e767b
net: phy: mscc: report and configure in-band auto-negotiation for SGMII/QSGMII

The following Vitesse/Microsemi/Microchip PHYs, among those supported by
this driver, have the host interface configurable as SGMII or QSGMII:
- VSC8504
- VSC8514
- VSC8552
- VSC8562
- VSC8572
- VSC8574
- VSC8575
- VSC8582
- VSC8584

All these PHYs are documented to have bit 7 of "MAC SerDes PCS Control"
as "MAC SerDes ANEG enable".

Out of these, I could test the VSC8514 quad PHY in QSGMII. This works
both with the in-band autoneg on and off, on the NXP LS1028A-RDB and
T1040-RDB boards.

Notably, the bit is sticky (survives soft resets), so giving Linux the
tools to read and modify this settings makes it robust to changes made
to it by previous boot layers (U-Boot).

Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Reviewed-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
Link: https://patch.msgid.link/20250813074454.63224-1-vladimir.oltean@nxp.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/phy/mscc/mscc.h
drivers/net/phy/mscc/mscc_main.c