xref: /OK3568_Linux_fs/kernel/Documentation/devicetree/bindings/net/mdio-mux.txt (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593SmuzhiyunCommon MDIO bus multiplexer/switch properties.
2*4882a593Smuzhiyun
3*4882a593SmuzhiyunAn MDIO bus multiplexer/switch will have several child busses that are
4*4882a593Smuzhiyunnumbered uniquely in a device dependent manner.  The nodes for an MDIO
5*4882a593Smuzhiyunbus multiplexer/switch will have one child node for each child bus.
6*4882a593Smuzhiyun
7*4882a593SmuzhiyunRequired properties:
8*4882a593Smuzhiyun- #address-cells = <1>;
9*4882a593Smuzhiyun- #size-cells = <0>;
10*4882a593Smuzhiyun
11*4882a593SmuzhiyunOptional properties:
12*4882a593Smuzhiyun- mdio-parent-bus : phandle to the parent MDIO bus.
13*4882a593Smuzhiyun
14*4882a593Smuzhiyun- Other properties specific to the multiplexer/switch hardware.
15*4882a593Smuzhiyun
16*4882a593SmuzhiyunRequired properties for child nodes:
17*4882a593Smuzhiyun- #address-cells = <1>;
18*4882a593Smuzhiyun- #size-cells = <0>;
19*4882a593Smuzhiyun- reg : The sub-bus number.
20*4882a593Smuzhiyun
21*4882a593Smuzhiyun
22*4882a593SmuzhiyunExample :
23*4882a593Smuzhiyun
24*4882a593Smuzhiyun	/* The parent MDIO bus. */
25*4882a593Smuzhiyun	smi1: mdio@1180000001900 {
26*4882a593Smuzhiyun		compatible = "cavium,octeon-3860-mdio";
27*4882a593Smuzhiyun		#address-cells = <1>;
28*4882a593Smuzhiyun		#size-cells = <0>;
29*4882a593Smuzhiyun		reg = <0x11800 0x00001900 0x0 0x40>;
30*4882a593Smuzhiyun	};
31*4882a593Smuzhiyun
32*4882a593Smuzhiyun	/*
33*4882a593Smuzhiyun	   An NXP sn74cbtlv3253 dual 1-of-4 switch controlled by a
34*4882a593Smuzhiyun	   pair of GPIO lines.  Child busses 2 and 3 populated with 4
35*4882a593Smuzhiyun	   PHYs each.
36*4882a593Smuzhiyun	 */
37*4882a593Smuzhiyun	mdio-mux {
38*4882a593Smuzhiyun		compatible = "mdio-mux-gpio";
39*4882a593Smuzhiyun		gpios = <&gpio1 3 0>, <&gpio1 4 0>;
40*4882a593Smuzhiyun		mdio-parent-bus = <&smi1>;
41*4882a593Smuzhiyun		#address-cells = <1>;
42*4882a593Smuzhiyun		#size-cells = <0>;
43*4882a593Smuzhiyun
44*4882a593Smuzhiyun		mdio@2 {
45*4882a593Smuzhiyun			reg = <2>;
46*4882a593Smuzhiyun			#address-cells = <1>;
47*4882a593Smuzhiyun			#size-cells = <0>;
48*4882a593Smuzhiyun
49*4882a593Smuzhiyun			phy11: ethernet-phy@1 {
50*4882a593Smuzhiyun				reg = <1>;
51*4882a593Smuzhiyun				marvell,reg-init = <3 0x10 0 0x5777>,
52*4882a593Smuzhiyun					<3 0x11 0 0x00aa>,
53*4882a593Smuzhiyun					<3 0x12 0 0x4105>,
54*4882a593Smuzhiyun					<3 0x13 0 0x0a60>;
55*4882a593Smuzhiyun				interrupt-parent = <&gpio>;
56*4882a593Smuzhiyun				interrupts = <10 8>; /* Pin 10, active low */
57*4882a593Smuzhiyun			};
58*4882a593Smuzhiyun			phy12: ethernet-phy@2 {
59*4882a593Smuzhiyun				reg = <2>;
60*4882a593Smuzhiyun				marvell,reg-init = <3 0x10 0 0x5777>,
61*4882a593Smuzhiyun					<3 0x11 0 0x00aa>,
62*4882a593Smuzhiyun					<3 0x12 0 0x4105>,
63*4882a593Smuzhiyun					<3 0x13 0 0x0a60>;
64*4882a593Smuzhiyun				interrupt-parent = <&gpio>;
65*4882a593Smuzhiyun				interrupts = <10 8>; /* Pin 10, active low */
66*4882a593Smuzhiyun			};
67*4882a593Smuzhiyun			phy13: ethernet-phy@3 {
68*4882a593Smuzhiyun				reg = <3>;
69*4882a593Smuzhiyun				marvell,reg-init = <3 0x10 0 0x5777>,
70*4882a593Smuzhiyun					<3 0x11 0 0x00aa>,
71*4882a593Smuzhiyun					<3 0x12 0 0x4105>,
72*4882a593Smuzhiyun					<3 0x13 0 0x0a60>;
73*4882a593Smuzhiyun				interrupt-parent = <&gpio>;
74*4882a593Smuzhiyun				interrupts = <10 8>; /* Pin 10, active low */
75*4882a593Smuzhiyun			};
76*4882a593Smuzhiyun			phy14: ethernet-phy@4 {
77*4882a593Smuzhiyun				reg = <4>;
78*4882a593Smuzhiyun				marvell,reg-init = <3 0x10 0 0x5777>,
79*4882a593Smuzhiyun					<3 0x11 0 0x00aa>,
80*4882a593Smuzhiyun					<3 0x12 0 0x4105>,
81*4882a593Smuzhiyun					<3 0x13 0 0x0a60>;
82*4882a593Smuzhiyun				interrupt-parent = <&gpio>;
83*4882a593Smuzhiyun				interrupts = <10 8>; /* Pin 10, active low */
84*4882a593Smuzhiyun			};
85*4882a593Smuzhiyun		};
86*4882a593Smuzhiyun
87*4882a593Smuzhiyun		mdio@3 {
88*4882a593Smuzhiyun			reg = <3>;
89*4882a593Smuzhiyun			#address-cells = <1>;
90*4882a593Smuzhiyun			#size-cells = <0>;
91*4882a593Smuzhiyun
92*4882a593Smuzhiyun			phy21: ethernet-phy@1 {
93*4882a593Smuzhiyun				reg = <1>;
94*4882a593Smuzhiyun				marvell,reg-init = <3 0x10 0 0x5777>,
95*4882a593Smuzhiyun					<3 0x11 0 0x00aa>,
96*4882a593Smuzhiyun					<3 0x12 0 0x4105>,
97*4882a593Smuzhiyun					<3 0x13 0 0x0a60>;
98*4882a593Smuzhiyun				interrupt-parent = <&gpio>;
99*4882a593Smuzhiyun				interrupts = <12 8>; /* Pin 12, active low */
100*4882a593Smuzhiyun			};
101*4882a593Smuzhiyun			phy22: ethernet-phy@2 {
102*4882a593Smuzhiyun				reg = <2>;
103*4882a593Smuzhiyun				marvell,reg-init = <3 0x10 0 0x5777>,
104*4882a593Smuzhiyun					<3 0x11 0 0x00aa>,
105*4882a593Smuzhiyun					<3 0x12 0 0x4105>,
106*4882a593Smuzhiyun					<3 0x13 0 0x0a60>;
107*4882a593Smuzhiyun				interrupt-parent = <&gpio>;
108*4882a593Smuzhiyun				interrupts = <12 8>; /* Pin 12, active low */
109*4882a593Smuzhiyun			};
110*4882a593Smuzhiyun			phy23: ethernet-phy@3 {
111*4882a593Smuzhiyun				reg = <3>;
112*4882a593Smuzhiyun				marvell,reg-init = <3 0x10 0 0x5777>,
113*4882a593Smuzhiyun					<3 0x11 0 0x00aa>,
114*4882a593Smuzhiyun					<3 0x12 0 0x4105>,
115*4882a593Smuzhiyun					<3 0x13 0 0x0a60>;
116*4882a593Smuzhiyun				interrupt-parent = <&gpio>;
117*4882a593Smuzhiyun				interrupts = <12 8>; /* Pin 12, active low */
118*4882a593Smuzhiyun			};
119*4882a593Smuzhiyun			phy24: ethernet-phy@4 {
120*4882a593Smuzhiyun				reg = <4>;
121*4882a593Smuzhiyun				marvell,reg-init = <3 0x10 0 0x5777>,
122*4882a593Smuzhiyun					<3 0x11 0 0x00aa>,
123*4882a593Smuzhiyun					<3 0x12 0 0x4105>,
124*4882a593Smuzhiyun					<3 0x13 0 0x0a60>;
125*4882a593Smuzhiyun				interrupt-parent = <&gpio>;
126*4882a593Smuzhiyun				interrupts = <12 8>; /* Pin 12, active low */
127*4882a593Smuzhiyun			};
128*4882a593Smuzhiyun		};
129*4882a593Smuzhiyun	};
130