diff mbox

[net-next,1/4] dt-bindings: net: dsa: add Mediatek MT7530 binding

Message ID 1489421488-300-2-git-send-email-sean.wang@mediatek.com
State Changes Requested, archived
Delegated to: David Miller
Headers show

Commit Message

Sean Wang March 13, 2017, 4:11 p.m. UTC
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

Comments

Andrew Lunn March 13, 2017, 4:36 p.m. UTC | #1
> +- 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
Florian Fainelli March 13, 2017, 4:47 p.m. UTC | #2
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.
Sean Wang March 14, 2017, 6:06 a.m. UTC | #3
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
Sean Wang March 14, 2017, 6:52 a.m. UTC | #4
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
Andrew Lunn March 14, 2017, 11:58 a.m. UTC | #5
> 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 mbox

Patch

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 = <&ethsys>;
+			mediatek,ethernet = <&eth>;
+			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 = <&eth>;
+					phy-mode = "trgmii";
+					fixed-link {
+						speed = <1000>;
+						full-duplex;
+					};
+				};
+			};
+		};
+	};