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