From: Sascha Hauer <s.hauer@pengutronix.de> To: netdev@vger.kernel.org Cc: linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Thomas Petazzoni <thomas.petazzoni@bootlin.com>, kernel@pengutronix.de, Sascha Hauer <s.hauer@pengutronix.de> Subject: [PATCH v2] net: mvneta: Fix Serdes configuration for 2.5Gbps modes Date: Fri, 12 Jun 2020 10:38:47 +0200 [thread overview] Message-ID: <20200612083847.29942-1-s.hauer@pengutronix.de> (raw) The Marvell MVNETA Ethernet controller supports a 2.5Gbps SGMII mode called DRSGMII. Depending on the Port MAC Control Register0 PortType setting this seems to be either an overclocked SGMII mode or 2500BaseX. This patch adds the necessary Serdes Configuration setting for the 2.5Gbps modes. There is no phy interface mode define for overclocked SGMII, so only 2500BaseX is handled for now. As phy_interface_mode_is_8023z() returns true for both PHY_INTERFACE_MODE_1000BASEX and PHY_INTERFACE_MODE_2500BASEX we explicitly test for 1000BaseX instead of using phy_interface_mode_is_8023z() to differentiate the different possibilities. Fixes: da58a931f248f ("net: mvneta: Add support for 2500Mbps SGMII") Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de> --- Changes since v1: - Add Fixes: tag drivers/net/ethernet/marvell/mvneta.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/drivers/net/ethernet/marvell/mvneta.c b/drivers/net/ethernet/marvell/mvneta.c index 51889770958d8..3b13048931412 100644 --- a/drivers/net/ethernet/marvell/mvneta.c +++ b/drivers/net/ethernet/marvell/mvneta.c @@ -109,6 +109,7 @@ #define MVNETA_SERDES_CFG 0x24A0 #define MVNETA_SGMII_SERDES_PROTO 0x0cc7 #define MVNETA_QSGMII_SERDES_PROTO 0x0667 +#define MVNETA_DRSGMII_SERDES_PROTO 0x1107 #define MVNETA_TYPE_PRIO 0x24bc #define MVNETA_FORCE_UNI BIT(21) #define MVNETA_TXQ_CMD_1 0x24e4 @@ -4966,8 +4967,10 @@ static int mvneta_port_power_up(struct mvneta_port *pp, int phy_mode) if (phy_mode == PHY_INTERFACE_MODE_QSGMII) mvreg_write(pp, MVNETA_SERDES_CFG, MVNETA_QSGMII_SERDES_PROTO); else if (phy_mode == PHY_INTERFACE_MODE_SGMII || - phy_interface_mode_is_8023z(phy_mode)) + phy_mode == PHY_INTERFACE_MODE_1000BASEX) mvreg_write(pp, MVNETA_SERDES_CFG, MVNETA_SGMII_SERDES_PROTO); + else if (phy_mode == PHY_INTERFACE_MODE_2500BASEX) + mvreg_write(pp, MVNETA_SERDES_CFG, MVNETA_DRSGMII_SERDES_PROTO); else if (!phy_interface_mode_is_rgmii(phy_mode)) return -EINVAL; -- 2.27.0
WARNING: multiple messages have this Message-ID (diff)
From: Sascha Hauer <s.hauer@pengutronix.de> To: netdev@vger.kernel.org Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>, Sascha Hauer <s.hauer@pengutronix.de>, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, kernel@pengutronix.de Subject: [PATCH v2] net: mvneta: Fix Serdes configuration for 2.5Gbps modes Date: Fri, 12 Jun 2020 10:38:47 +0200 [thread overview] Message-ID: <20200612083847.29942-1-s.hauer@pengutronix.de> (raw) The Marvell MVNETA Ethernet controller supports a 2.5Gbps SGMII mode called DRSGMII. Depending on the Port MAC Control Register0 PortType setting this seems to be either an overclocked SGMII mode or 2500BaseX. This patch adds the necessary Serdes Configuration setting for the 2.5Gbps modes. There is no phy interface mode define for overclocked SGMII, so only 2500BaseX is handled for now. As phy_interface_mode_is_8023z() returns true for both PHY_INTERFACE_MODE_1000BASEX and PHY_INTERFACE_MODE_2500BASEX we explicitly test for 1000BaseX instead of using phy_interface_mode_is_8023z() to differentiate the different possibilities. Fixes: da58a931f248f ("net: mvneta: Add support for 2500Mbps SGMII") Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de> --- Changes since v1: - Add Fixes: tag drivers/net/ethernet/marvell/mvneta.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/drivers/net/ethernet/marvell/mvneta.c b/drivers/net/ethernet/marvell/mvneta.c index 51889770958d8..3b13048931412 100644 --- a/drivers/net/ethernet/marvell/mvneta.c +++ b/drivers/net/ethernet/marvell/mvneta.c @@ -109,6 +109,7 @@ #define MVNETA_SERDES_CFG 0x24A0 #define MVNETA_SGMII_SERDES_PROTO 0x0cc7 #define MVNETA_QSGMII_SERDES_PROTO 0x0667 +#define MVNETA_DRSGMII_SERDES_PROTO 0x1107 #define MVNETA_TYPE_PRIO 0x24bc #define MVNETA_FORCE_UNI BIT(21) #define MVNETA_TXQ_CMD_1 0x24e4 @@ -4966,8 +4967,10 @@ static int mvneta_port_power_up(struct mvneta_port *pp, int phy_mode) if (phy_mode == PHY_INTERFACE_MODE_QSGMII) mvreg_write(pp, MVNETA_SERDES_CFG, MVNETA_QSGMII_SERDES_PROTO); else if (phy_mode == PHY_INTERFACE_MODE_SGMII || - phy_interface_mode_is_8023z(phy_mode)) + phy_mode == PHY_INTERFACE_MODE_1000BASEX) mvreg_write(pp, MVNETA_SERDES_CFG, MVNETA_SGMII_SERDES_PROTO); + else if (phy_mode == PHY_INTERFACE_MODE_2500BASEX) + mvreg_write(pp, MVNETA_SERDES_CFG, MVNETA_DRSGMII_SERDES_PROTO); else if (!phy_interface_mode_is_rgmii(phy_mode)) return -EINVAL; -- 2.27.0 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next reply other threads:[~2020-06-12 8:39 UTC|newest] Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-06-12 8:38 Sascha Hauer [this message] 2020-06-12 8:38 ` [PATCH v2] net: mvneta: Fix Serdes configuration for 2.5Gbps modes Sascha Hauer 2020-06-12 8:47 ` Russell King - ARM Linux admin 2020-06-12 8:47 ` Russell King - ARM Linux admin 2020-06-12 10:01 ` Russell King - ARM Linux admin 2020-06-12 10:01 ` Russell King - ARM Linux admin 2020-06-12 10:18 ` Russell King - ARM Linux admin 2020-06-12 10:18 ` Russell King - ARM Linux admin 2020-06-12 10:42 ` Russell King - ARM Linux admin 2020-06-12 10:42 ` Russell King - ARM Linux admin 2020-06-12 11:22 ` Russell King - ARM Linux admin 2020-06-12 11:22 ` Russell King - ARM Linux admin 2020-06-12 11:30 ` Russell King - ARM Linux admin 2020-06-12 11:30 ` Russell King - ARM Linux admin 2020-06-12 11:52 ` Sascha Hauer 2020-06-12 11:52 ` Sascha Hauer 2020-06-12 13:02 ` Russell King - ARM Linux admin 2020-06-12 13:02 ` Russell King - ARM Linux admin 2020-06-12 12:06 ` Sascha Hauer 2020-06-12 12:06 ` Sascha Hauer 2020-06-12 12:12 ` Russell King - ARM Linux admin 2020-06-12 12:12 ` Russell King - ARM Linux admin 2020-06-12 10:15 ` Sascha Hauer 2020-06-12 10:15 ` Sascha Hauer
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20200612083847.29942-1-s.hauer@pengutronix.de \ --to=s.hauer@pengutronix.de \ --cc=kernel@pengutronix.de \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-kernel@vger.kernel.org \ --cc=netdev@vger.kernel.org \ --cc=thomas.petazzoni@bootlin.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.