Message ID | 1489421488-300-2-git-send-email-sean.wang@mediatek.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
> +- mediatek,reset-pin: Phandle to the pinctrl node used for the reset. Which > + must be required if the property mediatek,mcm of specified as > + "disabled". See > + Documentation/devicetree/bindings/pinctrl/pinctrl-mt65xx.txt for > + the mediatek pintcrl setting for the details. Hi Sean This appears to be a plan GPIO line. Marvell has the same. It would be nice to be consistent with the naming. From Documentation/devicetree/bindings/net/dsa/marvell.txt Optional properties: - reset-gpios : Should be a gpio specifier for a reset line Andrew
On 03/13/2017 09:11 AM, sean.wang@mediatek.com wrote: > From: Sean Wang <sean.wang@mediatek.com> > > Add device-tree binding for Mediatek MT7530 switch. > > Cc: devicetree@vger.kernel.org > Signed-off-by: Sean Wang <sean.wang@mediatek.com> > --- > .../devicetree/bindings/net/dsa/mt7530.txt | 94 ++++++++++++++++++++++ > 1 file changed, 94 insertions(+) > create mode 100644 Documentation/devicetree/bindings/net/dsa/mt7530.txt > > diff --git a/Documentation/devicetree/bindings/net/dsa/mt7530.txt b/Documentation/devicetree/bindings/net/dsa/mt7530.txt > new file mode 100644 > index 0000000..0e50dbf > --- /dev/null > +++ b/Documentation/devicetree/bindings/net/dsa/mt7530.txt > @@ -0,0 +1,94 @@ > +Mediatek MT7530 Ethernet switch > +================================ > + > +Required properties: > + > +- compatible: Must be compatible = "mediatek,mt7530"; > +- #address-cells: Must be 1 > +- #size-cells: Must be 0 > +- mediatek,ethsys: Phandle to the syscon node that handles the reset. > +- mediatek,ethernet: Phandle to the syscon node that Mediatek ethernet driver > + provides that handles the TRGMII setup used by the switch. > + See > + Documentation/devicetree/bindings/net/mediatek-net.txt for the detailed > + setup on mediatek ethernet. This seems redundant with the CPU port's ethernet phandle here.
On Mon, 2017-03-13 at 17:36 +0100, Andrew Lunn wrote: > > +- mediatek,reset-pin: Phandle to the pinctrl node used for the reset. Which > > + must be required if the property mediatek,mcm of specified as > > + "disabled". See > > + Documentation/devicetree/bindings/pinctrl/pinctrl-mt65xx.txt for > > + the mediatek pintcrl setting for the details. > > Hi Sean > > This appears to be a plan GPIO line. Marvell has the same. It would be > nice to be consistent with the naming. From > Documentation/devicetree/bindings/net/dsa/marvell.txt > > Optional properties: > > - reset-gpios : Should be a gpio specifier for a reset line > > Andrew Hi Andrew, I'll change the property into the consistent way, and usage for GPIO control be also used in devm_gpiod_* instead as you suggested for patch 4. Sean
On Mon, 2017-03-13 at 09:47 -0700, Florian Fainelli wrote: > On 03/13/2017 09:11 AM, sean.wang@mediatek.com wrote: > > From: Sean Wang <sean.wang@mediatek.com> > > > > Add device-tree binding for Mediatek MT7530 switch. > > > > Cc: devicetree@vger.kernel.org > > Signed-off-by: Sean Wang <sean.wang@mediatek.com> > > --- > > .../devicetree/bindings/net/dsa/mt7530.txt | 94 ++++++++++++++++++++++ > > 1 file changed, 94 insertions(+) > > create mode 100644 Documentation/devicetree/bindings/net/dsa/mt7530.txt > > > > diff --git a/Documentation/devicetree/bindings/net/dsa/mt7530.txt b/Documentation/devicetree/bindings/net/dsa/mt7530.txt > > new file mode 100644 > > index 0000000..0e50dbf > > --- /dev/null > > +++ b/Documentation/devicetree/bindings/net/dsa/mt7530.txt > > @@ -0,0 +1,94 @@ > > +Mediatek MT7530 Ethernet switch > > +================================ > > + > > +Required properties: > > + > > +- compatible: Must be compatible = "mediatek,mt7530"; > > +- #address-cells: Must be 1 > > +- #size-cells: Must be 0 > > +- mediatek,ethsys: Phandle to the syscon node that handles the reset. > > +- mediatek,ethernet: Phandle to the syscon node that Mediatek ethernet driver > > + provides that handles the TRGMII setup used by the switch. > > + See > > + Documentation/devicetree/bindings/net/mediatek-net.txt for the detailed > > + setup on mediatek ethernet. > > This seems redundant with the CPU port's ethernet phandle here. Okay, it is indeed better to reuse the phandle embedded in the cpu ports. I will reuse this in the next one. By the ways, I have a question which is could current DSA framework allows managing the fabric designated from "multiple cpu ports" to "user ports" in any combination in brctl and in other existing commands? For example. I assume that there are two cpu port called 5, and 6.and there are five user ports called 0, 1, 2 and 3. and the default fabric on the switch is mapping from { 5 } <-> { 0, 1, 2, 3 ,4 } where members in the braces I assumes they also can communicate with each other. Is it feasible for changing the fabric into other combinations in the runtime such as {5} <-> {0, 1, 2, 3} and {6} <-> {4} {5} <-> {0, 1, 2} and {6} <-> {3, 4} or {6} <-> {0, 1} and {6} <-> {2, 3, 4} or .... {6} <-> {0, 1, 2, 3 ,4} ? After some trace code, I found it seemed that only one cpu port could be supported via one dsa registration. Sean
> By the ways, I have a question which is could current DSA framework > allows managing the fabric designated from "multiple cpu ports" to "user > ports" in any combination in brctl and in other existing commands? > > For example. > > I assume that there are two cpu port called 5, and 6.and there are five > user ports called 0, 1, 2 and 3. and the default fabric on the switch is > mapping from { 5 } <-> { 0, 1, 2, 3 ,4 } where members in the braces I > assumes they also can communicate with each other. > > Is it feasible for changing the fabric into other combinations in the > runtime such as > {5} <-> {0, 1, 2, 3} and {6} <-> {4} > {5} <-> {0, 1, 2} and {6} <-> {3, 4} or > {6} <-> {0, 1} and {6} <-> {2, 3, 4} or > .... > {6} <-> {0, 1, 2, 3 ,4} ? > > After some trace code, I found it seemed that only one cpu port could be > supported via one dsa registration. Hi Sean This is on our TODO list, and getting near the top of Florians list, as far as i understand. A few years ago i did make a proof of concept implementation for this, and the new device tree binding was designed with this in mind. Andrew
diff --git a/Documentation/devicetree/bindings/net/dsa/mt7530.txt b/Documentation/devicetree/bindings/net/dsa/mt7530.txt new file mode 100644 index 0000000..0e50dbf --- /dev/null +++ b/Documentation/devicetree/bindings/net/dsa/mt7530.txt @@ -0,0 +1,94 @@ +Mediatek MT7530 Ethernet switch +================================ + +Required properties: + +- compatible: Must be compatible = "mediatek,mt7530"; +- #address-cells: Must be 1 +- #size-cells: Must be 0 +- mediatek,ethsys: Phandle to the syscon node that handles the reset. +- mediatek,ethernet: Phandle to the syscon node that Mediatek ethernet driver + provides that handles the TRGMII setup used by the switch. + See + Documentation/devicetree/bindings/net/mediatek-net.txt for the detailed + setup on mediatek ethernet. +- mediatek,mcm: String, should be "enabled" or "disabled" to indicate that + either MT7530 is the part on multi-chip module belong to MT7623A has + or the remotely standalone chip as the function MT7623N reference board + provided for. +- core-supply: Phandle to the regulator node necessary for the core power. +- io-supply: Phandle to the regulator node necessary for the I/O power + See Documentation/devicetree/bindings/regulator/mt6323-regulator.txt + for details for the regulator setup on these boards. +- mediatek,reset-pin: Phandle to the pinctrl node used for the reset. Which + must be required if the property mediatek,mcm of specified as + "disabled". See + Documentation/devicetree/bindings/pinctrl/pinctrl-mt65xx.txt for + the mediatek pintcrl setting for the details. + +Each port children node within ports container must have the following +mandatory properties: +- reg : Port address described must be 6 for CPU port + and from 0 to 5 for user ports. + +See Documentation/devicetree/bindings/dsa/dsa.txt for a list of additional +required, optional properties and how the integrated switch subnodes must +be specified. + +Example: + + &mdio0 { + switch@0 { + compatible = "mediatek,mt7530"; + #address-cells = <1>; + #size-cells = <0>; + reg = <0>; + + mediatek,ethsys = <ðsys>; + mediatek,ethernet = <ð>; + mediatek,mcm = "enabled"; + core-supply = <&mt6323_vpa_reg>; + io-supply = <&mt6323_vemc3v3_reg>; + + ports { + #address-cells = <1>; + #size-cells = <0>; + reg = <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"; + }; + + port@4 { + reg = <4>; + label = "wan"; + }; + + port@6 { + reg = <6>; + label = "cpu"; + ethernet = <ð>; + phy-mode = "trgmii"; + fixed-link { + speed = <1000>; + full-duplex; + }; + }; + }; + }; + };