Message ID | 20211123164027.15618-2-kabel@kernel.org (mailing list archive) |
---|---|
State | Changes Requested |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | Extend `phy-mode` to string array | expand |
Context | Check | Description |
---|---|---|
netdev/tree_selection | success | Clearly marked for net-next |
netdev/fixes_present | success | Fixes tag not required for -next series |
netdev/subject_prefix | success | Link |
netdev/cover_letter | success | Series has a cover letter |
netdev/patch_count | success | Link |
netdev/header_inline | success | No static functions without inline keyword in header files |
netdev/build_32bit | success | Errors and warnings before: 0 this patch: 0 |
netdev/cc_maintainers | success | CCed 5 of 5 maintainers |
netdev/build_clang | success | Errors and warnings before: 0 this patch: 0 |
netdev/module_param | success | Was 0 now: 0 |
netdev/verify_signedoff | success | Signed-off-by tag matches author and committer |
netdev/verify_fixes | success | No Fixes tag |
netdev/build_allmodconfig_warn | success | Errors and warnings before: 0 this patch: 0 |
netdev/checkpatch | success | total: 0 errors, 0 warnings, 0 checks, 100 lines checked |
netdev/kdoc | success | Errors and warnings before: 0 this patch: 0 |
netdev/source_inline | success | Was 0 now: 0 |
On Tue, 23 Nov 2021 17:40:20 +0100, Marek Behún wrote: > Sometimes, an ethernet PHY may communicate with ethernet controller with > multiple different PHY connection types, and the software should be able > to choose between them. > > Russell King says: > conventionally phy-mode has meant "this is the mode we want to operate > the PHY interface in" which was fine when PHYs didn't change their > mode depending on the media speed > This is no longer the case, since we have PHYs that can change PHY mode. > > Existing example is the Marvell 88X3310 PHY, which supports connecting > the MAC with the PHY with `xaui` and `rxaui`. The MAC may also support > both modes, but it is possible that a particular board doesn't have > these modes wired (since they use multiple SerDes lanes). > > Another example is one SerDes lane capable of `1000base-x`, `2500base-x` > and `sgmii` when connecting Marvell switches with Marvell ethernet > controller. Currently we mention only one of these modes in device-tree, > and software assumes the other modes are also supported, since they use > the same SerDes lanes. But a board may be able to support `1000base-x` > and not support `2500base-x`, for example due to the higher frequency > not working correctly on a particular board. > > In order for the kernel to know which modes are supported on the board, > we need to be able to specify them all in the device-tree. > > Change the type of property `phy-connection-type` of an ethernet > controller to be an array of the enumerated strings, instead of just one > string. Require at least one item defined. > > Signed-off-by: Marek Behún <kabel@kernel.org> > Reviewed-by: Andrew Lunn <andrew@lunn.ch> > Cc: devicetree@vger.kernel.org > --- > .../bindings/net/ethernet-controller.yaml | 94 ++++++++++--------- > 1 file changed, 49 insertions(+), 45 deletions(-) > Reviewed-by: Rob Herring <robh@kernel.org>
diff --git a/Documentation/devicetree/bindings/net/ethernet-controller.yaml b/Documentation/devicetree/bindings/net/ethernet-controller.yaml index b0933a8c295a..1fd27d45d136 100644 --- a/Documentation/devicetree/bindings/net/ethernet-controller.yaml +++ b/Documentation/devicetree/bindings/net/ethernet-controller.yaml @@ -54,51 +54,55 @@ properties: phy-connection-type: description: - Specifies interface type between the Ethernet device and a physical - layer (PHY) device. - enum: - # There is not a standard bus between the MAC and the PHY, - # something proprietary is being used to embed the PHY in the - # MAC. - - internal - - mii - - gmii - - sgmii - - qsgmii - - tbi - - rev-mii - - rmii - - rev-rmii - - # RX and TX delays are added by the MAC when required - - rgmii - - # RGMII with internal RX and TX delays provided by the PHY, - # the MAC should not add the RX or TX delays in this case - - rgmii-id - - # RGMII with internal RX delay provided by the PHY, the MAC - # should not add an RX delay in this case - - rgmii-rxid - - # RGMII with internal TX delay provided by the PHY, the MAC - # should not add an TX delay in this case - - rgmii-txid - - rtbi - - smii - - xgmii - - trgmii - - 1000base-x - - 2500base-x - - 5gbase-r - - rxaui - - xaui - - # 10GBASE-KR, XFI, SFI - - 10gbase-kr - - usxgmii - - 10gbase-r - - 25gbase-r + Specifies interface types between the Ethernet device and a physical + layer (PHY) device. Since more interface types can be wired between + the MAC and the PHY, this property should list all that are supported + by the board. + minItems: 1 + items: + enum: + # There is not a standard bus between the MAC and the PHY, + # something proprietary is being used to embed the PHY in the + # MAC. + - internal + - mii + - gmii + - sgmii + - qsgmii + - tbi + - rev-mii + - rmii + - rev-rmii + + # RX and TX delays are added by the MAC when required + - rgmii + + # RGMII with internal RX and TX delays provided by the PHY, + # the MAC should not add the RX or TX delays in this case + - rgmii-id + + # RGMII with internal RX delay provided by the PHY, the MAC + # should not add an RX delay in this case + - rgmii-rxid + + # RGMII with internal TX delay provided by the PHY, the MAC + # should not add an TX delay in this case + - rgmii-txid + - rtbi + - smii + - xgmii + - trgmii + - 1000base-x + - 2500base-x + - 5gbase-r + - rxaui + - xaui + + # 10GBASE-KR, XFI, SFI + - 10gbase-kr + - usxgmii + - 10gbase-r + - 25gbase-r phy-mode: $ref: "#/properties/phy-connection-type"