]> git.baikalelectronics.ru Git - kernel.git/commit
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)
commit18d467f29c1a0a67d2eb1f1e495162a5bc360d82
tree46ce25e8ee10da0280a1f8ab79966a61e77f2581
parente8edf815325c45b02cde21c22b8cfef2f7cdeb65
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