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