This series includes adding Motorcomm YT6801 Gigabit ethernet driver and adding yt6801 ethernet driver entry in MAINTAINERS file. YT6801 integrates a YT8531S phy. Signed-off-by: Frank Sae <Frank.Sae@xxxxxxxxxxxxxx> --- v4: - Redefine rges and bits - Reorganize the read and write function of regs - Replae ‘pcim_iomap_regions’ as 'pcim_iomap_region' - Replae ‘mutex_lock(&priv->mutex)’ as 'rtnl_lock()' - Replae ‘phydev_info(...YT6801.\n");’ as 'dev_info_once(...YT6801.\n");' in phy driver - Remove pcim_iomap_table - Use "yt6801: " and "net: phy: motorcomm: " as prefixes for these patches v3: https://patchwork.kernel.org/project/netdevbpf/cover/20250228100020.3944-1-Frank.Sae@xxxxxxxxxxxxxx/ - Remove about 5000 lines of code - Remove statistics, ethtool, WoL, PHY handling ... - Reorganize this driver code and remove redundant code - Remove unnecessary yt_dbg information - Remove netif_carrier_on/netif_carrier_off - Remove hw_ops - Add PHY_INTERFACE_MODE_INTERNAL mode in phy driver to support yt6801 - Replae '#ifdef CONFIG_PCI_MSI' as 'if (IS_ENABLED(CONFIG_PCI_MSI) {}' - Replae ‘fxgmac_pdata val’ as 'priv' v2: https://patchwork.kernel.org/project/netdevbpf/cover/20241120105625.22508-1-Frank.Sae@xxxxxxxxxxxxxx/ - Split this driver into multiple patches. - Reorganize this driver code and remove redundant code - Remove PHY handling code and use phylib. - Remove writing ASPM config - Use generic power management instead of pci_driver.suspend()/resume() - Add Space before closing "*/" v1: https://patchwork.kernel.org/project/netdevbpf/patch/20240913124113.9174-1-Frank.Sae@xxxxxxxxxxxxxx/ This patch is to add the ethernet device driver for the PCIe interface of Motorcomm YT6801 Gigabit Ethernet. We tested this driver on an Ubuntu x86 PC with YT6801 network card. Frank Sae (14): yt6801: Add support for a pci table in this module yt6801: Implement mdio register yt6801: Implement pci_driver shutdown yt6801: Implement the fxgmac_init function yt6801: Implement the .ndo_open function yt6801: Implement the fxgmac_start function net:phy:motorcomm: Add PHY_INTERFACE_MODE_INTERNAL to support YT6801 yt6801: Implement the fxgmac_hw_init function yt6801: Implement the poll functions yt6801: Implement .ndo_start_xmit function yt6801: Implement some net_device_ops function yt6801: Implement pci_driver suspend and resume yt6801: Add makefile and Kconfig yt6801: update ethernet documentation and maintainer .../device_drivers/ethernet/index.rst | 1 + .../ethernet/motorcomm/yt6801.rst | 20 + MAINTAINERS | 8 + drivers/net/ethernet/Kconfig | 1 + drivers/net/ethernet/Makefile | 1 + drivers/net/ethernet/motorcomm/Kconfig | 27 + drivers/net/ethernet/motorcomm/Makefile | 6 + .../net/ethernet/motorcomm/yt6801/Makefile | 8 + .../ethernet/motorcomm/yt6801/yt6801_desc.c | 565 ++++ .../ethernet/motorcomm/yt6801/yt6801_desc.h | 35 + .../ethernet/motorcomm/yt6801/yt6801_main.c | 3006 +++++++++++++++++ .../ethernet/motorcomm/yt6801/yt6801_type.h | 956 ++++++ drivers/net/phy/motorcomm.c | 6 + 13 files changed, 4640 insertions(+) create mode 100644 Documentation/networking/device_drivers/ethernet/motorcomm/yt6801.rst create mode 100644 drivers/net/ethernet/motorcomm/Kconfig create mode 100644 drivers/net/ethernet/motorcomm/Makefile create mode 100644 drivers/net/ethernet/motorcomm/yt6801/Makefile create mode 100644 drivers/net/ethernet/motorcomm/yt6801/yt6801_desc.c create mode 100644 drivers/net/ethernet/motorcomm/yt6801/yt6801_desc.h create mode 100644 drivers/net/ethernet/motorcomm/yt6801/yt6801_main.c create mode 100644 drivers/net/ethernet/motorcomm/yt6801/yt6801_type.h -- 2.34.1