OSDN Git Service

net: phy: broadcom: Add IDDQ-SR mode
authorFlorian Fainelli <f.fainelli@gmail.com>
Mon, 20 Sep 2021 21:54:14 +0000 (14:54 -0700)
committerDavid S. Miller <davem@davemloft.net>
Tue, 21 Sep 2021 09:58:35 +0000 (10:58 +0100)
commitd6da08ed1425180b8d54c828ec06d247fd915d60
tree46ce25e8ee10da0280a1f8ab79966a61e77f2581
parentc595b120ebab1995083c28b6e050f3ccc24e3c1c
net: phy: broadcom: Add IDDQ-SR mode

Add support for putting the PHY into IDDQ Soft Recovery mode by setting
the TOP_MISC register bits accordingly. This requires us to implement a
custom bcm54xx_suspend() routine which diverges from genphy_suspend() in
order to configure the PHY to enter IDDQ with software recovery as well
as avoid doing a read/modify/write on the BMCR register.

Doing a read/modify/write on the BMCR register means that the
auto-negotation bit may remain which interferes with the ability to put
the PHY into IDDQ-SR mode. We do software reset upon suspend in order to
put the PHY back into its state prior to suspend as recommended by the
datasheet.

Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/phy/broadcom.c
include/linux/brcmphy.h