Thread (7 messages) 7 messages, 2 authors, 2d ago

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?

	Andrew
This 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.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help