Message ID | 20241004090100.1654353-2-o.rempel@pengutronix.de (mailing list archive) |
---|---|
State | Accepted |
Commit | 31a9ce20fa8de604d61c3c341532717cdaf297a0 |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | net: phy: Support master-slave config via device tree | expand |
> 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: > - `forced-master`: Forces the PHY to operate as a master (clock source). > - `forced-slave`: Forces the PHY to operate as a slave (clock receiver). > - `preferred-master`: Prefers the PHY to be master but allows negotiation. > - `preferred-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> > Reviewed-by: Rob Herring (Arm) <robh@kernel.org> > Reviewed-by: Florian Fainelli <florian.fainelli@broadcom.com> > --- > changes v5: > - s/force-/forced-(/g > - s/prefer-/preferred-/g > changes v4: > - add "Reviewed-by: Rob Herring (Arm) <robh@kernel.org>" > changes v3: > - rename "master-slave" to "timing-role" > changes v2: > - use string property instead of multiple flags > > Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de> > --- Reviewed-by: Divya Koppera <divya.koppera@microchip.com>
diff --git a/Documentation/devicetree/bindings/net/ethernet-phy.yaml b/Documentation/devicetree/bindings/net/ethernet-phy.yaml index d9b62741a2259..2c71454ae8e36 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: + - forced-master + - forced-slave + - preferred-master + - preferred-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). + + - 'forced-master': The PHY is forced to operate as a master. + - 'forced-slave': The PHY is forced to operate as a slave. + - 'preferred-master': Prefer the PHY to be master but allow negotiation. + - 'preferred-slave': Prefer the PHY to be slave but allow negotiation. + pses: $ref: /schemas/types.yaml#/definitions/phandle-array maxItems: 1