Message ID | 20190624145251.4849-5-opensource@vdorst.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | net: dsa: MT7530: Convert to PHYLINK and add support for port 5 | expand |
On 6/24/19 7:52 AM, René van Dorst wrote: > On some platforum the external phy can only interface to the port 5 of the > switch because the RGMII TX and RX lines are swapped. But it still can be > useful to use the internal phy of the switch to act as a WAN port which > connectes to the 2nd GMAC. This gives WAN port dedicated bandwidth to > the SOC. This increases the LAN and WAN routing. > > By adding the optional property mediatek,ephy-handle, the external phy > is put in isolation mode when internal phy is connected to 2nd GMAC via > phy-handle property. Most platforms we have seen so far implement this logic with a mdio-mux, can you see if that is possible here? stmmac has plenty of examples like those.
Quoting Florian Fainelli <f.fainelli@gmail.com>: Hi Florian > On 6/24/19 7:52 AM, René van Dorst wrote: >> On some platforum the external phy can only interface to the port 5 of the >> switch because the RGMII TX and RX lines are swapped. But it still can be >> useful to use the internal phy of the switch to act as a WAN port which >> connectes to the 2nd GMAC. This gives WAN port dedicated bandwidth to >> the SOC. This increases the LAN and WAN routing. >> >> By adding the optional property mediatek,ephy-handle, the external phy >> is put in isolation mode when internal phy is connected to 2nd GMAC via >> phy-handle property. > > Most platforms we have seen so far implement this logic with a mdio-mux, > can you see if that is possible here? stmmac has plenty of examples like > those. May I don't understand it correctly, but all the devices are on the same MDIO bus. I tried to make a ASCII diagram to make it a bit more clear. +-------------------+ +----------------------------------------------+ | SOC MT7621/3 | | MT7530 SWITCH | | +-------------+ |(T)RGMII BUS | +-------------+ INTERNAL | | | 1st GMAC <-------------------------> PORT 6 | MII BUS +----------+ | | +-------------+ | | +-------------+ +------> GMAC5 | | | | | | +----------+ | | +-------------+ | RGMII BUS | +-------------+ | | | | 2nd GMAC <------------------+------> PORT 5 +-----+ +----------+ | | +-------------+ | | | +-------------+ +------> PHY P0 +<--+ | | | | | | +----------+ | | | +-------------+ | MDIO BUS | | | | | | | MDIO +--------+ | | | +----------+ | | | +-------------+ | | | | +------> PHY P4 +<--+ | | | | | | +----------+ | | +-------------------+ | | +--------------------------------------------|-+ | | +-------------+ | | | | EXTERNAL | | | +-------> PHY AT8033 | SGMII BUS +----------+ | | | +-----------> SFP CAGE | | +---------------->+ | +----------+ | | | | | | +-------------+ | +----------------------------------------------------------+ I don't see why I need a MDIO mux. Devices; 2nd GMAC, external phy and port 5 share the same RGMII bus. Depending on the port 5 mux settings, port 5 is acting as a GMAC of PHY of port 0/4. As long as the unused devices doesn't drive the RGMII bus we are good. 2nd GMAC RGMII control is currently set with a pinctrl "RGMII2". Port 5 and external phy are done in mt7530_port5_setup() depending on the device-tree. Greats, René > -- > Florian
On 6/25/19 2:30 AM, René van Dorst wrote: > Quoting Florian Fainelli <f.fainelli@gmail.com>: > > Hi Florian > >> On 6/24/19 7:52 AM, René van Dorst wrote: >>> On some platforum the external phy can only interface to the port 5 >>> of the >>> switch because the RGMII TX and RX lines are swapped. But it still >>> can be >>> useful to use the internal phy of the switch to act as a WAN port which >>> connectes to the 2nd GMAC. This gives WAN port dedicated bandwidth to >>> the SOC. This increases the LAN and WAN routing. >>> >>> By adding the optional property mediatek,ephy-handle, the external phy >>> is put in isolation mode when internal phy is connected to 2nd GMAC via >>> phy-handle property. >> >> Most platforms we have seen so far implement this logic with a mdio-mux, >> can you see if that is possible here? stmmac has plenty of examples like >> those. > > May I don't understand it correctly, but all the devices are on the same > MDIO > bus. > I tried to make a ASCII diagram to make it a bit more clear. Based on your diagram and your explanation, then I do not really see a need for that property you can scan all of the switch port's properties and determined which configuration is applied and perform the PHY isolation as necessary. It looks like you are using this property as a way to simplify your configuration logic, that is not quite what Device Tree is meant for.
diff --git a/Documentation/devicetree/bindings/net/dsa/mt7530.txt b/Documentation/devicetree/bindings/net/dsa/mt7530.txt index f3486780f2c2..1e79fba5a774 100644 --- a/Documentation/devicetree/bindings/net/dsa/mt7530.txt +++ b/Documentation/devicetree/bindings/net/dsa/mt7530.txt @@ -60,10 +60,20 @@ Depending on how the external PHY is wired: 2. swapped: RGMII TX, RX are swapped; external phy interface with the switch as a ethernet port. But can't interface to the 2nd GMAC. +Optional property: + +- mediatek,ephy-handle: Phandle of the external phy. In case you want to use + P0/4 as WAN port and have an external phy attached. + With this property the external phy is put in isolation + and powerdown mode in mode 2. + Based on the DT the port 5 mode is configured. Driver tries to lookup the phy-handle of the 2nd GMAC of the master device. -When phy-handle matches PHY of port 0 or 4 then port 5 set-up as mode 2. +When phy-handle matches PHY of port 0 or 4 then port 5 set-up as mode 2 and when +propertly "mediatek,ephy-handle" is valid it puts the externel phy in isolation +mode. + phy-mode must be set, see also example 2 below! * mt7621: phy-mode = "rgmii-txid"; * mt7623: phy-mode = "rgmii"; @@ -309,3 +319,107 @@ Example 3: MT7621: Port 5 is connected to external PHY: Port 5 -> external PHY. }; }; }; + +Example 4: MT7621: Port 4 is WAN port: 2nd GMAC -> P5 -> PHY P4 + with an external phy. + +ð { + status = "okay"; + + gmac0: mac@0 { + compatible = "mediatek,eth-mac"; + reg = <0>; + phy-mode = "rgmii"; + + fixed-link { + speed = <1000>; + full-duplex; + pause; + }; + }; + + gmac1: mac@1 { + compatible = "mediatek,eth-mac"; + reg = <1>; + phy-mode = "rgmii-txid"; + phy-handle = <&phy4>; + }; + + mdio: mdio-bus { + #address-cells = <1>; + #size-cells = <0>; + + /* Internal phy 4 */ + phy4: ethernet-phy@4 { + reg = <4>; + }; + + /* external phy addr 0x07 */ + ephy5: ethernet-phy@7 { + reg = <7>; + }; + + mt7530: switch@1f { + compatible = "mediatek,mt7621"; + #address-cells = <1>; + #size-cells = <0>; + reg = <0x1f>; + pinctrl-names = "default"; + mediatek,mcm; + + /* Put this external phy in power-down and isolation + * when port 5 is used in PHY P0/P4 or DSA mode. Because + * external phy and port 5 share same bus to 2nd GMAC. + */ + mediatek,ephy-handle = <&ephy5>; + + resets = <&rstctrl 2>; + reset-names = "mcm"; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + label = "lan0"; + }; + + port@1 { + reg = <1>; + label = "lan1"; + }; + + port@2 { + reg = <2>; + label = "lan2"; + }; + + port@3 { + reg = <3>; + label = "lan3"; + }; + +/* Commented out. Port 4 is handled by 2nd GMAC. + port@4 { + reg = <4>; + label = "lan4"; + }; +*/ + + cpu_port0: port@6 { + reg = <6>; + label = "cpu"; + ethernet = <&gmac0>; + phy-mode = "rgmii"; + + fixed-link { + speed = <1000>; + full-duplex; + pause; + }; + }; + }; + }; + }; +};
On some platforum the external phy can only interface to the port 5 of the switch because the RGMII TX and RX lines are swapped. But it still can be useful to use the internal phy of the switch to act as a WAN port which connectes to the 2nd GMAC. This gives WAN port dedicated bandwidth to the SOC. This increases the LAN and WAN routing. By adding the optional property mediatek,ephy-handle, the external phy is put in isolation mode when internal phy is connected to 2nd GMAC via phy-handle property. Signed-off-by: René van Dorst <opensource@vdorst.com> --- .../devicetree/bindings/net/dsa/mt7530.txt | 116 +++++++++++++++++- 1 file changed, 115 insertions(+), 1 deletion(-)