From nobody Fri Oct 3 13:23:15 2025 Received: from pidgin.makrotopia.org (pidgin.makrotopia.org [185.142.180.65]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A5EA5253958; Sat, 30 Aug 2025 02:32:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=185.142.180.65 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756521172; cv=none; b=nrqMllY5njIxmOwmj22AjYLVeUbBaGG45kaa6k6ajvNQiPOfq/H0G187dUaM8xelOTFWNh9RUJRjuLEGcSZ6PNiyqhB+uGQceDVFSrLh1hwm4Au32JK+lzNTT5X5XdtWj24RiewSADbkbzQlYlL4N1dSK5ilYgI21F5D+jYN8mk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756521172; c=relaxed/simple; bh=iEz7Vc2XCirHyftWHmLWnI9sQAeNWjQtdYaPpZyOH4A=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=NvtsQNUN+1VqA8+pucPdhUEpC5qFrPXviE/B6WoJyCTur2IqD6ygwNquUod87r9fR3QYxMiI2C+q7pENgrfCHCgIex2WlA9AMh02UGxsW5hKNuibk+NwZDxE2ahWWwbxbhuo9X3cfHs127xq0FlATzdCIE3E+53mFexZku+7Wis= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=makrotopia.org; spf=pass smtp.mailfrom=makrotopia.org; arc=none smtp.client-ip=185.142.180.65 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=makrotopia.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=makrotopia.org Received: from local by pidgin.makrotopia.org with esmtpsa (TLS1.3:TLS_AES_256_GCM_SHA384:256) (Exim 4.98.2) (envelope-from ) id 1usBOX-000000005vA-44Bz; Sat, 30 Aug 2025 02:32:46 +0000 Date: Sat, 30 Aug 2025 03:32:42 +0100 From: Daniel Golle To: Andrew Lunn , Vladimir Oltean , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Hauke Mehrtens , Russell King , linux-kernel@vger.kernel.org, netdev@vger.kernel.org Cc: Andreas Schirm , Lukas Stockmann , Alexander Sverdlin , Peter Christen , Avinash Jayaraman , Bing tao Xu , Liang Xu , Juraj Povazanec , "Fanni (Fang-Yi) Chan" , "Benny (Ying-Tsan) Weng" , "Livia M. Rosu" , John Crispin Subject: [PATCH net-next v4 1/6] net: dsa: lantiq_gswip: move to dedicated folder Message-ID: References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Move the lantiq_gswip driver to its own folder and update MAINTAINERS file accordingly. This is done ahead of extending the driver to support the MaxLinear GSW1xx series of standalone switch ICs, which includes adding a bunch of files. Signed-off-by: Daniel Golle Reviewed-by: Hauke Mehrtens --- v4: no changes v3: no changes v2: move driver to its own folder MAINTAINERS | 3 +-- drivers/net/dsa/Kconfig | 8 +------- drivers/net/dsa/Makefile | 2 +- drivers/net/dsa/lantiq/Kconfig | 7 +++++++ drivers/net/dsa/lantiq/Makefile | 1 + drivers/net/dsa/{ =3D> lantiq}/lantiq_gswip.c | 0 drivers/net/dsa/{ =3D> lantiq}/lantiq_gswip.h | 0 drivers/net/dsa/{ =3D> lantiq}/lantiq_pce.h | 0 8 files changed, 11 insertions(+), 10 deletions(-) create mode 100644 drivers/net/dsa/lantiq/Kconfig create mode 100644 drivers/net/dsa/lantiq/Makefile rename drivers/net/dsa/{ =3D> lantiq}/lantiq_gswip.c (100%) rename drivers/net/dsa/{ =3D> lantiq}/lantiq_gswip.h (100%) rename drivers/net/dsa/{ =3D> lantiq}/lantiq_pce.h (100%) diff --git a/MAINTAINERS b/MAINTAINERS index bce96dd254b8..e86bdad15919 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -13801,8 +13801,7 @@ M: Hauke Mehrtens L: netdev@vger.kernel.org S: Maintained F: Documentation/devicetree/bindings/net/dsa/lantiq,gswip.yaml -F: drivers/net/dsa/lantiq_gswip.c -F: drivers/net/dsa/lantiq_pce.h +F: drivers/net/dsa/lantiq/* F: drivers/net/ethernet/lantiq_xrx200.c F: net/dsa/tag_gswip.c =20 diff --git a/drivers/net/dsa/Kconfig b/drivers/net/dsa/Kconfig index 202a35d8d061..4d9af691b989 100644 --- a/drivers/net/dsa/Kconfig +++ b/drivers/net/dsa/Kconfig @@ -26,13 +26,7 @@ config NET_DSA_LOOP =20 source "drivers/net/dsa/hirschmann/Kconfig" =20 -config NET_DSA_LANTIQ_GSWIP - tristate "Lantiq / Intel GSWIP" - depends on HAS_IOMEM - select NET_DSA_TAG_GSWIP - help - This enables support for the Lantiq / Intel GSWIP 2.1 found in - the xrx200 / VR9 SoC. +source "drivers/net/dsa/lantiq/Kconfig" =20 config NET_DSA_MT7530 tristate "MediaTek MT7530 and MT7531 Ethernet switch support" diff --git a/drivers/net/dsa/Makefile b/drivers/net/dsa/Makefile index 23dbdf1a36a8..c0a534fe6eaf 100644 --- a/drivers/net/dsa/Makefile +++ b/drivers/net/dsa/Makefile @@ -6,7 +6,6 @@ ifdef CONFIG_NET_DSA_LOOP obj-$(CONFIG_FIXED_PHY) +=3D dsa_loop_bdinfo.o endif obj-$(CONFIG_NET_DSA_KS8995) +=3D ks8995.o -obj-$(CONFIG_NET_DSA_LANTIQ_GSWIP) +=3D lantiq_gswip.o obj-$(CONFIG_NET_DSA_MT7530) +=3D mt7530.o obj-$(CONFIG_NET_DSA_MT7530_MDIO) +=3D mt7530-mdio.o obj-$(CONFIG_NET_DSA_MT7530_MMIO) +=3D mt7530-mmio.o @@ -20,6 +19,7 @@ obj-$(CONFIG_NET_DSA_VITESSE_VSC73XX_PLATFORM) +=3D vites= se-vsc73xx-platform.o obj-$(CONFIG_NET_DSA_VITESSE_VSC73XX_SPI) +=3D vitesse-vsc73xx-spi.o obj-y +=3D b53/ obj-y +=3D hirschmann/ +obj-y +=3D lantiq/ obj-y +=3D microchip/ obj-y +=3D mv88e6xxx/ obj-y +=3D ocelot/ diff --git a/drivers/net/dsa/lantiq/Kconfig b/drivers/net/dsa/lantiq/Kconfig new file mode 100644 index 000000000000..1cb053c823f7 --- /dev/null +++ b/drivers/net/dsa/lantiq/Kconfig @@ -0,0 +1,7 @@ +config NET_DSA_LANTIQ_GSWIP + tristate "Lantiq / Intel GSWIP" + depends on HAS_IOMEM + select NET_DSA_TAG_GSWIP + help + This enables support for the Lantiq / Intel GSWIP 2.1 found in + the xrx200 / VR9 SoC. diff --git a/drivers/net/dsa/lantiq/Makefile b/drivers/net/dsa/lantiq/Makef= ile new file mode 100644 index 000000000000..849f85ebebd6 --- /dev/null +++ b/drivers/net/dsa/lantiq/Makefile @@ -0,0 +1 @@ +obj-$(CONFIG_NET_DSA_LANTIQ_GSWIP) +=3D lantiq_gswip.o diff --git a/drivers/net/dsa/lantiq_gswip.c b/drivers/net/dsa/lantiq/lantiq= _gswip.c similarity index 100% rename from drivers/net/dsa/lantiq_gswip.c rename to drivers/net/dsa/lantiq/lantiq_gswip.c diff --git a/drivers/net/dsa/lantiq_gswip.h b/drivers/net/dsa/lantiq/lantiq= _gswip.h similarity index 100% rename from drivers/net/dsa/lantiq_gswip.h rename to drivers/net/dsa/lantiq/lantiq_gswip.h diff --git a/drivers/net/dsa/lantiq_pce.h b/drivers/net/dsa/lantiq/lantiq_p= ce.h similarity index 100% rename from drivers/net/dsa/lantiq_pce.h rename to drivers/net/dsa/lantiq/lantiq_pce.h --=20 2.51.0 From nobody Fri Oct 3 13:23:15 2025 Received: from pidgin.makrotopia.org (pidgin.makrotopia.org [185.142.180.65]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4E39B6A33B; Sat, 30 Aug 2025 02:33:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=185.142.180.65 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756521189; cv=none; b=XJtEtaTPqpv9qUozWEAFxQdNs9XoCOwh+2BnytfYQTK2EAwU2Om1+JNtgMYvH4UDwmHb5kukZ6R03QzfR7lq0XQsbOnbceElHBa453l6vxFYXiz8MF4lbzEjB9+Vd97nN1LZVQEwfgE/EZ5DErQkFR4oobX3HP0W26+vgi+hskE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756521189; c=relaxed/simple; bh=Aiix0wd3aN1HL1lzKifMGpHRS7aRk9w71FF05DOlACY=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=sEtlLkGFN4FaRw9oALVaJOX1DRr4AQ0cmzkBSxjTl6CXg0Tgu12IhqfzzLYNG13+otNzcWnudhe5iw1/Nbi0PDZM8Lq7KjCcb8UPOI2uOKCmKmFjkIl0+XXGBiq1+MeDxwOTfUPtU/WVp24Gxzl7hd/no2r5n8oa1jqkWHaEF2E= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=makrotopia.org; spf=pass smtp.mailfrom=makrotopia.org; arc=none smtp.client-ip=185.142.180.65 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=makrotopia.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=makrotopia.org Received: from local by pidgin.makrotopia.org with esmtpsa (TLS1.3:TLS_AES_256_GCM_SHA384:256) (Exim 4.98.2) (envelope-from ) id 1usBOp-000000005va-2UPJ; Sat, 30 Aug 2025 02:33:03 +0000 Date: Sat, 30 Aug 2025 03:33:00 +0100 From: Daniel Golle To: Andrew Lunn , Vladimir Oltean , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Hauke Mehrtens , Russell King , linux-kernel@vger.kernel.org, netdev@vger.kernel.org Cc: Andreas Schirm , Lukas Stockmann , Alexander Sverdlin , Peter Christen , Avinash Jayaraman , Bing tao Xu , Liang Xu , Juraj Povazanec , "Fanni (Fang-Yi) Chan" , "Benny (Ying-Tsan) Weng" , "Livia M. Rosu" , John Crispin Subject: [PATCH net-next v4 2/6] net: dsa: lantiq_gswip: support model-specific mac_select_pcs() Message-ID: <7668666aa51e43e7f2a6cbcf36eb5a0a3020998f.1756520811.git.daniel@makrotopia.org> References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Call mac_select_pcs() function if provided in struct gswip_hwinfo. The MaxLinear GSW1xx series got one port wired to a SerDes PCS and PHY which can do 1000Base-X, 2500Base-X and SGMII. Support for the SerDes port will be provided using phylink_pcs, so provide a convenient way for mac_select_pcs() to differ based on the hardware model. Signed-off-by: Daniel Golle Reviewed-by: Hauke Mehrtens --- v3: no changes v2: fix accidental change from 'static const struct' to 'const struct' reported by the kbuild bot drivers/net/dsa/lantiq/lantiq_gswip.c | 19 ++++++++++++++++--- drivers/net/dsa/lantiq/lantiq_gswip.h | 3 +++ 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/drivers/net/dsa/lantiq/lantiq_gswip.c b/drivers/net/dsa/lantiq= /lantiq_gswip.c index 67919c3935e4..acb6996356e9 100644 --- a/drivers/net/dsa/lantiq/lantiq_gswip.c +++ b/drivers/net/dsa/lantiq/lantiq_gswip.c @@ -1592,10 +1592,23 @@ static int gswip_get_sset_count(struct dsa_switch *= ds, int port, int sset) return ARRAY_SIZE(gswip_rmon_cnt); } =20 +static struct phylink_pcs *gswip_phylink_mac_select_pcs(struct phylink_con= fig *config, + phy_interface_t interface) +{ + struct dsa_port *dp =3D dsa_phylink_to_port(config); + struct gswip_priv *priv =3D dp->ds->priv; + + if (priv->hw_info->mac_select_pcs) + return priv->hw_info->mac_select_pcs(config, interface); + + return NULL; +} + static const struct phylink_mac_ops gswip_phylink_mac_ops =3D { - .mac_config =3D gswip_phylink_mac_config, - .mac_link_down =3D gswip_phylink_mac_link_down, - .mac_link_up =3D gswip_phylink_mac_link_up, + .mac_config =3D gswip_phylink_mac_config, + .mac_link_down =3D gswip_phylink_mac_link_down, + .mac_link_up =3D gswip_phylink_mac_link_up, + .mac_select_pcs =3D gswip_phylink_mac_select_pcs, }; =20 static const struct dsa_switch_ops gswip_switch_ops =3D { diff --git a/drivers/net/dsa/lantiq/lantiq_gswip.h b/drivers/net/dsa/lantiq= /lantiq_gswip.h index 620c2d560cbe..19bbe6fddf04 100644 --- a/drivers/net/dsa/lantiq/lantiq_gswip.h +++ b/drivers/net/dsa/lantiq/lantiq_gswip.h @@ -4,6 +4,7 @@ =20 #include #include +#include #include #include #include @@ -237,6 +238,8 @@ struct gswip_hw_info { enum dsa_tag_protocol tag_protocol; void (*phylink_get_caps)(struct dsa_switch *ds, int port, struct phylink_config *config); + struct phylink_pcs *(*mac_select_pcs)(struct phylink_config *config, + phy_interface_t interface); }; =20 struct gswip_gphy_fw { --=20 2.51.0 From nobody Fri Oct 3 13:23:15 2025 Received: from pidgin.makrotopia.org (pidgin.makrotopia.org [185.142.180.65]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 270E66A33B; Sat, 30 Aug 2025 02:33:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=185.142.180.65 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756521237; cv=none; b=EYh/fPynYInJgdSgGHk7CRTFHQHUq+wt5Gx4XNc0GfEE0TIeYHbJYRmiQtOPQIjFxgI8N+rZcoXIOsq20dSiEPCFNcFNAu1NCBgwp9ToDC9BHFYso7tUTPDxzeHB8NSNElfL+6GIFfU3dnQoPd/5rlIdjvhuxUgD+a2H//1hGHY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756521237; c=relaxed/simple; bh=FDDrR98CHZx73ts/IpEf492WeJIXZC0Efjy1lq2mZC8=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=LeGG1BT+7cbpepVAF8JVMuLxmakTARJRD/LymBFLBSldYfb21/mBNo9PbSo32+Y+xosK1mZiyXQoQYbSB5mDXNmZeb8ud2xmIBvXsw+405xY43vQTQURWb8PhB0oDOJRvf6msfQyvy/d1B4SvQ4yYV7HHRvIvCb4ETXVH+8qKZ0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=makrotopia.org; spf=pass smtp.mailfrom=makrotopia.org; arc=none smtp.client-ip=185.142.180.65 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=makrotopia.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=makrotopia.org Received: from local by pidgin.makrotopia.org with esmtpsa (TLS1.3:TLS_AES_256_GCM_SHA384:256) (Exim 4.98.2) (envelope-from ) id 1usBPb-000000005wR-2oG6; Sat, 30 Aug 2025 02:33:51 +0000 Date: Sat, 30 Aug 2025 03:33:48 +0100 From: Daniel Golle To: Andrew Lunn , Vladimir Oltean , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Hauke Mehrtens , Russell King , linux-kernel@vger.kernel.org, netdev@vger.kernel.org Cc: Andreas Schirm , Lukas Stockmann , Alexander Sverdlin , Peter Christen , Avinash Jayaraman , Bing tao Xu , Liang Xu , Juraj Povazanec , "Fanni (Fang-Yi) Chan" , "Benny (Ying-Tsan) Weng" , "Livia M. Rosu" , John Crispin Subject: [PATCH net-next v4 3/6] net: dsa: lantiq_gswip: ignore SerDes modes in phylink_mac_config() Message-ID: References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" We can safely ignore SerDes interface modes 1000Base-X, 2500Base-X and SGMII in phylink_mac_config() as they are being taken care of by the PCS and the SGMII port anyway doesn't have MII_CFG and MII_PCDU registers and hence gswip_phylink_mac_config() is already a no-op apart from outputing a misleading error message. Return early in case of SerDes interface modes to avoid printing that error message. Signed-off-by: Daniel Golle Reviewed-by: Hauke Mehrtens --- v4: no changes v3: improve commit message v2: no changes drivers/net/dsa/lantiq/lantiq_gswip.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/net/dsa/lantiq/lantiq_gswip.c b/drivers/net/dsa/lantiq= /lantiq_gswip.c index acb6996356e9..3e2a54569828 100644 --- a/drivers/net/dsa/lantiq/lantiq_gswip.c +++ b/drivers/net/dsa/lantiq/lantiq_gswip.c @@ -1444,6 +1444,10 @@ static void gswip_phylink_mac_config(struct phylink_= config *config, miicfg |=3D GSWIP_MII_CFG_LDCLKDIS; =20 switch (state->interface) { + case PHY_INTERFACE_MODE_SGMII: + case PHY_INTERFACE_MODE_1000BASEX: + case PHY_INTERFACE_MODE_2500BASEX: + return; case PHY_INTERFACE_MODE_MII: case PHY_INTERFACE_MODE_INTERNAL: miicfg |=3D GSWIP_MII_CFG_MODE_MIIM; --=20 2.51.0 From nobody Fri Oct 3 13:23:15 2025 Received: from pidgin.makrotopia.org (pidgin.makrotopia.org [185.142.180.65]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C655B246BB4; Sat, 30 Aug 2025 02:34:21 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=185.142.180.65 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756521263; cv=none; b=khTbRNaQvuBgnLm7BvMJJoc0Z6VYG7ZhkmbQI0W5yvk+2s3xoXApUFkx0rQkQshJopjIUwVUWAAZhQSIw9QWT0hJKCQ0rhIvsbXKULlTQBCMZxMGiWCtDxfa5QiQ0QT94nmCkJI3IRDXpB/J729s0zaSGHWOyjbsYoYQIZL4pCA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756521263; c=relaxed/simple; bh=deyKaqoIbDYPp+TcOkRTM7HEptnmgyJYvqNyWoPEjOI=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=nWLHtDOV5nXyrlaAptRuOZY9PjqRCLUz6M5NVP9ScsgNEqwri/Cz5kw4KG83X12vb+Ydi8QaULbg41Chjr0POMgkEpk2tvSTz7gsJ1BCtHi2uyOS4Z0IrFOP+DzRtzpyezXcCa71lNs1kN1B8GHSZVGdXcQNDlul2K3ciSspthk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=makrotopia.org; spf=pass smtp.mailfrom=makrotopia.org; arc=none smtp.client-ip=185.142.180.65 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=makrotopia.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=makrotopia.org Received: from local by pidgin.makrotopia.org with esmtpsa (TLS1.3:TLS_AES_256_GCM_SHA384:256) (Exim 4.98.2) (envelope-from ) id 1usBQ1-000000005wr-0gj1; Sat, 30 Aug 2025 02:34:17 +0000 Date: Sat, 30 Aug 2025 03:34:13 +0100 From: Daniel Golle To: Andrew Lunn , Vladimir Oltean , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Hauke Mehrtens , Russell King , linux-kernel@vger.kernel.org, netdev@vger.kernel.org Cc: Andreas Schirm , Lukas Stockmann , Alexander Sverdlin , Peter Christen , Avinash Jayaraman , Bing tao Xu , Liang Xu , Juraj Povazanec , "Fanni (Fang-Yi) Chan" , "Benny (Ying-Tsan) Weng" , "Livia M. Rosu" , John Crispin Subject: [PATCH net-next v4 4/6] net: dsa: lantiq_gswip: support offset of MII registers Message-ID: <88145164c1f948e4ae9b04706f408359cf54223c.1756520811.git.daniel@makrotopia.org> References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" The MaxLinear GSW1xx family got a single (R)(G)MII port at index 5 but the registers MII_PCDU and MII_CFG are those of port 0. Allow applying an offset for the port index to access those registers. Signed-off-by: Daniel Golle Reviewed-by: Hauke Mehrtens --- v4: fix syntax error introduced in v3 v3: explicitely initialize mii_port_reg_offset to 0 v2: no changes drivers/net/dsa/lantiq/lantiq_gswip.c | 14 ++++++++++++-- drivers/net/dsa/lantiq/lantiq_gswip.h | 1 + 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/drivers/net/dsa/lantiq/lantiq_gswip.c b/drivers/net/dsa/lantiq= /lantiq_gswip.c index 3e2a54569828..4d7c7d933c92 100644 --- a/drivers/net/dsa/lantiq/lantiq_gswip.c +++ b/drivers/net/dsa/lantiq/lantiq_gswip.c @@ -183,21 +183,29 @@ static void gswip_mii_mask(struct gswip_priv *priv, u= 32 clear, u32 set, static void gswip_mii_mask_cfg(struct gswip_priv *priv, u32 clear, u32 set, int port) { + int reg_port; + /* MII_CFG register only exists for MII ports */ if (!(priv->hw_info->mii_ports & BIT(port))) return; =20 - gswip_mii_mask(priv, clear, set, GSWIP_MII_CFGp(port)); + reg_port =3D port + priv->hw_info->mii_port_reg_offset; + + gswip_mii_mask(priv, clear, set, GSWIP_MII_CFGp(reg_port)); } =20 static void gswip_mii_mask_pcdu(struct gswip_priv *priv, u32 clear, u32 se= t, int port) { + int reg_port; + /* MII_PCDU register only exists for MII ports */ if (!(priv->hw_info->mii_ports & BIT(port))) return; =20 - switch (port) { + reg_port =3D port + priv->hw_info->mii_port_reg_offset; + + switch (reg_port) { case 0: gswip_mii_mask(priv, clear, set, GSWIP_MII_PCDU0); break; @@ -2027,6 +2035,7 @@ static const struct gswip_hw_info gswip_xrx200 =3D { .max_ports =3D 7, .allowed_cpu_ports =3D BIT(6), .mii_ports =3D BIT(0) | BIT(1) | BIT(5), + .mii_port_reg_offset =3D 0, .phylink_get_caps =3D gswip_xrx200_phylink_get_caps, .pce_microcode =3D &gswip_pce_microcode, .pce_microcode_size =3D ARRAY_SIZE(gswip_pce_microcode), @@ -2037,6 +2046,7 @@ static const struct gswip_hw_info gswip_xrx300 =3D { .max_ports =3D 7, .allowed_cpu_ports =3D BIT(6), .mii_ports =3D BIT(0) | BIT(5), + .mii_port_reg_offset =3D 0, .phylink_get_caps =3D gswip_xrx300_phylink_get_caps, .pce_microcode =3D &gswip_pce_microcode, .pce_microcode_size =3D ARRAY_SIZE(gswip_pce_microcode), diff --git a/drivers/net/dsa/lantiq/lantiq_gswip.h b/drivers/net/dsa/lantiq= /lantiq_gswip.h index 19bbe6fddf04..2df9c8e8cfd0 100644 --- a/drivers/net/dsa/lantiq/lantiq_gswip.h +++ b/drivers/net/dsa/lantiq/lantiq_gswip.h @@ -233,6 +233,7 @@ struct gswip_hw_info { int max_ports; unsigned int allowed_cpu_ports; unsigned int mii_ports; + int mii_port_reg_offset; const struct gswip_pce_microcode (*pce_microcode)[]; size_t pce_microcode_size; enum dsa_tag_protocol tag_protocol; --=20 2.51.0 From nobody Fri Oct 3 13:23:15 2025 Received: from pidgin.makrotopia.org (pidgin.makrotopia.org [185.142.180.65]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E0F7A255F2D; Sat, 30 Aug 2025 02:34:31 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=185.142.180.65 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756521273; cv=none; b=fUvGTT7MN0NwCrEez6fo7ci59z1YeZRJKZ77+/Tds07vcbbGF5f+zEOSR1+kc7FyiIHgXGTek0MhzeG5fzrR2JvPKZa658/3wLc++1crmsHpPHgTp4JEApr5+diymoIIZOmOIGwG8S0oNkaQ92A4oFoGq5wQX48fj1SGeEuh2tM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756521273; c=relaxed/simple; bh=zZrzbEYXKnp9RaABqFj03QqtBzNpyYiXOKv5g9N5GY8=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=oBqgs31hOTYIkO5YgUFYD/oDXaEtwODQu3krW+veJGtqncOZ0eBaAn0lH2jP7ai4ypH0S7EwNPIA3vXp5GXOUXGIyrzCx0Mlp9yLA55eI2R0k8wn1j6OUf4cUnKMzocEMTvXOgk6ciigmxDrTaR208+f3L93f9MtrCZyQTb8CzI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=makrotopia.org; spf=pass smtp.mailfrom=makrotopia.org; arc=none smtp.client-ip=185.142.180.65 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=makrotopia.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=makrotopia.org Received: from local by pidgin.makrotopia.org with esmtpsa (TLS1.3:TLS_AES_256_GCM_SHA384:256) (Exim 4.98.2) (envelope-from ) id 1usBQB-000000005x5-1fiO; Sat, 30 Aug 2025 02:34:27 +0000 Date: Sat, 30 Aug 2025 03:34:23 +0100 From: Daniel Golle To: Andrew Lunn , Vladimir Oltean , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Hauke Mehrtens , Russell King , linux-kernel@vger.kernel.org, netdev@vger.kernel.org Cc: Andreas Schirm , Lukas Stockmann , Alexander Sverdlin , Peter Christen , Avinash Jayaraman , Bing tao Xu , Liang Xu , Juraj Povazanec , "Fanni (Fang-Yi) Chan" , "Benny (Ying-Tsan) Weng" , "Livia M. Rosu" , John Crispin Subject: [PATCH net-next v4 5/6] net: dsa: lantiq_gswip: support standard MDIO node name Message-ID: <5a9a3d659ef0d8b7eca37fb69ec87ff5a3192820.1756520811.git.daniel@makrotopia.org> References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Instead of matching against the child node's compatible string also support locating the node of the device tree node of the MDIO bus in the standard way by referencing the node name ("mdio"). Signed-off-by: Daniel Golle Reviewed-by: Andrew Lunn Reviewed-by: Alexander Sverdlin Reviewed-by: Hauke Mehrtens --- v4: no changes v3: no changes v2: no changes drivers/net/dsa/lantiq/lantiq_gswip.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/net/dsa/lantiq/lantiq_gswip.c b/drivers/net/dsa/lantiq= /lantiq_gswip.c index 4d7c7d933c92..43f83c0736d1 100644 --- a/drivers/net/dsa/lantiq/lantiq_gswip.c +++ b/drivers/net/dsa/lantiq/lantiq_gswip.c @@ -286,6 +286,9 @@ static int gswip_mdio(struct gswip_priv *priv) int err =3D 0; =20 mdio_np =3D of_get_compatible_child(switch_np, "lantiq,xrx200-mdio"); + if (!mdio_np) + mdio_np =3D of_get_child_by_name(switch_np, "mdio"); + if (!of_device_is_available(mdio_np)) goto out_put_node; =20 --=20 2.51.0 From nobody Fri Oct 3 13:23:15 2025 Received: from pidgin.makrotopia.org (pidgin.makrotopia.org [185.142.180.65]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id DB77D257829; Sat, 30 Aug 2025 02:34:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=185.142.180.65 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756521297; cv=none; b=H77c2qQu737GVbrJkgZZ+9agkBSNS0Y/0+InRT+MUQXPeM2IBcjn6GaXoRY1VwTXF53xce6Ax2VYBROZk2Zk3X/zMbPrn6JUixWOQMe4uN7iP4q6P6+hBHRE7BDu+3KAn7xl4MuaJM2+Ao1sYUYlZbyL7kxGj9AeHwkYx/AvI3A= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756521297; c=relaxed/simple; bh=/lgXHRubUP/8cxoFx2QUkE7QqbJ/z4M/g68O76DkIVg=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=kfhS3FiIb8P70jzP27IDG3VWPFz6RURAbmcrVIwppGl0pwIonPb3vW8fDGrYoszAVAP6KKitJukl0b0afrtLG9Ms8IQHiLkxXz5oEY8SdFFxDLtm8dLT57bGZlByw6rOcq6qP3rmOSMOvo0AzMEeaKguMlyoPpbn5pFhlQXAn9A= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=makrotopia.org; spf=pass smtp.mailfrom=makrotopia.org; arc=none smtp.client-ip=185.142.180.65 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=makrotopia.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=makrotopia.org Received: from local by pidgin.makrotopia.org with esmtpsa (TLS1.3:TLS_AES_256_GCM_SHA384:256) (Exim 4.98.2) (envelope-from ) id 1usBQZ-000000005xi-1Pyf; Sat, 30 Aug 2025 02:34:51 +0000 Date: Sat, 30 Aug 2025 03:34:48 +0100 From: Daniel Golle To: Andrew Lunn , Vladimir Oltean , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Hauke Mehrtens , Russell King , linux-kernel@vger.kernel.org, netdev@vger.kernel.org Cc: Andreas Schirm , Lukas Stockmann , Alexander Sverdlin , Peter Christen , Avinash Jayaraman , Bing tao Xu , Liang Xu , Juraj Povazanec , "Fanni (Fang-Yi) Chan" , "Benny (Ying-Tsan) Weng" , "Livia M. Rosu" , John Crispin Subject: [PATCH net-next v4 6/6] net: dsa: lantiq_gswip: move MDIO bus registration to .setup() Message-ID: <2650602042c0bfdc5664b88d59071ed4dca96c26.1756520811.git.daniel@makrotopia.org> References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Instead of registering the switch MDIO bus in the probe() function, move the call to gswip_mdio() into the .setup() DSA switch op, so it can be reused independently of the probe() function. Signed-off-by: Daniel Golle Reviewed-by: Andrew Lunn Reviewed-by: Hauke Mehrtens --- v4: no changes v3: no changes v2: no changes drivers/net/dsa/lantiq/lantiq_gswip.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/drivers/net/dsa/lantiq/lantiq_gswip.c b/drivers/net/dsa/lantiq= /lantiq_gswip.c index 43f83c0736d1..1e991d7bca0b 100644 --- a/drivers/net/dsa/lantiq/lantiq_gswip.c +++ b/drivers/net/dsa/lantiq/lantiq_gswip.c @@ -627,6 +627,13 @@ static int gswip_setup(struct dsa_switch *ds) /* Configure the MDIO Clock 2.5 MHz */ gswip_mdio_mask(priv, 0xff, 0x09, GSWIP_MDIO_MDC_CFG1); =20 + /* bring up the mdio bus */ + err =3D gswip_mdio(priv); + if (err) { + dev_err(priv->dev, "mdio bus setup failed\n"); + return err; + } + /* Disable the xMII interface and clear it's isolation bit */ for (i =3D 0; i < priv->hw_info->max_ports; i++) gswip_mii_mask_cfg(priv, @@ -1973,13 +1980,6 @@ static int gswip_probe(struct platform_device *pdev) "gphy fw probe failed\n"); } =20 - /* bring up the mdio bus */ - err =3D gswip_mdio(priv); - if (err) { - dev_err_probe(dev, err, "mdio probe failed\n"); - goto gphy_fw_remove; - } - err =3D dsa_register_switch(priv->ds); if (err) { dev_err_probe(dev, err, "dsa switch registration failed\n"); --=20 2.51.0