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