net: dsa: yt921x: Add support for Motorcomm YT921x
From: | David Yang <mmyangfl-AT-gmail.com> | |
To: | netdev-AT-vger.kernel.org | |
Subject: | [PATCH net-next v12 0/5] net: dsa: yt921x: Add support for Motorcomm YT921x | |
Date: | Fri, 26 Sep 2025 21:50:47 +0800 | |
Message-ID: | <20250926135057.2323738-1-mmyangfl@gmail.com> | |
Cc: | David Yang <mmyangfl-AT-gmail.com>, Andrew Lunn <andrew-AT-lunn.ch>, Vladimir Oltean <olteanv-AT-gmail.com>, "David S. Miller" <davem-AT-davemloft.net>, Eric Dumazet <edumazet-AT-google.com>, Jakub Kicinski <kuba-AT-kernel.org>, Paolo Abeni <pabeni-AT-redhat.com>, Rob Herring <robh-AT-kernel.org>, Krzysztof Kozlowski <krzk+dt-AT-kernel.org>, Conor Dooley <conor+dt-AT-kernel.org>, Heiner Kallweit <hkallweit1-AT-gmail.com>, Russell King <linux-AT-armlinux.org.uk>, Simon Horman <horms-AT-kernel.org>, devicetree-AT-vger.kernel.org, linux-kernel-AT-vger.kernel.org | |
Archive-link: | Article |
Motorcomm YT921x is a series of ethernet switches developed by Shanghai Motorcomm Electronic Technology, including: - YT9215S / YT9215RB / YT9215SC: 5 GbE phys - YT9213NB / YT9214NB: 2 GbE phys - YT9218N / YT9218MB: 8 GbE phys and up to 2 serdes interfaces. This patch adds basic support for a working DSA switch. v11: https://lore.kernel.org/r/20250922131148.1917856-1-mmyang... - make MIB_DESC cleaner - use disable_delayed_work at teardown v10: https://lore.kernel.org/r/20250919094234.1491638-1-mmyang... - fix warnings related to PHY_INTERFACE_MODE_REVSGMII v9: https://lore.kernel.org/r/20250913044404.63641-1-mmyangfl... - add PHY_INTERFACE_MODE_REVSGMII - remove mdio_verify() - remove uncessary fdb flush opeartions - rework mib reading - set port pvid by port_set_pvid() v8: https://lore.kernel.org/r/20250912024620.4032846-1-mmyang... - rework register polling - rework mib reading - other suggested code style changes v7: https://lore.kernel.org/r/20250905181728.3169479-1-mmyang... - simplify locking scheme v6: https://lore.kernel.org/r/20250824005116.2434998-1-mmyang... - handle unforwarded packets in tag driver - move register and struct definitions to header file - rework register abstraction and implement a driver lock - implement *_stats and use a periodic work to fetch MIB - remove EEPROM dump - remove sysfs attr and other debug leftovers - remove ds->user_mii_bus assignment - run selftests and fix any errors found v5: https://lore.kernel.org/r/20250820075420.1601068-1-mmyang... - use enum for reg in dt binding - fix phylink_mac_ops in the driver - fix coding style v4: https://lore.kernel.org/r/20250818162445.1317670-1-mmyang... - remove switchid from dt binding - remove hsr from tag driver - use ratelimited log in tag driver v3: https://lore.kernel.org/r/20250816052323.360788-1-mmyangf... - fix words and warnings in dt binding - remove unnecessary dev_warn_ratelimited and u64_from_u32 - remove lag and mst - check for mdio results and fix a unlocked write in conduit_state_change v2: https://lore.kernel.org/r/20250814065032.3766988-1-mmyang... - fix words in dt binding - add support for lag and mst v1: https://lore.kernel.org/r/20250808173808.273774-1-mmyangf... - fix coding style - add dt binding - add support for fdb, vlan and bridge David Yang (5): dt-bindings: ethernet-phy: add reverse SGMII phy interface type net: phy: introduce PHY_INTERFACE_MODE_REVSGMII dt-bindings: net: dsa: yt921x: Add Motorcomm YT921x switch support net: dsa: tag_yt921x: add support for Motorcomm YT921x tags net: dsa: yt921x: Add support for Motorcomm YT921x .../bindings/net/dsa/motorcomm,yt921x.yaml | 169 + .../bindings/net/ethernet-controller.yaml | 1 + drivers/net/dsa/Kconfig | 7 + drivers/net/dsa/Makefile | 1 + drivers/net/dsa/yt921x.c | 2901 +++++++++++++++++ drivers/net/dsa/yt921x.h | 505 +++ drivers/net/phy/phy-core.c | 1 + drivers/net/phy/phy_caps.c | 1 + drivers/net/phy/phylink.c | 1 + include/linux/phy.h | 4 + include/net/dsa.h | 2 + include/uapi/linux/if_ether.h | 1 + net/dsa/Kconfig | 6 + net/dsa/Makefile | 1 + net/dsa/tag_yt921x.c | 141 + 15 files changed, 3742 insertions(+) create mode 100644 Documentation/devicetree/bindings/net/dsa/motorcomm,yt921x.yaml create mode 100644 drivers/net/dsa/yt921x.c create mode 100644 drivers/net/dsa/yt921x.h create mode 100644 net/dsa/tag_yt921x.c -- 2.51.0