Received: by 2002:a25:683:0:0:0:0:0 with SMTP id 125csp299614ybg; Fri, 12 Jun 2020 01:41:08 -0700 (PDT) X-Google-Smtp-Source: ABdhPJywiOoi/0J4EDz0ZNfqaLx/mdVKjkjNTRbux0JTy0leGq+/Z6Wje2y5wQgOlNsVwIMYEOvT X-Received: by 2002:a17:906:95c2:: with SMTP id n2mr11653607ejy.339.1591951268373; Fri, 12 Jun 2020 01:41:08 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1591951268; cv=none; d=google.com; s=arc-20160816; b=S1rNcdaEgZa70GU5isu/hDZvy+jzGsl1Kakf+dH+2x7BaSnmUGEBzi25I3B4iOq2PP sPV8eKdE73+pFWKgwdFOs3Dss03KIel/duLCCKbg/kcZEDzKcIk1KGxd1rrvUUeFRfyy qIGKJm+NlU/+WGuvC8LRVL8AntjGqT02bWPmPuCaVnx5Y3z7IJw27eM+RqANghWOkaDo hk7DVyfj2xP0TpYUtpBOHYsTW8UTBwUi3jhcUlaQp9pzuHnkoXMH1RAqESrBlIVXUGjH mKr4C6jdKhm4taXSSxluedv809hASvJWkMLabsqkD3IG6atakQfnHfzaib3sEZbTlTIT 1C0Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from; bh=ymLK7KQAGKRjNkgXFJ57vhN7JUTGCAHpok2Fpu2shn4=; b=Vs6wWbCJBBujgYNFJXwuvjWkKlcPGsNN4bSMwn4VQnXdHXqK6HZGIm6BvWIWMaiIqd 32D8ceVB8qqvBh6pe8hx3F2JjZMqlKD1NTi1+cOhAsdbzoGmxtZIykYDFi5Osi5GXchz QsLcO3IyONvkQUwbHvUgM+DXsyiNtiApFG0Xivzad+a13ylzY/TbSes4fdUVe36fi2Jt K3C7lGZ7PTVlP1oaQZeiwCQEhgqO718w5mYK7yJmnJJxueGCZUBi9Op9SNwCSnacH62Z zeV4/FbjqDtXWZTVi2UqTCGavVNCfU+q2KVHNScvL1rOA1VXGB5P0+ofVG5gy63zkzrE ZISg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id m19si3488100ejr.547.2020.06.12.01.40.45; Fri, 12 Jun 2020 01:41:08 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726371AbgFLIi6 (ORCPT + 99 others); Fri, 12 Jun 2020 04:38:58 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58296 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726319AbgFLIi5 (ORCPT ); Fri, 12 Jun 2020 04:38:57 -0400 Received: from metis.ext.pengutronix.de (metis.ext.pengutronix.de [IPv6:2001:67c:670:201:290:27ff:fe1d:cc33]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id BAF31C08C5C1 for ; Fri, 12 Jun 2020 01:38:56 -0700 (PDT) Received: from dude.hi.pengutronix.de ([2001:67c:670:100:1d::7]) by metis.ext.pengutronix.de with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1jjfDD-0001VK-4z; Fri, 12 Jun 2020 10:38:55 +0200 Received: from sha by dude.hi.pengutronix.de with local (Exim 4.92) (envelope-from ) id 1jjfDC-0007nf-8W; Fri, 12 Jun 2020 10:38:54 +0200 From: Sascha Hauer To: netdev@vger.kernel.org Cc: linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Thomas Petazzoni , kernel@pengutronix.de, Sascha Hauer Subject: [PATCH v2] net: mvneta: Fix Serdes configuration for 2.5Gbps modes Date: Fri, 12 Jun 2020 10:38:47 +0200 Message-Id: <20200612083847.29942-1-s.hauer@pengutronix.de> X-Mailer: git-send-email 2.27.0 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-SA-Exim-Connect-IP: 2001:67c:670:100:1d::7 X-SA-Exim-Mail-From: sha@pengutronix.de X-SA-Exim-Scanned: No (on metis.ext.pengutronix.de); SAEximRunCond expanded to false X-PTX-Original-Recipient: linux-kernel@vger.kernel.org Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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 --- 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