[PATCH net-next v3 0/8] TXGBE PHYLINK support

Jiawen Wu
2023-04-19T08:28:58Z

Implement I2C, SFP, GPIO and PHYLINK to setup TXGBE link and switch link
rate based on optical module information.

Because our I2C and PCS are based on Synopsys Designware IP-core, extend
the i2c-designware and pcs-xpcs driver to realize our functions.

v2 -> v3:
- delete own I2C bus master driver, support it in i2c-designware
- delete own PCS functions, remove pma configuration and 1000BASE-X mode
- add basic function for 10GBASE-R interface in pcs-xpcs
- add helper to get txgbe pointer from netdev

v1 -> v2:
- add comments to indicate GPIO lines
- add I2C write operation support
- modify GPIO direction functions
- rename functions related to PHY interface
- add condition on interface changing to re-config PCS
- add to set advertise and fix to get status for 1000BASE-X mode
- other redundant codes remove

Jiawen Wu (8):
net: txgbe: Add software nodes to support phylink
i2c: designware: Add driver support for Wangxun 10Gb NIC
net: txgbe: Register I2C platform device
net: txgbe: Add SFP module identify
net: txgbe: Support GPIO to SFP socket
net: pcs: Add 10GBASE-R mode for Synopsys Designware XPCS
net: txgbe: Implement phylink pcs
net: txgbe: Support phylink MAC layer

drivers/i2c/busses/i2c-designware-common.c | 4 +
drivers/i2c/busses/i2c-designware-core.h | 1 +
drivers/i2c/busses/i2c-designware-master.c | 91 ++-
drivers/i2c/busses/i2c-designware-platdrv.c | 36 +-
drivers/net/ethernet/wangxun/Kconfig | 6 +
drivers/net/ethernet/wangxun/libwx/wx_lib.c | 3 +-
drivers/net/ethernet/wangxun/libwx/wx_type.h | 3 +
drivers/net/ethernet/wangxun/txgbe/Makefile | 1 +
.../ethernet/wangxun/txgbe/txgbe_ethtool.c | 28 +
.../net/ethernet/wangxun/txgbe/txgbe_main.c | 63 +-
.../net/ethernet/wangxun/txgbe/txgbe_phy.c | 585 ++++++++++++++++++
.../net/ethernet/wangxun/txgbe/txgbe_phy.h | 10 +
.../net/ethernet/wangxun/txgbe/txgbe_type.h | 92 +++
drivers/net/pcs/pcs-xpcs.c | 58 ++
include/linux/pcs/pcs-xpcs.h | 1 +
include/linux/platform_data/i2c-dw.h | 15 +
16 files changed, 960 insertions(+), 37 deletions(-)
create mode 100644 drivers/net/ethernet/wangxun/txgbe/txgbe_phy.c
create mode 100644 drivers/net/ethernet/wangxun/txgbe/txgbe_phy.h
create mode 100644 include/linux/platform_data/i2c-dw.h

--
2.27.0