RE: [PATCH net-next v4 1/2] dt-bindings: net: ethernet-phy: Add timing-role role property for ethernet PHYs
From: Divya.Koppera
Date: Thu Oct 03 2024 - 06:50:12 EST
> -----Original Message-----
> From: Oleksij Rempel <o.rempel@xxxxxxxxxxxxxx>
> Sent: Tuesday, October 1, 2024 1:07 PM
> To: Andrew Lunn <andrew@xxxxxxx>; Heiner Kallweit
> <hkallweit1@xxxxxxxxx>; David S. Miller <davem@xxxxxxxxxxxxx>; Eric
> Dumazet <edumazet@xxxxxxxxxx>; Jakub Kicinski <kuba@xxxxxxxxxx>; Paolo
> Abeni <pabeni@xxxxxxxxxx>; Rob Herring <robh@xxxxxxxxxx>; Krzysztof
> Kozlowski <krzk+dt@xxxxxxxxxx>; Conor Dooley <conor+dt@xxxxxxxxxx>;
> Florian Fainelli <f.fainelli@xxxxxxxxx>
> Cc: Oleksij Rempel <o.rempel@xxxxxxxxxxxxxx>; kernel@xxxxxxxxxxxxxx;
> linux-kernel@xxxxxxxxxxxxxxx; netdev@xxxxxxxxxxxxxxx; Russell King
> <linux@xxxxxxxxxxxxxxx>; devicetree@xxxxxxxxxxxxxxx
> Subject: [PATCH net-next v4 1/2] dt-bindings: net: ethernet-phy: Add timing-
> role role property for ethernet PHYs
>
> EXTERNAL EMAIL: Do not click links or open attachments unless you know the
> content is safe
>
> 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@xxxxxxxxxxxxxx>
> Reviewed-by: Rob Herring (Arm) <robh@xxxxxxxxxx>
> ---
> changes v4:
> - add "Reviewed-by: Rob Herring (Arm) <robh@xxxxxxxxxx>"
> 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.
> +
I would suggest to use "preferred" instead of "prefer" to be in sync with existing phy library macros.
> pses:
> $ref: /schemas/types.yaml#/definitions/phandle-array
> maxItems: 1
> --
> 2.39.5
>
Reviewed-by: Divya Koppera <divya.koppera@xxxxxxxxxxxxx>