diff options
author | Jiawen Wu <jiawenwu@trustnetic.com> | 2023-08-23 14:19:29 +0800 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2023-08-25 07:42:58 +0100 |
commit | f629acc6f21043fdc80ae93cdafa6713888db0fd (patch) | |
tree | 653643f82483cc090bee727d2f73e65aaf83e80d /drivers/net/pcs/Makefile | |
parent | d55595f04dcc8bd6f6ff33f451dda8de3f1232da (diff) | |
download | linux-stable-f629acc6f21043fdc80ae93cdafa6713888db0fd.tar.gz linux-stable-f629acc6f21043fdc80ae93cdafa6713888db0fd.tar.bz2 linux-stable-f629acc6f21043fdc80ae93cdafa6713888db0fd.zip |
net: pcs: xpcs: support to switch mode for Wangxun NICs
According to chapter 6 of DesignWare Cores Ethernet PCS (version 3.20a)
and custom design manual, add a configuration flow for switching interface
mode.
If the interface changes, the following setting is required:
1. wait VR_XS_PCS_DIG_STS bit(4, 2) [PSEQ_STATE] = 100b (Power-Good)
2. write SR_XS_PCS_CTRL2 to select various PCS type
3. write SR_PMA_CTRL1 and/or SR_XS_PCS_CTRL1 for link speed
4. program PMA registers
5. write VR_XS_PCS_DIG_CTRL1 bit(15) [VR_RST] = 1b (Vendor-Specific
Soft Reset)
6. wait for VR_XS_PCS_DIG_CTRL1 bit(15) [VR_RST] to get cleared
Only 10GBASE-R/SGMII/1000BASE-X modes are planned for the current Wangxun
devices. And there is a quirk for Wangxun devices to switch mode although
the interface in phylink state has not changed, since PCS will change to
default 10GBASE-R when the ethernet driver(txgbe) do LAN reset.
Signed-off-by: Jiawen Wu <jiawenwu@trustnetic.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/pcs/Makefile')
-rw-r--r-- | drivers/net/pcs/Makefile | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/net/pcs/Makefile b/drivers/net/pcs/Makefile index ea662a7989b2..fb1694192ae6 100644 --- a/drivers/net/pcs/Makefile +++ b/drivers/net/pcs/Makefile @@ -1,7 +1,7 @@ # SPDX-License-Identifier: GPL-2.0 # Makefile for Linux PCS drivers -pcs_xpcs-$(CONFIG_PCS_XPCS) := pcs-xpcs.o pcs-xpcs-nxp.o +pcs_xpcs-$(CONFIG_PCS_XPCS) := pcs-xpcs.o pcs-xpcs-nxp.o pcs-xpcs-wx.o obj-$(CONFIG_PCS_XPCS) += pcs_xpcs.o obj-$(CONFIG_PCS_LYNX) += pcs-lynx.o |