xref: /freebsd/sys/contrib/device-tree/Bindings/net/mdio-mux-multiplexer.txt (revision dd41de95a84d979615a2ef11df6850622bf6184e)
1Properties for an MDIO bus multiplexer consumer device
2
3This is a special case of MDIO mux  when MDIO mux is defined as a consumer
4of a mux producer device. The mux producer can be of any type like mmio mux
5producer, gpio mux producer or generic register based mux producer.
6
7Required properties in addition to the MDIO Bus multiplexer properties:
8
9- compatible : should be "mmio-mux-multiplexer"
10- mux-controls : mux controller node to use for operating the mux
11- mdio-parent-bus : phandle to the parent MDIO bus.
12
13each child node of mdio bus multiplexer consumer device represent a mdio
14bus.
15
16for more information please refer
17Documentation/devicetree/bindings/mux/mux-controller.txt
18and Documentation/devicetree/bindings/net/mdio-mux.txt
19
20Example:
21In below example the Mux producer and consumer are separate nodes.
22
23&i2c0 {
24	fpga@66 { // fpga connected to i2c
25		compatible = "fsl,lx2160aqds-fpga", "fsl,fpga-qixis-i2c",
26			     "simple-mfd";
27		reg = <0x66>;
28
29		mux: mux-controller { // Mux Producer
30			compatible = "reg-mux";
31			#mux-control-cells = <1>;
32			mux-reg-masks = <0x54 0xf8>, /* 0: reg 0x54, bits 7:3 */
33					<0x54 0x07>; /* 1: reg 0x54, bits 2:0 */
34		};
35	};
36};
37
38mdio-mux-1 { // Mux consumer
39	compatible = "mdio-mux-multiplexer";
40	mux-controls = <&mux 0>;
41	mdio-parent-bus = <&emdio1>;
42	#address-cells = <1>;
43	#size-cells = <0>;
44
45	mdio@0 {
46		reg = <0x0>;
47		#address-cells = <1>;
48		#size-cells = <0>;
49	};
50
51	mdio@8 {
52		reg = <0x8>;
53		#address-cells = <1>;
54		#size-cells = <0>;
55	};
56
57	..
58	..
59};
60
61mdio-mux-2 { // Mux consumer
62	compatible = "mdio-mux-multiplexer";
63	mux-controls = <&mux 1>;
64	mdio-parent-bus = <&emdio2>;
65	#address-cells = <1>;
66	#size-cells = <0>;
67
68	mdio@0 {
69		reg = <0x0>;
70		#address-cells = <1>;
71		#size-cells = <0>;
72	};
73
74	mdio@1 {
75		reg = <0x1>;
76		#address-cells = <1>;
77		#size-cells = <0>;
78	};
79
80	..
81	..
82};
83