Re: [PATCH] net: phy: marvell: Add soft reset for 88E1510
From: Ben Brown <hidden>
Date: 2026-07-07 21:59:28
Also in:
lkml
On 7/4/26 00:53, Andrew Lunn wrote:
On Fri, Jul 03, 2026 at 12:14:26AM +0000, Ben Brown wrote:quoted
On 7/3/26 11:04, Andrew Lunn wrote:quoted
On Fri, Jul 03, 2026 at 10:50:34AM +1200, Ben Brown wrote:quoted
When bringing down then up the link on a 88e1512 phy a link is not getting established. This is because the phy is coming out of reset then immediately getting configured. During configuration the page is unsuccessfully updated causing writes to the wrong registers. Add the soft reset function that does a reset then polling read waiting for the phy to come back online, at which stage the page register can be updated successfully. This was tested on a 88E1512 phy, using ip link to bring up/down the link.What makes the 88E1512 special that it needs this, but no other Marvell PHY does? AndrewThis may be needed on the other marvell phys, but I only have access to a 88E1512 phy so I am only updating what I have seen this on.The Marvell driver is used a lot, so i would of expected somebody else to of noticed. Lets take a step back. What sort of reset are we talking about? Software or hardware? Andrew
It is doing a hardware reset using a GPIO line. When linked down the phy gets put into reset using a hardware GPIO line, during link up the phy initializes the hardware using phy_init_hw(), which de-asserts that reset GPIO. Then trivial setup is done before the driver specific config_init(). When we are doing the marvell m88e1510_config_init() the first page write is not applying so it ends up writing configuration to the wrong registers. When testing fixes adding a 15us sleep before changing the page also meant the page was updated correctly.