[PATCH net-next v3 1/2] dt-bindings: net: ethernet-phy: Add timing-role role property for ethernet PHYs

Oleksij Rempel posted 2 patches 2 months, 2 weeks ago
There is a newer version of this series
[PATCH net-next v3 1/2] dt-bindings: net: ethernet-phy: Add timing-role role property for ethernet PHYs
Posted by Oleksij Rempel 2 months, 2 weeks ago
This patch introduces a new `timing-role` property in the device tree
bindings for configuring the master/slave role of PHYs. This is
essential for scenarios where hardware strap pins are unavailable or
incorrectly configured.

The `timing-role` property supports the following values:
- `force-master`: Forces the PHY to operate as a master (clock source).
- `force-slave`: Forces the PHY to operate as a slave (clock receiver).
- `prefer-master`: Prefers the PHY to be master but allows negotiation.
- `prefer-slave`: Prefers the PHY to be slave but allows negotiation.

The terms "master" and "slave" are retained in this context to align
with the IEEE 802.3 standards, where they are used to describe the roles
of PHY devices in managing clock signals for data transmission. In
particular, the terms are used in specifications for 1000Base-T and
MultiGBASE-T PHYs, among others. Although there is an effort to adopt
more inclusive terminology, replacing these terms could create
discrepancies between the Linux kernel and the established standards,
documentation, and existing hardware interfaces.

Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de>
---
changes v3:
- rename "master-slave" to "timing-role"
changes v2:
- use string property instead of multiple flags
---
 .../devicetree/bindings/net/ethernet-phy.yaml | 21 +++++++++++++++++++
 1 file changed, 21 insertions(+)

diff --git a/Documentation/devicetree/bindings/net/ethernet-phy.yaml b/Documentation/devicetree/bindings/net/ethernet-phy.yaml
index d9b62741a2259..da9eaa811d70f 100644
--- a/Documentation/devicetree/bindings/net/ethernet-phy.yaml
+++ b/Documentation/devicetree/bindings/net/ethernet-phy.yaml
@@ -158,6 +158,27 @@ properties:
       Mark the corresponding energy efficient ethernet mode as
       broken and request the ethernet to stop advertising it.
 
+  timing-role:
+    $ref: /schemas/types.yaml#/definitions/string
+    enum:
+      - force-master
+      - force-slave
+      - prefer-master
+      - prefer-slave
+    description: |
+      Specifies the timing role of the PHY in the network link. This property is
+      required for setups where the role must be explicitly assigned via the
+      device tree due to limitations in hardware strapping or incorrect strap
+      configurations.
+      It is applicable to Single Pair Ethernet (1000/100/10Base-T1) and other
+      PHY types, including 1000Base-T, where it controls whether the PHY should
+      be a master (clock source) or a slave (clock receiver).
+
+      - 'force-master': The PHY is forced to operate as a master.
+      - 'force-slave': The PHY is forced to operate as a slave.
+      - 'prefer-master': Prefer the PHY to be master but allow negotiation.
+      - 'prefer-slave': Prefer the PHY to be slave but allow negotiation.
+
   pses:
     $ref: /schemas/types.yaml#/definitions/phandle-array
     maxItems: 1
-- 
2.39.2
Re: [PATCH net-next v3 1/2] dt-bindings: net: ethernet-phy: Add timing-role role property for ethernet PHYs
Posted by Russell King (Oracle) 2 months, 1 week ago
On Fri, Sep 13, 2024 at 10:40:21AM +0200, Oleksij Rempel wrote:
> This patch introduces a new `timing-role` property in the device tree
> bindings for configuring the master/slave role of PHYs. This is
> essential for scenarios where hardware strap pins are unavailable or
> incorrectly configured.
> 
> The `timing-role` property supports the following values:
> - `force-master`: Forces the PHY to operate as a master (clock source).
> - `force-slave`: Forces the PHY to operate as a slave (clock receiver).
> - `prefer-master`: Prefers the PHY to be master but allows negotiation.
> - `prefer-slave`: Prefers the PHY to be slave but allows negotiation.
> 
> The terms "master" and "slave" are retained in this context to align
> with the IEEE 802.3 standards, where they are used to describe the roles
> of PHY devices in managing clock signals for data transmission. In
> particular, the terms are used in specifications for 1000Base-T and
> MultiGBASE-T PHYs, among others. Although there is an effort to adopt
> more inclusive terminology, replacing these terms could create
> discrepancies between the Linux kernel and the established standards,
> documentation, and existing hardware interfaces.

Does this provide the boot-time default that userspace is subsequently
allowed to change through ethtool, or does it provide a fixed
configuration?

-- 
RMK's Patch system: https://www.armlinux.org.uk/developer/patches/
FTTP is here! 80Mbps down 10Mbps up. Decent connectivity at last!
Re: [PATCH net-next v3 1/2] dt-bindings: net: ethernet-phy: Add timing-role role property for ethernet PHYs
Posted by Oleksij Rempel 2 months, 1 week ago
On Tue, Sep 17, 2024 at 10:11:03AM +0100, Russell King (Oracle) wrote:
> On Fri, Sep 13, 2024 at 10:40:21AM +0200, Oleksij Rempel wrote:
> > This patch introduces a new `timing-role` property in the device tree
> > bindings for configuring the master/slave role of PHYs. This is
> > essential for scenarios where hardware strap pins are unavailable or
> > incorrectly configured.
> > 
> > The `timing-role` property supports the following values:
> > - `force-master`: Forces the PHY to operate as a master (clock source).
> > - `force-slave`: Forces the PHY to operate as a slave (clock receiver).
> > - `prefer-master`: Prefers the PHY to be master but allows negotiation.
> > - `prefer-slave`: Prefers the PHY to be slave but allows negotiation.
> > 
> > The terms "master" and "slave" are retained in this context to align
> > with the IEEE 802.3 standards, where they are used to describe the roles
> > of PHY devices in managing clock signals for data transmission. In
> > particular, the terms are used in specifications for 1000Base-T and
> > MultiGBASE-T PHYs, among others. Although there is an effort to adopt
> > more inclusive terminology, replacing these terms could create
> > discrepancies between the Linux kernel and the established standards,
> > documentation, and existing hardware interfaces.
> 
> Does this provide the boot-time default that userspace is subsequently
> allowed to change through ethtool, or does it provide a fixed
> configuration?

It provides the boot-time default.

-- 
Pengutronix e.K.                           |                             |
Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |
Re: [PATCH net-next v3 1/2] dt-bindings: net: ethernet-phy: Add timing-role role property for ethernet PHYs
Posted by Rob Herring (Arm) 2 months, 2 weeks ago
On Fri, 13 Sep 2024 10:40:21 +0200, Oleksij Rempel wrote:
> This patch introduces a new `timing-role` property in the device tree
> bindings for configuring the master/slave role of PHYs. This is
> essential for scenarios where hardware strap pins are unavailable or
> incorrectly configured.
> 
> The `timing-role` property supports the following values:
> - `force-master`: Forces the PHY to operate as a master (clock source).
> - `force-slave`: Forces the PHY to operate as a slave (clock receiver).
> - `prefer-master`: Prefers the PHY to be master but allows negotiation.
> - `prefer-slave`: Prefers the PHY to be slave but allows negotiation.
> 
> The terms "master" and "slave" are retained in this context to align
> with the IEEE 802.3 standards, where they are used to describe the roles
> of PHY devices in managing clock signals for data transmission. In
> particular, the terms are used in specifications for 1000Base-T and
> MultiGBASE-T PHYs, among others. Although there is an effort to adopt
> more inclusive terminology, replacing these terms could create
> discrepancies between the Linux kernel and the established standards,
> documentation, and existing hardware interfaces.
> 
> Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de>
> ---
> changes v3:
> - rename "master-slave" to "timing-role"
> changes v2:
> - use string property instead of multiple flags
> ---
>  .../devicetree/bindings/net/ethernet-phy.yaml | 21 +++++++++++++++++++
>  1 file changed, 21 insertions(+)
> 

Reviewed-by: Rob Herring (Arm) <robh@kernel.org>