xref: /freebsd-src/sys/contrib/device-tree/Bindings/net/mdio-mux-gpio.txt (revision c66ec88fed842fbaad62c30d510644ceb7bd2d71)
1*c66ec88fSEmmanuel VadotProperties for an MDIO bus multiplexer/switch controlled by GPIO pins.
2*c66ec88fSEmmanuel Vadot
3*c66ec88fSEmmanuel VadotThis is a special case of a MDIO bus multiplexer.  One or more GPIO
4*c66ec88fSEmmanuel Vadotlines are used to control which child bus is connected.
5*c66ec88fSEmmanuel Vadot
6*c66ec88fSEmmanuel VadotRequired properties in addition to the generic multiplexer properties:
7*c66ec88fSEmmanuel Vadot
8*c66ec88fSEmmanuel Vadot- compatible : mdio-mux-gpio.
9*c66ec88fSEmmanuel Vadot- gpios : GPIO specifiers for each GPIO line.  One or more must be specified.
10*c66ec88fSEmmanuel Vadot
11*c66ec88fSEmmanuel Vadot
12*c66ec88fSEmmanuel VadotExample :
13*c66ec88fSEmmanuel Vadot
14*c66ec88fSEmmanuel Vadot	/* The parent MDIO bus. */
15*c66ec88fSEmmanuel Vadot	smi1: mdio@1180000001900 {
16*c66ec88fSEmmanuel Vadot		compatible = "cavium,octeon-3860-mdio";
17*c66ec88fSEmmanuel Vadot		#address-cells = <1>;
18*c66ec88fSEmmanuel Vadot		#size-cells = <0>;
19*c66ec88fSEmmanuel Vadot		reg = <0x11800 0x00001900 0x0 0x40>;
20*c66ec88fSEmmanuel Vadot	};
21*c66ec88fSEmmanuel Vadot
22*c66ec88fSEmmanuel Vadot	/*
23*c66ec88fSEmmanuel Vadot	   An NXP sn74cbtlv3253 dual 1-of-4 switch controlled by a
24*c66ec88fSEmmanuel Vadot	   pair of GPIO lines.  Child busses 2 and 3 populated with 4
25*c66ec88fSEmmanuel Vadot	   PHYs each.
26*c66ec88fSEmmanuel Vadot	 */
27*c66ec88fSEmmanuel Vadot	mdio-mux {
28*c66ec88fSEmmanuel Vadot		compatible = "mdio-mux-gpio";
29*c66ec88fSEmmanuel Vadot		gpios = <&gpio1 3 0>, <&gpio1 4 0>;
30*c66ec88fSEmmanuel Vadot		mdio-parent-bus = <&smi1>;
31*c66ec88fSEmmanuel Vadot		#address-cells = <1>;
32*c66ec88fSEmmanuel Vadot		#size-cells = <0>;
33*c66ec88fSEmmanuel Vadot
34*c66ec88fSEmmanuel Vadot		mdio@2 {
35*c66ec88fSEmmanuel Vadot			reg = <2>;
36*c66ec88fSEmmanuel Vadot			#address-cells = <1>;
37*c66ec88fSEmmanuel Vadot			#size-cells = <0>;
38*c66ec88fSEmmanuel Vadot
39*c66ec88fSEmmanuel Vadot			phy11: ethernet-phy@1 {
40*c66ec88fSEmmanuel Vadot				reg = <1>;
41*c66ec88fSEmmanuel Vadot				marvell,reg-init = <3 0x10 0 0x5777>,
42*c66ec88fSEmmanuel Vadot					<3 0x11 0 0x00aa>,
43*c66ec88fSEmmanuel Vadot					<3 0x12 0 0x4105>,
44*c66ec88fSEmmanuel Vadot					<3 0x13 0 0x0a60>;
45*c66ec88fSEmmanuel Vadot				interrupt-parent = <&gpio>;
46*c66ec88fSEmmanuel Vadot				interrupts = <10 8>; /* Pin 10, active low */
47*c66ec88fSEmmanuel Vadot			};
48*c66ec88fSEmmanuel Vadot			phy12: ethernet-phy@2 {
49*c66ec88fSEmmanuel Vadot				reg = <2>;
50*c66ec88fSEmmanuel Vadot				marvell,reg-init = <3 0x10 0 0x5777>,
51*c66ec88fSEmmanuel Vadot					<3 0x11 0 0x00aa>,
52*c66ec88fSEmmanuel Vadot					<3 0x12 0 0x4105>,
53*c66ec88fSEmmanuel Vadot					<3 0x13 0 0x0a60>;
54*c66ec88fSEmmanuel Vadot				interrupt-parent = <&gpio>;
55*c66ec88fSEmmanuel Vadot				interrupts = <10 8>; /* Pin 10, active low */
56*c66ec88fSEmmanuel Vadot			};
57*c66ec88fSEmmanuel Vadot			phy13: ethernet-phy@3 {
58*c66ec88fSEmmanuel Vadot				reg = <3>;
59*c66ec88fSEmmanuel Vadot				marvell,reg-init = <3 0x10 0 0x5777>,
60*c66ec88fSEmmanuel Vadot					<3 0x11 0 0x00aa>,
61*c66ec88fSEmmanuel Vadot					<3 0x12 0 0x4105>,
62*c66ec88fSEmmanuel Vadot					<3 0x13 0 0x0a60>;
63*c66ec88fSEmmanuel Vadot				interrupt-parent = <&gpio>;
64*c66ec88fSEmmanuel Vadot				interrupts = <10 8>; /* Pin 10, active low */
65*c66ec88fSEmmanuel Vadot			};
66*c66ec88fSEmmanuel Vadot			phy14: ethernet-phy@4 {
67*c66ec88fSEmmanuel Vadot				reg = <4>;
68*c66ec88fSEmmanuel Vadot				marvell,reg-init = <3 0x10 0 0x5777>,
69*c66ec88fSEmmanuel Vadot					<3 0x11 0 0x00aa>,
70*c66ec88fSEmmanuel Vadot					<3 0x12 0 0x4105>,
71*c66ec88fSEmmanuel Vadot					<3 0x13 0 0x0a60>;
72*c66ec88fSEmmanuel Vadot				interrupt-parent = <&gpio>;
73*c66ec88fSEmmanuel Vadot				interrupts = <10 8>; /* Pin 10, active low */
74*c66ec88fSEmmanuel Vadot			};
75*c66ec88fSEmmanuel Vadot		};
76*c66ec88fSEmmanuel Vadot
77*c66ec88fSEmmanuel Vadot		mdio@3 {
78*c66ec88fSEmmanuel Vadot			reg = <3>;
79*c66ec88fSEmmanuel Vadot			#address-cells = <1>;
80*c66ec88fSEmmanuel Vadot			#size-cells = <0>;
81*c66ec88fSEmmanuel Vadot
82*c66ec88fSEmmanuel Vadot			phy21: ethernet-phy@1 {
83*c66ec88fSEmmanuel Vadot				reg = <1>;
84*c66ec88fSEmmanuel Vadot				marvell,reg-init = <3 0x10 0 0x5777>,
85*c66ec88fSEmmanuel Vadot					<3 0x11 0 0x00aa>,
86*c66ec88fSEmmanuel Vadot					<3 0x12 0 0x4105>,
87*c66ec88fSEmmanuel Vadot					<3 0x13 0 0x0a60>;
88*c66ec88fSEmmanuel Vadot				interrupt-parent = <&gpio>;
89*c66ec88fSEmmanuel Vadot				interrupts = <12 8>; /* Pin 12, active low */
90*c66ec88fSEmmanuel Vadot			};
91*c66ec88fSEmmanuel Vadot			phy22: ethernet-phy@2 {
92*c66ec88fSEmmanuel Vadot				reg = <2>;
93*c66ec88fSEmmanuel Vadot				marvell,reg-init = <3 0x10 0 0x5777>,
94*c66ec88fSEmmanuel Vadot					<3 0x11 0 0x00aa>,
95*c66ec88fSEmmanuel Vadot					<3 0x12 0 0x4105>,
96*c66ec88fSEmmanuel Vadot					<3 0x13 0 0x0a60>;
97*c66ec88fSEmmanuel Vadot				interrupt-parent = <&gpio>;
98*c66ec88fSEmmanuel Vadot				interrupts = <12 8>; /* Pin 12, active low */
99*c66ec88fSEmmanuel Vadot			};
100*c66ec88fSEmmanuel Vadot			phy23: ethernet-phy@3 {
101*c66ec88fSEmmanuel Vadot				reg = <3>;
102*c66ec88fSEmmanuel Vadot				marvell,reg-init = <3 0x10 0 0x5777>,
103*c66ec88fSEmmanuel Vadot					<3 0x11 0 0x00aa>,
104*c66ec88fSEmmanuel Vadot					<3 0x12 0 0x4105>,
105*c66ec88fSEmmanuel Vadot					<3 0x13 0 0x0a60>;
106*c66ec88fSEmmanuel Vadot				interrupt-parent = <&gpio>;
107*c66ec88fSEmmanuel Vadot				interrupts = <12 8>; /* Pin 12, active low */
108*c66ec88fSEmmanuel Vadot			};
109*c66ec88fSEmmanuel Vadot			phy24: ethernet-phy@4 {
110*c66ec88fSEmmanuel Vadot				reg = <4>;
111*c66ec88fSEmmanuel Vadot				marvell,reg-init = <3 0x10 0 0x5777>,
112*c66ec88fSEmmanuel Vadot					<3 0x11 0 0x00aa>,
113*c66ec88fSEmmanuel Vadot					<3 0x12 0 0x4105>,
114*c66ec88fSEmmanuel Vadot					<3 0x13 0 0x0a60>;
115*c66ec88fSEmmanuel Vadot				interrupt-parent = <&gpio>;
116*c66ec88fSEmmanuel Vadot				interrupts = <12 8>; /* Pin 12, active low */
117*c66ec88fSEmmanuel Vadot			};
118*c66ec88fSEmmanuel Vadot		};
119*c66ec88fSEmmanuel Vadot	};
120