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@xxxxxxxxxx> > Reviewed-by: Andrew Lunn <andrew@xxxxxxx> > Cc: devicetree@xxxxxxxxxxxxxxx > --- > .../bindings/net/ethernet-controller.yaml | 94 ++++++++++--------- > 1 file changed, 49 insertions(+), 45 deletions(-) > Reviewed-by: Rob Herring <robh@xxxxxxxxxx>