phy: add support for the Layerscape SerDes 28G
authorIoana Ciornei <ioana.ciornei@nxp.com>
Fri, 11 Mar 2022 21:22:21 +0000 (23:22 +0200)
committerDavid S. Miller <davem@davemloft.net>
Mon, 14 Mar 2022 10:41:50 +0000 (10:41 +0000)
commit8f73b37cf3fbda67ea1e579c3b5785da4e7aa2e3
tree0f46a07cae4a3adaf35fa6c096c1ac96d97ed843
parent92ebb2361e1b32d4b5975f017289473ed84ab86d
phy: add support for the Layerscape SerDes 28G

This patch adds a new generic PHY driver to support the Lynx 28G SerDes
block found on some of the Layerscape SoCs such as LX2160A.
At the moment, only the following Ethernet protocols are supported:
SGMII/1000Base-X and 10GBaseR.

SerDes lanes which are not running an Ethernet protocol or a currently
supported Ethenet protocol will be left as it was configured through the
RCW (Reset Configuration Word) at boot time.

At probe time, the platform driver will read the current
configuration of both PLLs found on a SerDes block and will determine
what protocols are supported using that PLL.

For example, if a PLL is configured to generate a clock net (frate) of
5GHz the only protocols sustained by that PLL are SGMII/1000Base-X
(using a quarter of the full clock rate) and QSGMII using the full clock
net frequency on the lane.

On the .set_mode() callback, the PHY driver will first check if the
requested operating mode (protocol) is even supported by the current PLL
configuration and will error out if not.
Then, the lane is reconfigured to run on the requested protocol.

Signed-off-by: Ioana Ciornei <ioana.ciornei@nxp.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
MAINTAINERS
drivers/phy/freescale/Kconfig
drivers/phy/freescale/Makefile
drivers/phy/freescale/phy-fsl-lynx-28g.c [new file with mode: 0644]