|
|
Subscribe / Log in / New account

yt6801: Add Motorcomm yt6801 PCIe driver

From:  Frank Sae <Frank.Sae-AT-motor-comm.com>
To:  Jakub Kicinski <kuba-AT-kernel.org>, Paolo Abeni <pabeni-AT-redhat.com>, Andrew Lunn <andrew-AT-lunn.ch>, Heiner Kallweit <hkallweit1-AT-gmail.com>, Russell King <linux-AT-armlinux.org.uk>, "David S . Miller" <davem-AT-davemloft.net>, Eric Dumazet <edumazet-AT-google.com>, Frank <Frank.Sae-AT-motor-comm.com>, netdev-AT-vger.kernel.org
Subject:  [PATCH net-next v4 00/14] yt6801: Add Motorcomm yt6801 PCIe driver
Date:  Tue, 08 Apr 2025 17:28:21 +0800
Message-ID:  <20250408092835.3952-1-Frank.Sae@motor-comm.com>
Cc:  Masahiro Yamada <masahiroy-AT-kernel.org>, Parthiban.Veerasooran-AT-microchip.com, linux-kernel-AT-vger.kernel.org, "andrew+netdev @ lunn . ch" <andrew+netdev-AT-lunn.ch>, lee-AT-trager.us, horms-AT-kernel.org, linux-doc-AT-vger.kernel.org, corbet-AT-lwn.net, geert+renesas-AT-glider.be, xiaogang.fan-AT-motor-comm.com, fei.zhang-AT-motor-comm.com, hua.sun-AT-motor-comm.com
Archive-link:  Article

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@motor-comm.com>
---

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/2025...
 - 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/2024...
 - 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/2024...


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




Copyright © 2025, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds