From nobody Sun Feb 8 02:55:38 2026 Received: from mail-pl1-f180.google.com (mail-pl1-f180.google.com [209.85.214.180]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C9493213E89 for ; Tue, 28 Oct 2025 00:39:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.180 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761611954; cv=none; b=fCOSfr8StGPN8Mgj/s9TGSjeKtc6OTJYB757WtmQB4tW9MZIoO8Diafec0m2hKTl6KYDgf2GC7+zQKvs2YVa5M1cRsE8fpw9JkfjABCEkPI+FYc81YZLMOl6Z6sOIN0JntvaSuNurdHkziuVqvh0Nh0288pKCNhobEoRZFTyeYQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761611954; c=relaxed/simple; bh=la5GWOA6va8nayPbgB6XzEsfdMULSOIbIX750WJpME8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=r53GLqmEyCv0QKjrPmQv93SekuPHHlk0A9XDxgGUjzDNjAOPTDraYjwLJc4C70+na1dyShvb47F8kd8h88JIG8HWNkfPcYp/h33xUPkqQmIQJ94uqJj2HTBIwPYP9RUc4MLj8Ad6tzBRipDWgA0eswHO6JxqdGvl4WSKOPZIlhc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=Jd7Uys33; arc=none smtp.client-ip=209.85.214.180 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="Jd7Uys33" Received: by mail-pl1-f180.google.com with SMTP id d9443c01a7336-27ee41e074dso55115265ad.1 for ; Mon, 27 Oct 2025 17:39:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1761611951; x=1762216751; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=DKnShh97FzAXK9uF4JYbivS+DlO0bX3Ab4FUiZA04Ec=; b=Jd7Uys3332NzH3gW68MsGFZuLQdjCR7Xk2WC6g+D8VgFl/pwtT9aiPeVYGIGxFsG8m L7KsTU3w7aqsK2C2ibQFzYpMaUZEJ2SEsqn1q4IEYG2WmgOEud1D6nhLMOtxpBz3P2nI FfpxSrK7wcg8788QMivL2aQaBCxI/U50Ws9h4oPYu/PE7eocQxLiP4cDhSLcstq/qVCI j4hiBRuuD4NhR/7xv7oMnbfiZNrr7xR3fCGXdIlztyY3PoKc2F2nmJFmB6+YCGHuu4dB LJFCxq63GATxdpdyZyUmJIOYYtKStBeFd+upd1XVEFtSR8PndLkuWlyBmp5xB5qyIARk 2nSg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1761611951; x=1762216751; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=DKnShh97FzAXK9uF4JYbivS+DlO0bX3Ab4FUiZA04Ec=; b=FuiNHDVa8Xjr/OPlicHr4e7CI5yVwvvbfxQOFb5umpI7sgLIRAI47r77epJmXuWJ+j dbxoQDvJuxIMriI8DQ+6IX+x3wRSeibe4fi+gMhw0gV0xo2T5qSJOL7HaUbZRCK6nm4x uW7JbevZa+JVf330n+xBlGgtaAo8kk1za+LtjN6EwoLKxMs8d3swVMMHJBHuwX281m4N TcCD1P/nDxdYFRv64ScYFPIiMZdHdOVpQAVt8tNXU5nCTIksYTZgEt3Asg/H7poVupnx uoQhU7Fs1gkuRSxe0isO2QCU1CqtlBGCu6Qo+mWAjXa+sJq95xeJpBzLZo3WMhjoaeGg 4fGg== X-Forwarded-Encrypted: i=1; AJvYcCXW8QGXULJEddjmM8fHl9YmNNw2fLRbWA4iJ8/p0H4FL7RaXrZjofsrYfXMSuSxKO2oI/PJ8SI7nSuSMxU=@vger.kernel.org X-Gm-Message-State: AOJu0YySbVi7Fgmz837c5LR61MD4udCQ+usvnEuZCOo9SBRZptfUVWuV GXg0JEcWK1NVjzxizGj42/xoNX5xRbF1rXhZUt5hH/8m/lG4d9S4ZhvB X-Gm-Gg: ASbGncszMicHjD0kMhH7oYmwnHHgScd+IhbioRX5d9CDLYABlmmJtW8GRFqRGeMFT4h 1RdV2XkK1XK98EAjD5UfB4kdGbZ3jh4S6ASvlBqwCvxFSP7qk78Pu0ynDz6lzArJc9sqmOqFoYR didjlwI7fh43todPEClmQZI/MfbHnt9yz3jkkUE6M/5JtpzuLWz5uWrXR0LwGMNDbJrhM5XmCRR tOMxE37/UG6xdP7d6lntOEzhnIkC+SDO8jDrEXZ8VM59pxGXdPVRcVZQsKxp/XW1QouJGB0Narv fEqVX/BN5tr02vh7FNf24ODHbDHjeE7Ph5Kn16XNjsKR88RF6SQuAhX2vr4pbV/6u6FI5DY+BDG solkpxNklhTFHZPBW1PqthBb9eIn/UYhQ2ZaEbyLw9js+Nmln9LGwwzn844PL5TEBrKe3X8nFiF I= X-Google-Smtp-Source: AGHT+IGDgRzXqJUJJkrtAaCEFJyXOr4mEl+07Z2j/3J+/i5aKBpQqqv/TIGwi4eyT7fk5HkXcUBq3g== X-Received: by 2002:a17:903:244d:b0:24c:b39f:baaa with SMTP id d9443c01a7336-294cb65f7f9mr16976795ad.49.1761611950502; Mon, 27 Oct 2025 17:39:10 -0700 (PDT) Received: from localhost ([2001:19f0:ac00:4eb8:5400:5ff:fe30:7df3]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-33fed7e7039sm10005885a91.12.2025.10.27.17.39.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 27 Oct 2025 17:39:10 -0700 (PDT) From: Inochi Amaoto To: Han Gao , Icenowy Zheng , Vivian Wang , Yao Zi , Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Chen Wang , Inochi Amaoto , Maxime Coquelin , Alexandre Torgue , Heiner Kallweit , Russell King , "Russell King (Oracle)" Cc: netdev@vger.kernel.org, devicetree@vger.kernel.org, sophgo@lists.linux.dev, linux-kernel@vger.kernel.org, linux-stm32@st-md-mailman.stormreply.com, linux-arm-kernel@lists.infradead.org, Yixun Lan , Longbin Li Subject: [PATCH v4 1/3] dt-bindings: net: sophgo,sg2044-dwmac: add phy mode restriction Date: Tue, 28 Oct 2025 08:38:56 +0800 Message-ID: <20251028003858.267040-2-inochiama@gmail.com> X-Mailer: git-send-email 2.51.1 In-Reply-To: <20251028003858.267040-1-inochiama@gmail.com> References: <20251028003858.267040-1-inochiama@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" As the ethernet controller of SG2044 and SG2042 only supports RGMII phy. Add phy-mode property to restrict the value. Also, since SG2042 has internal rx delay in its mac, make only "rgmii-txid" and "rgmii-id" valid for phy-mode. Signed-off-by: Inochi Amaoto Acked-by: Conor Dooley --- .../bindings/net/sophgo,sg2044-dwmac.yaml | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/Documentation/devicetree/bindings/net/sophgo,sg2044-dwmac.yaml= b/Documentation/devicetree/bindings/net/sophgo,sg2044-dwmac.yaml index ce21979a2d9a..916ef8f4838a 100644 --- a/Documentation/devicetree/bindings/net/sophgo,sg2044-dwmac.yaml +++ b/Documentation/devicetree/bindings/net/sophgo,sg2044-dwmac.yaml @@ -70,6 +70,26 @@ required: =20 allOf: - $ref: snps,dwmac.yaml# + - if: + properties: + compatible: + contains: + const: sophgo,sg2042-dwmac + then: + properties: + phy-mode: + enum: + - rgmii-txid + - rgmii-id + else: + properties: + phy-mode: + enum: + - rgmii + - rgmii-rxid + - rgmii-txid + - rgmii-id + =20 unevaluatedProperties: false =20 --=20 2.51.1 From nobody Sun Feb 8 02:55:38 2026 Received: from mail-pj1-f47.google.com (mail-pj1-f47.google.com [209.85.216.47]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6CB48214A97 for ; Tue, 28 Oct 2025 00:39:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.47 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761611956; cv=none; b=EAQSSd0bDqGmBvzNhl4XMAQKRoD/L91Jx6j4pEMfiaF+ODayZgHkh+9p0vAaKL5TNVJOa7DHlMP52a8UF60oP00r3uolC/fLvG7RMDAkMsifbULP9z90qxqdd+L0nbrsfOQPJMqBSduzPpQAI5hBJawUJVclq0oKtLGsKKfegcE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761611956; c=relaxed/simple; bh=WFJsAwSAfBll4rXsUKTECSFABgQcDyDelT5akN/S2SY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=cpzjTZ7HsjfW7qwM23JB4meP9EI1F1HbbY6BYmAlaF6bvanWEIkJjyDzbfKcb5KpPl4YbiMourEXU/IvkatIFJn9VxBmzfSl9Scyoj+5MqAIa4S/MXvaCjNcyW6lWT9oSbBK3zZpXsx/Xsozi2LZncuuajnYeshABCPDaDYXiGU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=CsCefpb3; arc=none smtp.client-ip=209.85.216.47 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="CsCefpb3" Received: by mail-pj1-f47.google.com with SMTP id 98e67ed59e1d1-33292adb180so5385165a91.3 for ; Mon, 27 Oct 2025 17:39:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1761611954; x=1762216754; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=/WcWCGcgNvS5Hv44YHDTwLTthjpcd05Gmj8wnblh/dE=; b=CsCefpb3iNpm9bqI3uYHzcetXexj+rkkWvVHVtfbY9kWU9Z0YkQ5mI2m65+wIx2fku nQs5Z2upHq6ZgZz+4tiLwp8zi9yK2UynJaXi9u8V+DG2JKDzBxsvw7+J687MdzwahPV3 RWURvFMFzWNPwlsZ9R+Dh3hbpwrCNOswJ6nJ9UQ0rrZlwaXVmAYx1JQZe1z/XGV+Z88V tYJVLIc9LJCHW7scip83S2WFusEXJ46RcpGGWRzvKUgFV4UZaVxQeup/ELammo5ndYQ+ ZKTNz2ZtsIIdOBoyQ6NquZv27VySxMcRMfjLmS9kIWqkdpCkJxJkdZwAJ9oC8Hx5E35W 2RAg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1761611954; x=1762216754; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=/WcWCGcgNvS5Hv44YHDTwLTthjpcd05Gmj8wnblh/dE=; b=IApc/VRGFAszdCKUTyTFqQe2RTzW9ZA75z6H+iQTdVBiUV7nMm56zwMD5pSb/WsCzR n59/wPP6keAezpGkWEOhOcacjnG8ptOw5keiFKZESdS8qupdwvsyn08r7OTX7d+tF66l BzzYecDiSSpe3P8sXTZbyDAs/ALJUJwLmJQpl4SdXK4b8aeP8q8538CSb9fMhBTGVo0d f43klppRyXbqjZEHZ9qEpqBQfPNG68FuvzfkHQDcGlKLTp8m5HaBCB0Ptfu99IWZ+I4X QOo+gQxnKRXa4Gg46LQNBudku3TxMXURw3Tdk/hvXYl3+V4RMSEH3Ksp7sPTvba94Y22 Q+vQ== X-Forwarded-Encrypted: i=1; AJvYcCX9YdvN+yu7CQWEkm9g7P+rurzuBmnhnzTMQOOM0aSumO/QFxN/ldkkLaNUTg3K2YgufdOrCGZkQ8Zb8HU=@vger.kernel.org X-Gm-Message-State: AOJu0Yx+7dM3UGDZZvx02UyVLZIKoPZOfAiBNZ1+wi7NEyTb0NNLYsob fXmVYX14oYXxozZPpXcdPMP0WuB12SL8Ie4SFyjEmoCpk2Vqb0NVLcPj X-Gm-Gg: ASbGncu/Jz1P2Mb98QzI3mJWte4CnG0tNFZKVartTU8H+ndsuGV0yI5VE8MFJXndasF AHfuGbJDf3qdQ6Nx5O8d+8BXqn2wAgXhqNR4/TFYE6ssse776sjtFCp79RPkGBngv5q4v8QKh+v zyeZMZw1v/kWWSIa2Yrdyl/D7Oa83iD9nc8NHBD9kDypWMD/Qib6GfRSNd4c0CKPz5Bfd2RMU2G yglzyf4RgsEWFRJNoP7w1FhXXh7QClpeplwHjyfyhZTU+Sxc5bpvzrXYyadiQrTBKoOczSS/NAV d1PHG1qWEY0iW1ECIf43iUiKpNLlyAOa00Dg3uVVqRNvePloe/uIfi30r2VY1mQv/C1Za0sDZBO D/XhdJhZ80FvXwdixNVTab23++5Cnamz7DmhBnR2DDKPEN5WVk3TnhPiTaCT5La15tJB/aKOsFu PbXXF7vMvHNA== X-Google-Smtp-Source: AGHT+IGlGdHwoHvvWJbSfq7fs7gWWYLvmYXWrIA0qO3xj1Qshht6xEIpI7sww7p68LXdI3n1iXEunw== X-Received: by 2002:a17:90b:3882:b0:32e:e18a:368c with SMTP id 98e67ed59e1d1-340279e3fa7mr2149486a91.7.1761611953610; Mon, 27 Oct 2025 17:39:13 -0700 (PDT) Received: from localhost ([2001:19f0:ac00:4eb8:5400:5ff:fe30:7df3]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-7a414034661sm9665148b3a.26.2025.10.27.17.39.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 27 Oct 2025 17:39:13 -0700 (PDT) From: Inochi Amaoto To: Han Gao , Icenowy Zheng , Vivian Wang , Yao Zi , Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Chen Wang , Inochi Amaoto , Maxime Coquelin , Alexandre Torgue , Heiner Kallweit , Russell King , "Russell King (Oracle)" Cc: netdev@vger.kernel.org, devicetree@vger.kernel.org, sophgo@lists.linux.dev, linux-kernel@vger.kernel.org, linux-stm32@st-md-mailman.stormreply.com, linux-arm-kernel@lists.infradead.org, Yixun Lan , Longbin Li Subject: [PATCH v4 2/3] net: phy: Add helper for fixing RGMII PHY mode based on internal mac delay Date: Tue, 28 Oct 2025 08:38:57 +0800 Message-ID: <20251028003858.267040-3-inochiama@gmail.com> X-Mailer: git-send-email 2.51.1 In-Reply-To: <20251028003858.267040-1-inochiama@gmail.com> References: <20251028003858.267040-1-inochiama@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" The "phy-mode" property of devicetree indicates whether the PCB has delay now, which means the mac needs to modify the PHY mode based on whether there is an internal delay in the mac. This modification is similar for many ethernet drivers. To simplify code, define the helper phy_fix_phy_mode_for_mac_delays(speed, mac_txid, mac_rxid) to fix PHY mode based on whether mac adds internal delay. Suggested-by: Russell King (Oracle) Signed-off-by: Inochi Amaoto Reviewed-by: Maxime Chevallier --- drivers/net/phy/phy-core.c | 43 ++++++++++++++++++++++++++++++++++++++ include/linux/phy.h | 3 +++ 2 files changed, 46 insertions(+) diff --git a/drivers/net/phy/phy-core.c b/drivers/net/phy/phy-core.c index 605ca20ae192..4f258fb409da 100644 --- a/drivers/net/phy/phy-core.c +++ b/drivers/net/phy/phy-core.c @@ -101,6 +101,49 @@ const char *phy_rate_matching_to_str(int rate_matching) } EXPORT_SYMBOL_GPL(phy_rate_matching_to_str); =20 +/** + * phy_fix_phy_mode_for_mac_delays - Convenience function for fixing PHY + * mode based on whether mac adds internal delay + * + * @interface: The current interface mode of the port + * @mac_txid: True if the mac adds internal tx delay + * @mac_rxid: True if the mac adds internal rx delay + * + * Return fixed PHY mode, or PHY_INTERFACE_MODE_NA if the interface can + * not apply the internal delay + */ +phy_interface_t phy_fix_phy_mode_for_mac_delays(phy_interface_t interface, + bool mac_txid, bool mac_rxid) +{ + if (!phy_interface_mode_is_rgmii(interface)) + return interface; + + if (mac_txid && mac_rxid) { + if (interface =3D=3D PHY_INTERFACE_MODE_RGMII_ID) + return PHY_INTERFACE_MODE_RGMII; + return PHY_INTERFACE_MODE_NA; + } + + if (mac_txid) { + if (interface =3D=3D PHY_INTERFACE_MODE_RGMII_ID) + return PHY_INTERFACE_MODE_RGMII_RXID; + if (interface =3D=3D PHY_INTERFACE_MODE_RGMII_TXID) + return PHY_INTERFACE_MODE_RGMII; + return PHY_INTERFACE_MODE_NA; + } + + if (mac_rxid) { + if (interface =3D=3D PHY_INTERFACE_MODE_RGMII_ID) + return PHY_INTERFACE_MODE_RGMII_TXID; + if (interface =3D=3D PHY_INTERFACE_MODE_RGMII_RXID) + return PHY_INTERFACE_MODE_RGMII; + return PHY_INTERFACE_MODE_NA; + } + + return interface; +} +EXPORT_SYMBOL_GPL(phy_fix_phy_mode_for_mac_delays); + /** * phy_interface_num_ports - Return the number of links that can be carrie= d by * a given MAC-PHY physical link. Returns 0 if this is diff --git a/include/linux/phy.h b/include/linux/phy.h index 3c7634482356..0bc00a4cceb2 100644 --- a/include/linux/phy.h +++ b/include/linux/phy.h @@ -1813,6 +1813,9 @@ static inline bool phy_is_pseudo_fixed_link(struct ph= y_device *phydev) return phydev->is_pseudo_fixed_link; } =20 +phy_interface_t phy_fix_phy_mode_for_mac_delays(phy_interface_t interface, + bool mac_txid, bool mac_rxid); + int phy_save_page(struct phy_device *phydev); int phy_select_page(struct phy_device *phydev, int page); int phy_restore_page(struct phy_device *phydev, int oldpage, int ret); --=20 2.51.1 From nobody Sun Feb 8 02:55:38 2026 Received: from mail-pl1-f181.google.com (mail-pl1-f181.google.com [209.85.214.181]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E444C221FA4 for ; Tue, 28 Oct 2025 00:39:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.181 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761611961; cv=none; b=Uf5PIgGjSec+097TRUKNBbH4xuXRpgGzwMo8fPH5dmDvCp8Wq7AKVFj9oBYTwqdIcILVKt59JD8JgEC2pCwpdCUChB2JglUpa3+11y+7EQO+V62p6K0XrQBekyxXxS6Yu2+LDdfO8pu13ppiQ5R35ueaIDIbfEAMvxS90vzDslo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761611961; c=relaxed/simple; bh=P2La+FoJZ35MJzEo8yVcVLSFzhQhJljTmUai3XD3wr8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=D5//Etf50VsE/mM2qIu6vC+jDP5WzyfDoPix06TeuC6JGUUyMhfnNnPHJ1PdQqqKAZqCZzOMw+Mal2f1kdMqF0Sx4zkt8PdJtcCOU/3e+tG4yyhyRFlkoeOCJ1u1Q7WoWyO7xbcXP/PBkZY2SBy5Wx9tpzcMHNOoimx+M3/2/pA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=kyLj3jlO; arc=none smtp.client-ip=209.85.214.181 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="kyLj3jlO" Received: by mail-pl1-f181.google.com with SMTP id d9443c01a7336-29470bc80ceso58873295ad.1 for ; Mon, 27 Oct 2025 17:39:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1761611958; x=1762216758; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=6e+TNG8HQKWjELTx3r9i/rdMStiwaJjw+wxw++IoG08=; b=kyLj3jlOXnyy+JK+pViciZ6OEQLzjc5aQXaTggD/u7s/4upxNm1YBBkEDpel0IUENC CsqKfBdlsIpvCNI7oklzKeImxuWjcB+TK9k8c8rl5VZpeZZNyiLtVIf/8MI8NYRqz7Rl fp/eL0lDfXXydXlsaM94g2XGwWgxmiWMSlJcLAdhKoR+4MvUVwwbhTMOqTDX4wmB3w8m GPgB0vp5hX3swmXuyonnYnvVsfXLyNxLM4ptt+L5+ukorSARSDoSySZ1Wbc+DAasiHaC QNStNfszdjt3bfrsynGehySUs4gUQE89JPNAm78p6MGar6FCXDNpWzSC/p+uPOvjE6/N eyxQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1761611958; x=1762216758; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=6e+TNG8HQKWjELTx3r9i/rdMStiwaJjw+wxw++IoG08=; b=d0sfeDbmLA7nzWEuBUKHE/4VxYCINzOP2ueJFgKR9sbpJhUaCNjWTg8dnFweavvzdZ lbBl1jZMnv0Rp6n0oivF2tr63GWijNBDfKoGYkC/C9syDAAyJNplfjsFDkALjpYE1bcJ scg/0mSj+dGE40EX6xHdnu/adAPkn4DMKPkqyhWrOfk+c1ieWjUH+RBtAQxxs3GDKIVx lGl4DdtQInpEp0bmWLlLLqPy2Xa5eiZK7y7gA1leLkvRKNx/PdQuMs5LiWY6f8RCMlHB u27W+LHoHK/CJbpReCSam+d9z0wqL+PgeBd1TOEa8hbCz8tUnMgzTBxDYIyA0c9rLwYI O/sg== X-Forwarded-Encrypted: i=1; AJvYcCWY5eG70jmjg32u3FGh7hRE4nXjatdjOyZVzdIBMh6bDIA1RFPilNj3qyg+LiyRNWcvellz8aohRMmsLU0=@vger.kernel.org X-Gm-Message-State: AOJu0Yy2Fn9LJwAFJjcRI77aVpXi7IsSQ52+k4oZVlp78pFPe8CxmIwW lKltHkByK6ya9LydnNlufJKBEFGrvLENZzh/qlezhEBtsTYjAmGm400B X-Gm-Gg: ASbGncvRDUriR8qtEg51+g9u4dO0KvJbUzPhdJMWvRs2DC9Eky20HPYRTzrkkveL0Ux ZXCSTmGF7sJwoMptOpWhH4jKs3qCG2dpd9exSwbpVnCXg0sijkl4lS6W1lcwq6k+jPfvKoKA/Lk 8wJIjX/A7/VJaVHS/dkcYySaBpX7YgpqXyrfIKDdmi8oU5hkJKU7NgKY+vo9clFh9ZAAgpEvAVo /ZtOTO86crQPJwMNylz/K7be/xASGC0TCZZZwFI8ce+vLggc8Ptm22/PaMxw6RYY7O+L2fjAO4A gWG2zFa7dSTGUu5M4jshVoAJxnv3qnNAo5SGH04VHUWB7IL6tmh32DfoNG3/jc831DTZWJwvjMR xr/24HQCiUDrOoaSj6eoa/UDpDLtQ/+40cpDzUqnkAievfqfF/7YI6z8RlRI4UBTGmyHrfLcoZC c2p4FRz710Qw== X-Google-Smtp-Source: AGHT+IGvU4zqUoctToOTJAwyDs9+4diulCuRP+v5NnW7F2ld07v4djcWl4rSSI6JXslPZV+bpZFdZA== X-Received: by 2002:a17:902:ea0a:b0:271:fa2d:534c with SMTP id d9443c01a7336-294cc74e4dfmr14030645ad.22.1761611956679; Mon, 27 Oct 2025 17:39:16 -0700 (PDT) Received: from localhost ([2001:19f0:ac00:4eb8:5400:5ff:fe30:7df3]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-29498cf3bbcsm94917065ad.15.2025.10.27.17.39.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 27 Oct 2025 17:39:16 -0700 (PDT) From: Inochi Amaoto To: Han Gao , Icenowy Zheng , Vivian Wang , Yao Zi , Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Chen Wang , Inochi Amaoto , Maxime Coquelin , Alexandre Torgue , Heiner Kallweit , Russell King , "Russell King (Oracle)" Cc: netdev@vger.kernel.org, devicetree@vger.kernel.org, sophgo@lists.linux.dev, linux-kernel@vger.kernel.org, linux-stm32@st-md-mailman.stormreply.com, linux-arm-kernel@lists.infradead.org, Yixun Lan , Longbin Li Subject: [PATCH v4 3/3] net: stmmac: dwmac-sophgo: Add phy interface filter Date: Tue, 28 Oct 2025 08:38:58 +0800 Message-ID: <20251028003858.267040-4-inochiama@gmail.com> X-Mailer: git-send-email 2.51.1 In-Reply-To: <20251028003858.267040-1-inochiama@gmail.com> References: <20251028003858.267040-1-inochiama@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" As the SG2042 has an internal rx delay, the delay should be removed when initializing the mac, otherwise the phy will be misconfigurated. Fixes: 543009e2d4cd ("net: stmmac: dwmac-sophgo: Add support for Sophgo SG2= 042 SoC") Signed-off-by: Inochi Amaoto Tested-by: Han Gao --- .../ethernet/stmicro/stmmac/dwmac-sophgo.c | 20 ++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac-sophgo.c b/drivers/n= et/ethernet/stmicro/stmmac/dwmac-sophgo.c index 3b7947a7a7ba..7f0ca4249a13 100644 --- a/drivers/net/ethernet/stmicro/stmmac/dwmac-sophgo.c +++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-sophgo.c @@ -7,11 +7,16 @@ =20 #include #include +#include #include #include =20 #include "stmmac_platform.h" =20 +struct sophgo_dwmac_data { + bool has_internal_rx_delay; +}; + static int sophgo_sg2044_dwmac_init(struct platform_device *pdev, struct plat_stmmacenet_data *plat_dat, struct stmmac_resources *stmmac_res) @@ -32,6 +37,7 @@ static int sophgo_sg2044_dwmac_init(struct platform_devic= e *pdev, static int sophgo_dwmac_probe(struct platform_device *pdev) { struct plat_stmmacenet_data *plat_dat; + const struct sophgo_dwmac_data *data; struct stmmac_resources stmmac_res; struct device *dev =3D &pdev->dev; int ret; @@ -50,11 +56,23 @@ static int sophgo_dwmac_probe(struct platform_device *p= dev) if (ret) return ret; =20 + data =3D device_get_match_data(&pdev->dev); + if (data && data->has_internal_rx_delay) { + plat_dat->phy_interface =3D phy_fix_phy_mode_for_mac_delays(plat_dat->ph= y_interface, + false, true); + if (plat_dat->phy_interface =3D=3D PHY_INTERFACE_MODE_NA) + return -EINVAL; + } + return stmmac_dvr_probe(dev, plat_dat, &stmmac_res); } =20 +static struct sophgo_dwmac_data sg2042_dwmac_data =3D { + .has_internal_rx_delay =3D true, +}; + static const struct of_device_id sophgo_dwmac_match[] =3D { - { .compatible =3D "sophgo,sg2042-dwmac" }, + { .compatible =3D "sophgo,sg2042-dwmac", .data =3D &sg2042_dwmac_data }, { .compatible =3D "sophgo,sg2044-dwmac" }, { /* sentinel */ } }; --=20 2.51.1