diff mbox series

dt-bindings: Add bindings for mdio mux consumers

Message ID 20190221182349.4057-1-pankaj.bansal@nxp.com
State Superseded, archived
Headers show
Series dt-bindings: Add bindings for mdio mux consumers | expand

Checks

Context Check Description
robh/checkpatch success

Commit Message

Pankaj Bansal Feb. 21, 2019, 12:59 p.m. UTC
When we use the bindings defined in Documentation/devicetree/bindings/mux
to define mdio mux in producer and consumer terms, it results in two
devices. one is mux producer and other is mux consumer.

Add the bindings needed for Mdio mux consumer devices.

Signed-off-by: Pankaj Bansal <pankaj.bansal@nxp.com>
---
 .../devicetree/bindings/net/mdio-mux.txt     | 73 ++++++++++++++++++
 1 file changed, 73 insertions(+)

Comments

Andrew Lunn Feb. 21, 2019, 1:45 p.m. UTC | #1
On Thu, Feb 21, 2019 at 12:59:19PM +0000, Pankaj Bansal wrote:
> When we use the bindings defined in Documentation/devicetree/bindings/mux
> to define mdio mux in producer and consumer terms, it results in two
> devices. one is mux producer and other is mux consumer.
> 
> Add the bindings needed for Mdio mux consumer devices.

Hi Pankaj

Please thread this binding patch with the code which implements the
binding. The two should be reviewed together.

Thanks
	Andrew
Pankaj Bansal Feb. 21, 2019, 2:10 p.m. UTC | #2
> -----Original Message-----
> From: Andrew Lunn [mailto:andrew@lunn.ch]
> Sent: Thursday, 21 February, 2019 07:15 PM
> To: Pankaj Bansal <pankaj.bansal@nxp.com>
> Cc: Leo Li <leoyang.li@nxp.com>; Peter Rosin <peda@axentia.se>; Florian
> Fainelli <f.fainelli@gmail.com>; Heiner Kallweit <hkallweit1@gmail.com>; Rob
> Herring <robh+dt@kernel.org>; Mark Rutland <mark.rutland@arm.com>;
> devicetree@vger.kernel.org; netdev@vger.kernel.org
> Subject: Re: [PATCH] dt-bindings: Add bindings for mdio mux consumers
> 
> On Thu, Feb 21, 2019 at 12:59:19PM +0000, Pankaj Bansal wrote:
> > When we use the bindings defined in
> > Documentation/devicetree/bindings/mux
> > to define mdio mux in producer and consumer terms, it results in two
> > devices. one is mux producer and other is mux consumer.
> >
> > Add the bindings needed for Mdio mux consumer devices.
> 
> Hi Pankaj
> 
> Please thread this binding patch with the code which implements the binding.
> The two should be reviewed together.

OK. If you have any comments about this patch, then please let me know.
I will incorporate these when I send both patches together.

> 
> Thanks
> 	Andrew
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/net/mdio-mux.txt b/Documentation/devicetree/bindings/net/mdio-mux.txt
index f58571f36570..bd198d1c6f10 100644
--- a/Documentation/devicetree/bindings/net/mdio-mux.txt
+++ b/Documentation/devicetree/bindings/net/mdio-mux.txt
@@ -18,8 +18,16 @@  Required properties for child nodes:
 - #size-cells = <0>;
 - reg : The sub-bus number.
 
+Required properties when Mdio mux node is consumer of a separate mux producer
+node.
+- compatible : should be "mmio-mux"
+- mux-controls : mux controller node to use for operating the mux
+- mdio-parent-bus : phandle to the parent MDIO bus.
+for more information please refer Documentation/devicetree/bindings/mux/
+
 
 Example :
+The mux Producer and consumer nodes are same.
 
 	/* The parent MDIO bus. */
 	smi1: mdio@1180000001900 {
@@ -127,3 +135,68 @@  Example :
 			};
 		};
 	};
+
+Example 2:
+In below example the Mux producer and consumer are separate nodes.
+
+&i2c0 {
+        fpga@66 { // fpga connected to i2c
+                compatible = "fsl,lx2160aqds-fpga", "fsl,fpga-qixis-i2c",
+                             "simple-mfd";
+                reg = <0x66>;
+
+                mux: mux-controller { // Mux Producer
+                        compatible = "reg-mux";
+                        #mux-control-cells = <1>;
+                        mux-reg-masks = <0x54 0xf8>, /* 0: reg 0x54, bits 7:3 */
+                                        <0x54 0x07>; /* 1: reg 0x54, bits 2:0 */
+                };
+        };
+};
+
+mdio-mux-1 { // Mux consumer
+        compatible = "mdio-mux";
+        mux-controls = <&mux 0>;
+        mdio-parent-bus = <&emdio1>;
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        mdio@0 {
+                reg = <0x0>;
+                #address-cells = <1>;
+                #size-cells = <0>;
+        };
+
+        mdio@40 {
+                reg = <0x40>;
+                #address-cells = <1>;
+                #size-cells = <0>;
+        };
+
+        ..
+        ..
+};
+
+mdio-mux-2 { // Mux consumer
+        compatible = "mdio-mux";
+        mux-controls = <&mux 1>;
+        mdio-parent-bus = <&emdio2>;
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        mdio@0 {
+                reg = <0x0>;
+                #address-cells = <1>;
+                #size-cells = <0>;
+        };
+
+        mdio@1 {
+                reg = <0x1>;
+                #address-cells = <1>;
+                #size-cells = <0>;
+        };
+
+        ..
+        ..
+};
+