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>;
	};

	..
	..
};
