Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 43185c3b authored by Pankaj Bansal's avatar Pankaj Bansal Committed by David S. Miller
Browse files

dt-bindings: net: Add bindings for mdio mux consumers



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: default avatarPankaj Bansal <pankaj.bansal@nxp.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 24ba1440
Loading
Loading
Loading
Loading
+82 −0
Original line number Diff line number Diff line
Properties for an MDIO bus multiplexer consumer device

This is a special case of MDIO mux  when MDIO mux is defined as a consumer
of a mux producer device. The mux producer can be of any type like mmio mux
producer, gpio mux producer or generic register based mux producer.

Required properties in addition to the MDIO Bus multiplexer properties:

- compatible : should be "mmio-mux-multiplexer"
- mux-controls : mux controller node to use for operating the mux
- mdio-parent-bus : phandle to the parent MDIO bus.

each child node of mdio bus multiplexer consumer device represent a mdio
bus.

for more information please refer
Documentation/devicetree/bindings/mux/mux-controller.txt
and Documentation/devicetree/bindings/net/mdio-mux.txt

Example:
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-multiplexer";
	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@8 {
		reg = <0x8>;
		#address-cells = <1>;
		#size-cells = <0>;
	};

	..
	..
};

mdio-mux-2 { // Mux consumer
	compatible = "mdio-mux-multiplexer";
	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>;
	};

	..
	..
};