From: "Marek Behún" <kabel@kernel.org>
To: Andrew Lunn <andrew@lunn.ch>, netdev@vger.kernel.org
Cc: devicetree@vger.kernel.org, "Rob Herring" <robh+dt@kernel.org>,
"Russell King" <rmk+kernel@armlinux.org.uk>,
pali@kernel.org, "Marek Behún" <kabel@kernel.org>
Subject: [PATCH RFC net-next 1/8] dt-bindings: ethernet-controller: support multiple PHY connection types
Date: Wed, 10 Nov 2021 20:07:02 +0100 [thread overview]
Message-ID: <20211110190709.16505-2-kabel@kernel.org> (raw)
In-Reply-To: <20211110190709.16505-1-kabel@kernel.org>
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>
---
.../bindings/net/ethernet-controller.yaml | 88 ++++++++++---------
1 file changed, 45 insertions(+), 43 deletions(-)
diff --git a/Documentation/devicetree/bindings/net/ethernet-controller.yaml b/Documentation/devicetree/bindings/net/ethernet-controller.yaml
index b0933a8c295a..05a02fdc7ca9 100644
--- a/Documentation/devicetree/bindings/net/ethernet-controller.yaml
+++ b/Documentation/devicetree/bindings/net/ethernet-controller.yaml
@@ -56,49 +56,51 @@ properties:
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
+ 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"
--
2.32.0
next prev parent reply other threads:[~2021-11-10 19:07 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-11-10 19:07 [PATCH RFC net-next 0/8] Extend `phy-mode` to string array Marek Behún
2021-11-10 19:07 ` Marek Behún [this message]
2021-11-10 19:07 ` [PATCH RFC net-next 2/8] net: Update documentation for *_get_phy_mode() functions Marek Behún
2021-11-10 19:07 ` [PATCH RFC net-next 3/8] device property: add helper function for getting phy mode bitmap Marek Behún
2021-11-10 19:07 ` [PATCH RFC net-next 4/8] net: phylink: update supported_interfaces with modes from fwnode Marek Behún
2021-11-10 19:07 ` [PATCH RFC net-next 5/8] net: phylink: pass supported PHY interface modes to phylib Marek Behún
2021-11-10 19:07 ` [PATCH RFC net-next 6/8] net: phy: marvell10g: Use generic macro for supported interfaces Marek Behún
2021-11-10 19:07 ` [PATCH RFC net-next 7/8] net: phy: marvell10g: Use tabs instead of spaces for indentation Marek Behún
2021-11-10 19:07 ` [PATCH RFC net-next 8/8] net: phy: marvell10g: select host interface configuration Marek Behún
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20211110190709.16505-2-kabel@kernel.org \
--to=kabel@kernel.org \
--cc=andrew@lunn.ch \
--cc=devicetree@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=pali@kernel.org \
--cc=rmk+kernel@armlinux.org.uk \
--cc=robh+dt@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).