From patchwork Thu Feb 22 10:31:16 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?b?SsOpcsOpbWllIERhdXRoZXJpYmVz?= X-Patchwork-Id: 204674 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7300:aa16:b0:108:e6aa:91d0 with SMTP id by22csp161546dyb; Thu, 22 Feb 2024 02:33:02 -0800 (PST) X-Forwarded-Encrypted: i=3; AJvYcCUJ/9LVoq0w2pzpdH9kD55k0S7IsMgF2wZcOdduGz0J/tj20ho14AY/uAeAFjG1w7oqMHnzvy6CH25mbcQ2T0N7Enf2jg== X-Google-Smtp-Source: AGHT+IEdrfRD6yTXuD+lud5+nQ2mbv6PHUWZE5LSA9/czmk5NW0Y3BPrqmZfowFIWOJQ77pljqni X-Received: by 2002:aa7:cad4:0:b0:564:5fd0:f316 with SMTP id l20-20020aa7cad4000000b005645fd0f316mr8649602edt.1.1708597982484; Thu, 22 Feb 2024 02:33:02 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1708597982; cv=pass; d=google.com; s=arc-20160816; b=o0ro6qthdn9ko4q/ShTFBEgVMhwNl7BqPlohnK+7FoBlmURhbQbtX2eoyl+NIFzeZZ Gomaf+xAF4c3Q+ZhxA0n/qXgS3Mf7oqE5w9Em7fBpnoGhKHTdbwCjv/tajZEuug+h3+Z YJ8x5bGP8QXsTzCtGdr7ACcEKIG2v2Z+HSmweRUA7UVGOPz4OqEksUKxazsweFgXZ7WE fajL4GeSictwGg+CGHdefozbW8FtvTBl0lPpNrSHTJC740+oYZb4dZ0yd1Vhmb2bgnDd 7O1uRs2EMV/M18g7VEambJvalc5B4h30b3QAwGLBhpKE1OEPUuDdukWTG94b6iEAjbtp 4NVA== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:references:in-reply-to:message-id :date:subject:cc:to:from:dkim-signature; bh=vMIMzbe/1Q31wGmkXkbGHU+gqkl0OYYUD/vdMXzfwlI=; fh=NV4JY3TRCs9o+gW717PVoUKK/H/wDO8M32W8z62HLwY=; b=aHcc8LbJE6EEjRWtfZYO3yAgznNCRP2A1uTvvX9EfFgp5PF9+Dw5ZIuhrO99sj1Fj3 m9DsfLsf+OYuHhzXfjmnwMObKcN0Qt2w8DIDYHLBg/juj10+cnTyOi1B2ANWlPjnf/fE TN4ycMZWYb80fRQIyPWBXrkJwxmtyFZhDOYhNOpTYs4uKOAt4qT6ZCVZ49HZcI0grw/u W8/3MN8FF2hWPM0t6oMqvsZ9IVUV3oBP8sygQVVfl6Lc9VIXsiKarS7jkagelSnt1MEk JLQnlX8Sk2hz1hxwA9g+qaJJZeKlrgME8qKAxc9qGhKL1+7JwGtiLTW2r8CrpScLbayE rxZg==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@bootlin.com header.s=gm1 header.b=EIckSPvn; arc=pass (i=1 spf=pass spfdomain=bootlin.com dkim=pass dkdomain=bootlin.com dmarc=pass fromdomain=bootlin.com); spf=pass (google.com: domain of linux-kernel+bounces-76338-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:4601:e00::3 as permitted sender) smtp.mailfrom="linux-kernel+bounces-76338-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=bootlin.com Received: from am.mirrors.kernel.org (am.mirrors.kernel.org. [2604:1380:4601:e00::3]) by mx.google.com with ESMTPS id i20-20020a50d754000000b005638b1323ddsi5307139edj.73.2024.02.22.02.33.02 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 22 Feb 2024 02:33:02 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-76338-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:4601:e00::3 as permitted sender) client-ip=2604:1380:4601:e00::3; Authentication-Results: mx.google.com; dkim=pass header.i=@bootlin.com header.s=gm1 header.b=EIckSPvn; arc=pass (i=1 spf=pass spfdomain=bootlin.com dkim=pass dkdomain=bootlin.com dmarc=pass fromdomain=bootlin.com); spf=pass (google.com: domain of linux-kernel+bounces-76338-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:4601:e00::3 as permitted sender) smtp.mailfrom="linux-kernel+bounces-76338-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=bootlin.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by am.mirrors.kernel.org (Postfix) with ESMTPS id CC2D81F29907 for ; Thu, 22 Feb 2024 10:32:29 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 733C645BE1; Thu, 22 Feb 2024 10:31:33 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bootlin.com header.i=@bootlin.com header.b="EIckSPvn" Received: from relay9-d.mail.gandi.net (relay9-d.mail.gandi.net [217.70.183.199]) (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 D2B592B9BF; Thu, 22 Feb 2024 10:31:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=217.70.183.199 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708597890; cv=none; b=KyLF2jsPxO1dit6QWOakN2Rw/nGSXloo2bUhHZNQKGmrpmCHidG/z6UGsDVtLIW3kkD0WcMzk1+s+H3LsfRV5B1VZ2bSY7AD2VfF1GeeErbKVAm1Kk38WIdXv//mDc6vEXDGNT4y5PmmmbCvadUoW/9P6Ze1i+OuRWxR+91hJNY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708597890; c=relaxed/simple; bh=nuuL7hB4TcvbbVbRfMlIGQCum1S/wpqfTGXfKwhC6NM=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version:Content-Type; b=ODeyZRUK2zewiZhBtu2yg0cvX/YhVhRkeZP5DZNf3OIm5UeeJkjwRsO1iXCvUxr1mvXsJsIbSS+TNOwy5jIOrFn49wjsBYb827XKkTDvHdQhbcg+xsFOSVyguyxRG3YGUfJBOT8q+CAKBKdgs26CjI1bkvWePGiGUpzEJAaPmCg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=bootlin.com; spf=pass smtp.mailfrom=bootlin.com; dkim=pass (2048-bit key) header.d=bootlin.com header.i=@bootlin.com header.b=EIckSPvn; arc=none smtp.client-ip=217.70.183.199 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=bootlin.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=bootlin.com Received: by mail.gandi.net (Postfix) with ESMTPSA id 3EB47FF80C; Thu, 22 Feb 2024 10:31:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=gm1; t=1708597887; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=vMIMzbe/1Q31wGmkXkbGHU+gqkl0OYYUD/vdMXzfwlI=; b=EIckSPvnAF4apzAGi9zM1Xd1plUv4izqVFK4ay2waJmIsy7JiybyQEevYh+kNZgkv72wty wzG+1z+7WOdLXVQ5B/r1ouTZI7hJ9BYL2+5gE12NFB9uzpQj+XMA+4Op5PfdokhrKc8s/X PuHQ11N4IcKU86KeCnVIyAckE0cSf7nZngWC4ySUDFeVKx05E0bH46xkA4p2WWtmmaR3Ef nOmTOIxtz1hI4f26PVlGZPARiMbXEF7pHdDV0jifUC/h0Fzur+wLHF+QHsrwGn3/+ygRYK 3TcKhdF9PVALPSCi0nuPXZqsHUHOzR6rHrRpWeARNdPCrbfT+eAOb6MlG3xyJA== From: =?utf-8?b?SsOpcsOpbWllIERhdXRoZXJpYmVz?= To: "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Andrew Lunn , Heiner Kallweit , Russell King , Andrew Davis Cc: netdev@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Thomas Petazzoni , =?utf-8?q?Miqu=C3=A8l_Rayn?= =?utf-8?q?al?= , Yen-Mei Goh , Maxime Chevallier , =?utf-8?b?SsOpcsOpbWll?= =?utf-8?b?IERhdXRoZXJpYmVz?= Subject: [PATCH net-next 2/3] net: phy: dp83826: Add support for phy-mode configuration Date: Thu, 22 Feb 2024 11:31:16 +0100 Message-Id: <20240222103117.526955-3-jeremie.dautheribes@bootlin.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240222103117.526955-1-jeremie.dautheribes@bootlin.com> References: <20240222103117.526955-1-jeremie.dautheribes@bootlin.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-GND-Sasl: jeremie.dautheribes@bootlin.com X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1791594838108099787 X-GMAIL-MSGID: 1791594838108099787 The TI DP83826 PHY can operate in either MII mode or RMII mode. By default, it is configured by straps. It can also be configured by writing to the bit 5 of register 0x17 - RMII and Status Register (RCSR). When phydev->interface is rmii, rmii mode must be enabled, otherwise mii mode must be set. This prevents misconfiguration of hw straps. Signed-off-by: Jérémie Dautheribes --- drivers/net/phy/dp83822.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/drivers/net/phy/dp83822.c b/drivers/net/phy/dp83822.c index 30f2616ab1c2..2d8275e59dcc 100644 --- a/drivers/net/phy/dp83822.c +++ b/drivers/net/phy/dp83822.c @@ -100,6 +100,7 @@ #define DP83822_WOL_CLR_INDICATION BIT(11) /* RCSR bits */ +#define DP83822_RMII_MODE_EN BIT(5) #define DP83822_RGMII_MODE_EN BIT(9) #define DP83822_RX_CLK_SHIFT BIT(12) #define DP83822_TX_CLK_SHIFT BIT(11) @@ -500,6 +501,16 @@ static int dp83826_config_init(struct phy_device *phydev) u16 val, mask; int ret; + if (phydev->interface == PHY_INTERFACE_MODE_RMII) + ret = phy_set_bits_mmd(phydev, DP83822_DEVADDR, MII_DP83822_RCSR, + DP83822_RMII_MODE_EN); + else + ret = phy_clear_bits_mmd(phydev, DP83822_DEVADDR, MII_DP83822_RCSR, + DP83822_RMII_MODE_EN); + + if (ret) + return ret; + if (dp83822->cfg_dac_minus != DP83826_CFG_DAC_MINUS_DEFAULT) { val = FIELD_PREP(DP83826_VOD_CFG1_MINUS_MDI_MASK, dp83822->cfg_dac_minus) | FIELD_PREP(DP83826_VOD_CFG1_MINUS_MDIX_MASK,