From patchwork Wed Apr 16 17:14:47 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dimitri Fedrau X-Patchwork-Id: 14054289 X-Patchwork-Delegate: kuba@kernel.org Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (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 1D020216E26; Wed, 16 Apr 2025 17:14:59 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744823700; cv=none; b=NNuC6JzsBfeTc8eqIgMT6fzu/tFFIK4wqLSqGDn0f42n99w6KTe6Qj2CciPTPhIfQjub6ZYO5w3vHsfix1uYSijICNYWAtvxZx62r/1zar2oxKW/Tp90SlJd+WD5rdirbIclbJq+hLb3qpP+MW5wlTo8lLulbY6i2Rhs5KeSr3Q= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744823700; c=relaxed/simple; bh=M4tjwq1WsXbtdjPU1kDrBGTCE1LBsVcwlCPfPSkrIG4=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=o2fGkjfc84wnxHCf7xac2Jncyex09sd3RQCoj9Zxi7ehzFJ+KLQiyZUJ2AmKHh73CrNeQXAsZLXUDWo6UqUcZj4dsNP/cEmSsuzs3hb13+y+AwIB34wQosJep4UngXtYBF7PdIKK5BNf8dE+rzoGrkKIGhon6ypk0Urba+nnRjE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=JvWSCU7/; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="JvWSCU7/" Received: by smtp.kernel.org (Postfix) with ESMTPS id 8456CC4CEF4; Wed, 16 Apr 2025 17:14:59 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1744823699; bh=M4tjwq1WsXbtdjPU1kDrBGTCE1LBsVcwlCPfPSkrIG4=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=JvWSCU7/s1OPOp29nUowgvgUdJgNC5pmgPl6A4KZj6furTOGEqHit8AHjQEBIcEBA AzDxa42cubsqzt1+6bn4nufzc2G9AGVIU4J2HcdDuXjFDDqZdCWzbjk+Q5gs7g/bmn XxPOnMbKjCcaZNOSOHHe3RP2EZ57tLiMOiVfjCK5WoXOfFiqQNJvfWKs34cmSlz1Tc xhdy4q6fxttBxecvOn+DxKAUUEKpUzsaH68Kwd8JXTQK7kCLA/GYnBJjgy/Buz5iYE 4haeByfTANHvwW+VujdZJ+zBH2YvDV9ouA20iM9rQPKWxt2+PxraW0mzIBNBUqwJfN U38pNV28fZS8A== Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 66D9DC369C4; Wed, 16 Apr 2025 17:14:59 +0000 (UTC) Date: Wed, 16 Apr 2025 19:14:47 +0200 Subject: [PATCH net-next v3 1/4] dt-bindings: net: ethernet-phy: add property mac-termination-ohms Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20250416-dp83822-mac-impedance-v3-1-028ac426cddb@liebherr.com> References: <20250416-dp83822-mac-impedance-v3-0-028ac426cddb@liebherr.com> In-Reply-To: <20250416-dp83822-mac-impedance-v3-0-028ac426cddb@liebherr.com> To: Andrew Lunn , Heiner Kallweit , Russell King , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Florian Fainelli , Andrew Lunn , Andrew Davis Cc: netdev@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Dimitri Fedrau , Dimitri Fedrau X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1744823698; l=1479; i=dimitri.fedrau@liebherr.com; s=20241202; h=from:subject:message-id; bh=W06lAoB8Jv78d0khXNAifsDKyfyzdH2gHN2GrvRj/lg=; b=8/NvEZKKh+Qh07muudfgPl+CobttKPe/dIYCo/6qpaXAyDrTUDrT0vQBuyl8cLqncY4NzjazH 327bpfB7LnvBVI1pXYlyN/MW9h6jVytm4HsT8vkOPaOr+c2HBdBly+d X-Developer-Key: i=dimitri.fedrau@liebherr.com; a=ed25519; pk=rT653x09JSQvotxIqQl4/XiI4AOiBZrdOGvxDUbb5m8= X-Endpoint-Received: by B4 Relay for dimitri.fedrau@liebherr.com/20241202 with auth_id=290 X-Original-From: Dimitri Fedrau Reply-To: dimitri.fedrau@liebherr.com From: Dimitri Fedrau X-Patchwork-Delegate: kuba@kernel.org From: Dimitri Fedrau Add property mac-termination-ohms in the device tree bindings for selecting the resistance value of the builtin series termination resistors of the PHY. Changing the resistance to an appropriate value can reduce signal reflections and therefore improve signal quality. Signed-off-by: Dimitri Fedrau --- Documentation/devicetree/bindings/net/ethernet-phy.yaml | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/Documentation/devicetree/bindings/net/ethernet-phy.yaml b/Documentation/devicetree/bindings/net/ethernet-phy.yaml index 824bbe4333b7ed95cc39737d3c334a20aa890f01..71e2cd32580f2e9e1af88e6f74517ccb92d1c20f 100644 --- a/Documentation/devicetree/bindings/net/ethernet-phy.yaml +++ b/Documentation/devicetree/bindings/net/ethernet-phy.yaml @@ -238,6 +238,16 @@ properties: peak-to-peak specified in ANSI X3.263. When omitted, the PHYs default will be left as is. + mac-termination-ohms: + maximum: 200 + description: + The xMII signals need series termination on the driver side to match both + the output driver impedance and the line characteristic impedance, to + prevent reflections and EMI problems. Select a resistance value which is + supported by the builtin resistors of the PHY, otherwise the resistors may + have to be placed on board. When omitted, the PHYs default will be left as + is. + leds: type: object From patchwork Wed Apr 16 17:14:48 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dimitri Fedrau X-Patchwork-Id: 14054288 X-Patchwork-Delegate: kuba@kernel.org Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (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 1CFC3216E1B; Wed, 16 Apr 2025 17:14:59 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744823700; cv=none; b=Nz9KDSu/taWOrM3+u00ICOTfVVmvaI2pKWZG0NN+FEP/b5jxKOFK/HmwDTCXfCCI7N+PY0x9MhbfXbV1zMF2vW0puyo71qPV79bQhECQAnTTZWEJQLy1+pYb5NyZYT1Dh8zBBJMfDSOE06aoFAXKw6Vh8FuInohi5BoIsFwcAXw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744823700; c=relaxed/simple; bh=cFwspKEdNzMDgmNkSYSyp+e+y0BEh+uJjdRR5wLf1ig=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=L1LnzM+2AHs+eyXfxQFHQQL98ZTQXJnBuQLSVxSW6nsLYZI9gxDP2ztjVgXdJRgYxf4tAp0UViaMM6v3wG52LWhF8LdzUfgR5G9Ap2LFynEg4+0DEWqYaGKxYZgxQqDqLUMO57FNH0aICvv03Mro0ymNgWZ2wwSeT4ph9Npm2PY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=l34SkYT6; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="l34SkYT6" Received: by smtp.kernel.org (Postfix) with ESMTPS id 8BE36C4CEE4; Wed, 16 Apr 2025 17:14:59 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1744823699; bh=cFwspKEdNzMDgmNkSYSyp+e+y0BEh+uJjdRR5wLf1ig=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=l34SkYT6OzVvBAGqrofLd36W52hRzPw+/yVSoFhglycwwfUupVnsE0hphBAg9dlzK z0YuKDWx5ZN/wOyZMQiUgbxx+b/164rvF5tZFLlz3WDYYCWdi0Nj6monLgbslMwpmR DtKsjJ7dGlyrh2kVywtahVNia+uG5Vu84jo5lOYsv89Hd75DHCVnS8d+BxWJJKR134 YDvb5lygAZO+g95vD7z8Ggs6WN/15w5EsbovSH6kNICCd34fVZdDAaeiEKB5dAWh+H VIdC+GXT7j/6f4YAg31fZ6OnmaYqCIMiuXqxGzuC5pc3aEGuYdVsCD39FCJAors4PK wiNJPYZcssgaw== Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 77D37C369C7; Wed, 16 Apr 2025 17:14:59 +0000 (UTC) Date: Wed, 16 Apr 2025 19:14:48 +0200 Subject: [PATCH net-next v3 2/4] dt-bindings: net: dp83822: add constraints for mac-termination-ohms Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20250416-dp83822-mac-impedance-v3-2-028ac426cddb@liebherr.com> References: <20250416-dp83822-mac-impedance-v3-0-028ac426cddb@liebherr.com> In-Reply-To: <20250416-dp83822-mac-impedance-v3-0-028ac426cddb@liebherr.com> To: Andrew Lunn , Heiner Kallweit , Russell King , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Florian Fainelli , Andrew Lunn , Andrew Davis Cc: netdev@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Dimitri Fedrau , Dimitri Fedrau X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1744823698; l=1043; i=dimitri.fedrau@liebherr.com; s=20241202; h=from:subject:message-id; bh=7BGE9tLp93J171J2FMQIe9ov/36XBFIFpQ/JiCi+QRk=; b=4I4GSYv9VJSa6JnkgkwdunnyRsu48D4YMC+tlSYhLrhhWW74kjNAHiycTFCavsjRpRaeOnR81 QtWOY7xs/R8Cl1wSiciNSdgVaQVE5QmmgS3xVlZadhaULjNuf8AhPC+ X-Developer-Key: i=dimitri.fedrau@liebherr.com; a=ed25519; pk=rT653x09JSQvotxIqQl4/XiI4AOiBZrdOGvxDUbb5m8= X-Endpoint-Received: by B4 Relay for dimitri.fedrau@liebherr.com/20241202 with auth_id=290 X-Original-From: Dimitri Fedrau Reply-To: dimitri.fedrau@liebherr.com From: Dimitri Fedrau X-Patchwork-Delegate: kuba@kernel.org From: Dimitri Fedrau Property mac-termination-ohms is defined in ethernet-phy.yaml. Add allowed values for the property. Signed-off-by: Dimitri Fedrau Reviewed-by: Andrew Lunn --- Documentation/devicetree/bindings/net/ti,dp83822.yaml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Documentation/devicetree/bindings/net/ti,dp83822.yaml b/Documentation/devicetree/bindings/net/ti,dp83822.yaml index 50c24248df266f1950371b950cd9c4d417835f97..28a0bddb9af940e79a7a768a35ef588e28ec5bd4 100644 --- a/Documentation/devicetree/bindings/net/ti,dp83822.yaml +++ b/Documentation/devicetree/bindings/net/ti,dp83822.yaml @@ -122,6 +122,9 @@ properties: - free-running - recovered + mac-termination-ohms: + enum: [43, 44, 46, 48, 50, 53, 55, 58, 61, 65, 69, 73, 78, 84, 91, 99] + required: - reg @@ -137,6 +140,7 @@ examples: rx-internal-delay-ps = <1>; tx-internal-delay-ps = <1>; ti,gpio2-clk-out = "xi"; + mac-termination-ohms = <43>; }; }; From patchwork Wed Apr 16 17:14:49 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dimitri Fedrau X-Patchwork-Id: 14054287 X-Patchwork-Delegate: kuba@kernel.org Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (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 0133F2165EA; Wed, 16 Apr 2025 17:14:59 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744823700; cv=none; b=T00YmATsXuFENsq2oUFbqFWq/1h4icqPF2x/UABVOmku58Paw0kjNKm/xwZd7+2GfAifW4fbi0gVrkRlgyaKnkkC7hXmgR5mduS1P/WFlxR62NUu/LVNfiGL4CR7FcA1HAzW9kFoegjimi2DmOy2pGet6W8Lj7hZKjZPE1mWEWg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744823700; c=relaxed/simple; bh=JLUFW7xVWi5uAyw4AeqyqswOikhB6O7KFDradTNh2Q0=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=LIZFu32k4DLFp7mWsOTk/9w1yifty2gywLVwfSJYP7wqVOe2dI4VTcpffp85TVIBshCnjqzgT5LrqqS0dJxPouvOpZ25f3+3kT1FpVDScnXEYadBit/2Gg0+vg33zI/1J6cs5PxJGmiqdi5oQpBido9gXQU8Enq16PeN6c6SviI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=NL9JNhNT; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="NL9JNhNT" Received: by smtp.kernel.org (Postfix) with ESMTPS id A7CBFC4CEF5; Wed, 16 Apr 2025 17:14:59 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1744823699; bh=JLUFW7xVWi5uAyw4AeqyqswOikhB6O7KFDradTNh2Q0=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=NL9JNhNTZnALJIA7V2MHslvyr3ctAS4AXhJDDL5jP17Xg5DGakUmULSTDMJFO5X+D 0JxL6aupXqBehDkA6Z0sCuJUwUxsTJRvd66wTHfJOp1dQLv7Xpmum5rcIa2SHV32OU UQYaE30V1cdmUEq9igkX8DamkJU6tmpMXPIoREuwrOD/BNrS6VKUsnpTetmvinSO9R CcmsHkneqQQUv52aApi9vtsDPa+NSPKQVeRoP6kjvSA6AyyyFykX40Hwq5RBPjVF9K rutsiX++UNTIkHhdUwTc9iKmbU9kXXGcrMxqU5mpkaaaRtr97WP3xL15wGeSQexlJT 2i5Xq+kcPDkhg== Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 8D4ECC369C9; Wed, 16 Apr 2025 17:14:59 +0000 (UTC) Date: Wed, 16 Apr 2025 19:14:49 +0200 Subject: [PATCH net-next v3 3/4] net: phy: Add helper for getting MAC termination resistance Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20250416-dp83822-mac-impedance-v3-3-028ac426cddb@liebherr.com> References: <20250416-dp83822-mac-impedance-v3-0-028ac426cddb@liebherr.com> In-Reply-To: <20250416-dp83822-mac-impedance-v3-0-028ac426cddb@liebherr.com> To: Andrew Lunn , Heiner Kallweit , Russell King , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Florian Fainelli , Andrew Lunn , Andrew Davis Cc: netdev@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Dimitri Fedrau , Dimitri Fedrau , "Russell King (Oracle)" X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1744823698; l=2028; i=dimitri.fedrau@liebherr.com; s=20241202; h=from:subject:message-id; bh=/Fzsr/MDdwggR68hmMYpD2e1XBjCEnFaHjMzV6fLczs=; b=CArExZsnBMLPb47XmDpyue2G8JsTUSRt+ct01dNLMn9+fQlppo5ZA3VG3+QSLD9R2bGDNg3zh arH3MAWbODaCUlyke20Yqo7v34abi0g/xTIN6zuCPdBPJfsfprSFmvF X-Developer-Key: i=dimitri.fedrau@liebherr.com; a=ed25519; pk=rT653x09JSQvotxIqQl4/XiI4AOiBZrdOGvxDUbb5m8= X-Endpoint-Received: by B4 Relay for dimitri.fedrau@liebherr.com/20241202 with auth_id=290 X-Original-From: Dimitri Fedrau Reply-To: dimitri.fedrau@liebherr.com From: Dimitri Fedrau X-Patchwork-Delegate: kuba@kernel.org From: Dimitri Fedrau Add helper which returns the MAC termination resistance value. Modifying the resistance to an appropriate value can reduce signal reflections and therefore improve signal quality. Reviewed-by: Russell King (Oracle) Signed-off-by: Dimitri Fedrau --- drivers/net/phy/phy_device.c | 15 +++++++++++++++ include/linux/phy.h | 3 +++ 2 files changed, 18 insertions(+) diff --git a/drivers/net/phy/phy_device.c b/drivers/net/phy/phy_device.c index cc6c209fe702293c25e619899a699a53638f0f66..f85c172c446c56e1da1d13baa18c581f2213dcc5 100644 --- a/drivers/net/phy/phy_device.c +++ b/drivers/net/phy/phy_device.c @@ -2975,6 +2975,21 @@ int phy_get_tx_amplitude_gain(struct phy_device *phydev, struct device *dev, } EXPORT_SYMBOL_GPL(phy_get_tx_amplitude_gain); +/** + * phy_get_mac_termination - stores MAC termination in @val + * @phydev: phy_device struct + * @dev: pointer to the devices device struct + * @val: MAC termination + * + * Returns: 0 on success, < 0 on failure + */ +int phy_get_mac_termination(struct phy_device *phydev, struct device *dev, + u32 *val) +{ + return phy_get_u32_property(dev, "mac-termination-ohms", val); +} +EXPORT_SYMBOL_GPL(phy_get_mac_termination); + static int phy_led_set_brightness(struct led_classdev *led_cdev, enum led_brightness value) { diff --git a/include/linux/phy.h b/include/linux/phy.h index fb755358d965b728d502bfc1c0d6e5a6b779f1ef..066a28a4b64b25a7c6033a3bb1e3bc48b20c96dc 100644 --- a/include/linux/phy.h +++ b/include/linux/phy.h @@ -2040,6 +2040,9 @@ int phy_get_tx_amplitude_gain(struct phy_device *phydev, struct device *dev, enum ethtool_link_mode_bit_indices linkmode, u32 *val); +int phy_get_mac_termination(struct phy_device *phydev, struct device *dev, + u32 *val); + void phy_resolve_pause(unsigned long *local_adv, unsigned long *partner_adv, bool *tx_pause, bool *rx_pause); From patchwork Wed Apr 16 17:14:50 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dimitri Fedrau X-Patchwork-Id: 14054290 X-Patchwork-Delegate: kuba@kernel.org Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (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 5D809217739; Wed, 16 Apr 2025 17:15:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744823700; cv=none; b=szrMidPzs0L3gO59dcuRzBUktgEZIz8EA+hxzOWKqJbt9zQ/Ji3cXD9FZ7J8+J9OdqzK/Ae46TGHHk8/QmxXGFZeFwmKsR355uiF36NUdMuXnJIz+vCCR3b+Thzq1K4a7XPYsB4do26jiSQmJXBi6DhhNoEJd1eBGWYl3pSeiOk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744823700; c=relaxed/simple; bh=goePd7zMNr7BemvNLAfHe6YmAcUBAYJT6AWRUnM94sw=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Dfh6jY9P0Fb/dle2igld2COAhtjjaMSWayS1bnCq8qI0WOLe1oaCWU1+rqruTsOrAFmLTuc+EBmJ6BegpBw8ci0DnpKQEWOF4DOL4xOoDdQ9rOkGUXHnkDr66I7tKxKvj4PWrAM0RAeFOZlpPU9PVZCum5YoWS79g/6W487J80A= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=jqwVnAu1; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="jqwVnAu1" Received: by smtp.kernel.org (Postfix) with ESMTPS id BCBA9C4CEEE; Wed, 16 Apr 2025 17:14:59 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1744823699; bh=goePd7zMNr7BemvNLAfHe6YmAcUBAYJT6AWRUnM94sw=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=jqwVnAu1fvuILmnr+yAQrOXnAAIowEa5lzhvoReGoJ0NNDiFtDVhYjFH4sM4CJFSD jnYrxPy4BAgxcpG/I6etC2/JT4CV2z7oYPPXpYr82ioZKDmpTHBgQosdJOSndC+kej Qvm7pxfJ1nVXyObyn4N7FF1HM6KSvmM4fPx56848NjiaAkpR+uNE66ln/h2vW0Oid1 M/g7Epe9ypBDVEwpMeWvVI4Hzlk1qHQJOYnuSosVe7khxGubJvLB76WsooIy6C8Fs4 q3tVStl28HW86IRhznC7NAXZ3XviHk/+aMZWLNwyohGVmZFHXCvW3f+HVWej15KDVj /8t8QTKkL+osw== Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 9DBE3C369BA; Wed, 16 Apr 2025 17:14:59 +0000 (UTC) Date: Wed, 16 Apr 2025 19:14:50 +0200 Subject: [PATCH net-next v3 4/4] net: phy: dp83822: Add support for changing the MAC termination Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20250416-dp83822-mac-impedance-v3-4-028ac426cddb@liebherr.com> References: <20250416-dp83822-mac-impedance-v3-0-028ac426cddb@liebherr.com> In-Reply-To: <20250416-dp83822-mac-impedance-v3-0-028ac426cddb@liebherr.com> To: Andrew Lunn , Heiner Kallweit , Russell King , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Florian Fainelli , Andrew Lunn , Andrew Davis Cc: netdev@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Dimitri Fedrau , Dimitri Fedrau , "Russell King (Oracle)" X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1744823698; l=3207; i=dimitri.fedrau@liebherr.com; s=20241202; h=from:subject:message-id; bh=aUB5dQ6e7my0jObP7hS6jVNZ0SSji5tioyizzZyZ9Wo=; b=HVfJ/PMe7SX0eZJKufHILN7AgzuaTJja2DNEup344W4GrcWoMxNqv3A7aYOtREJCSY97U8Tdb ZkSIfbvU2/tAgWtVHw+Dgdj1LZxOt2tcD9uouwo12ww3xX2Vm/7m9b4 X-Developer-Key: i=dimitri.fedrau@liebherr.com; a=ed25519; pk=rT653x09JSQvotxIqQl4/XiI4AOiBZrdOGvxDUbb5m8= X-Endpoint-Received: by B4 Relay for dimitri.fedrau@liebherr.com/20241202 with auth_id=290 X-Original-From: Dimitri Fedrau Reply-To: dimitri.fedrau@liebherr.com From: Dimitri Fedrau X-Patchwork-Delegate: kuba@kernel.org From: Dimitri Fedrau The dp83822 provides the possibility to set the resistance value of the the MAC termination. Modifying the resistance to an appropriate value can reduce signal reflections and therefore improve signal quality. Reviewed-by: Russell King (Oracle) Signed-off-by: Dimitri Fedrau --- drivers/net/phy/dp83822.c | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/drivers/net/phy/dp83822.c b/drivers/net/phy/dp83822.c index 14f36154963841dff98be5af4dfbd2760325c13d..490c9f4e5d4e4dc866ef99f426f7497b5e1b49b4 100644 --- a/drivers/net/phy/dp83822.c +++ b/drivers/net/phy/dp83822.c @@ -33,6 +33,7 @@ #define MII_DP83822_MLEDCR 0x25 #define MII_DP83822_LDCTRL 0x403 #define MII_DP83822_LEDCFG1 0x460 +#define MII_DP83822_IOCTRL 0x461 #define MII_DP83822_IOCTRL1 0x462 #define MII_DP83822_IOCTRL2 0x463 #define MII_DP83822_GENCFG 0x465 @@ -118,6 +119,9 @@ #define DP83822_LEDCFG1_LED1_CTRL GENMASK(11, 8) #define DP83822_LEDCFG1_LED3_CTRL GENMASK(7, 4) +/* IOCTRL bits */ +#define DP83822_IOCTRL_MAC_IMPEDANCE_CTRL GENMASK(4, 1) + /* IOCTRL1 bits */ #define DP83822_IOCTRL1_GPIO3_CTRL GENMASK(10, 8) #define DP83822_IOCTRL1_GPIO3_CTRL_LED3 BIT(0) @@ -202,6 +206,7 @@ struct dp83822_private { u32 gpio2_clk_out; bool led_pin_enable[DP83822_MAX_LED_PINS]; int tx_amplitude_100base_tx_index; + int mac_termination_index; }; static int dp83822_config_wol(struct phy_device *phydev, @@ -533,6 +538,12 @@ static int dp83822_config_init(struct phy_device *phydev) FIELD_PREP(DP83822_100BASE_TX_LINE_DRIVER_SWING, dp83822->tx_amplitude_100base_tx_index)); + if (dp83822->mac_termination_index >= 0) + phy_modify_mmd(phydev, MDIO_MMD_VEND2, MII_DP83822_IOCTRL, + DP83822_IOCTRL_MAC_IMPEDANCE_CTRL, + FIELD_PREP(DP83822_IOCTRL_MAC_IMPEDANCE_CTRL, + dp83822->mac_termination_index)); + err = dp83822_config_init_leds(phydev); if (err) return err; @@ -736,6 +747,10 @@ static const u32 tx_amplitude_100base_tx_gain[] = { 93, 95, 97, 98, 100, 102, 103, 105, }; +static const u32 mac_termination[] = { + 99, 91, 84, 78, 73, 69, 65, 61, 58, 55, 53, 50, 48, 46, 44, 43, +}; + static int dp83822_of_init_leds(struct phy_device *phydev) { struct device_node *node = phydev->mdio.dev.of_node; @@ -852,6 +867,23 @@ static int dp83822_of_init(struct phy_device *phydev) } } + ret = phy_get_mac_termination(phydev, dev, &val); + if (!ret) { + for (i = 0; i < ARRAY_SIZE(mac_termination); i++) { + if (mac_termination[i] == val) { + dp83822->mac_termination_index = i; + break; + } + } + + if (dp83822->mac_termination_index < 0) { + phydev_err(phydev, + "Invalid value for mac-termination-ohms property (%u)\n", + val); + return -EINVAL; + } + } + return dp83822_of_init_leds(phydev); } @@ -931,6 +963,7 @@ static int dp8382x_probe(struct phy_device *phydev) return -ENOMEM; dp83822->tx_amplitude_100base_tx_index = -1; + dp83822->mac_termination_index = -1; phydev->priv = dp83822; return 0;