net: phy: marvell: add support for MV88E6250 family internal PHYs
authorMatthias Schiffer <matthias.schiffer@ew.tq-group.com>
Thu, 2 May 2024 11:13:01 +0000 (13:13 +0200)
committerJakub Kicinski <kuba@kernel.org>
Tue, 7 May 2024 22:17:52 +0000 (15:17 -0700)
commitecc2ae6176a9f0b9f4eab015452ffc5e1f54c95f
treec93074732a57f24118f26a7a48b92c5bb9b92028
parent71dd027ab453bfed1d21bdb5e04a40b4fe7a2eea
net: phy: marvell: add support for MV88E6250 family internal PHYs

The embedded PHYs of the 88E6250 family switches are very basic - they
do not even have an Extended Address / Page register.

This adds support for the PHYs to the driver to set up PHY interrupts
and retrieve error stats. To deal with PHYs without a page register,
"simple" variants of all stat handling functions are introduced.

The code should work with all 88E6250 family switches (6250/6220/6071/
6070/6020). The PHY ID 0x01410db0 was read from a 88E6020, under the
assumption that all switches of this family use the same ID. The spec
only lists the prefix 0x01410c00 and leaves the last 10 bits as reserved,
but that seems too unspecific to be useful, as it would cover several
existing PHY IDs already supported by the driver; therefore, the ID read
from the actual hardware is used.

Signed-off-by: Matthias Schiffer <matthias.schiffer@ew.tq-group.com>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Link: https://lore.kernel.org/r/0695f699cd942e6e06da9d30daeedfd47785bc01.1714643285.git.matthias.schiffer@ew.tq-group.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/phy/marvell.c
include/linux/marvell_phy.h