net: phy: add Broadcom BCM54140 support
authorMichael Walle <michael@walle.cc>
Mon, 20 Apr 2020 18:21:12 +0000 (20:21 +0200)
committerDavid S. Miller <davem@davemloft.net>
Wed, 22 Apr 2020 19:14:18 +0000 (12:14 -0700)
commit6937602ed3f9ebd46ed6a6b5e609c0ae4ed99008
tree3ded2cb58e5ed1338b50e68f3b7658b44fa7a3ba
parent0a32f1ff2a2e41404deaba5fb32f8a0d640c0974
net: phy: add Broadcom BCM54140 support

The Broadcom BCM54140 is a Quad SGMII/QSGMII Copper/Fiber Gigabit
Ethernet transceiver.

This also adds support for tunables to set and get downshift and
energy detect auto power-down.

The PHY has four ports and each port has its own PHY address.
There are per-port registers as well as global registers.
Unfortunately, the global registers can only be accessed by reading
and writing from/to the PHY address of the first port. Further,
there is no way to find out what port you actually are by just
reading the per-port registers. We therefore, have to scan the
bus on the PHY probe to determine the port and thus what address
we need to access the global registers.

Signed-off-by: Michael Walle <michael@walle.cc>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/phy/Kconfig
drivers/net/phy/Makefile
drivers/net/phy/bcm54140.c [new file with mode: 0644]
include/linux/brcmphy.h