1*5956d97fSEmmanuel Vadot# SPDX-License-Identifier: GPL-2.0 2*5956d97fSEmmanuel Vadot%YAML 1.2 3*5956d97fSEmmanuel Vadot--- 4*5956d97fSEmmanuel Vadot$id: http://devicetree.org/schemas/net/mdio-mux-gpio.yaml# 5*5956d97fSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 6*5956d97fSEmmanuel Vadot 7*5956d97fSEmmanuel Vadottitle: Properties for an MDIO bus multiplexer/switch controlled by GPIO pins. 8*5956d97fSEmmanuel Vadot 9*5956d97fSEmmanuel Vadotmaintainers: 10*5956d97fSEmmanuel Vadot - Andrew Lunn <andrew@lunn.ch> 11*5956d97fSEmmanuel Vadot 12*5956d97fSEmmanuel Vadotdescription: 13*5956d97fSEmmanuel Vadot This is a special case of a MDIO bus multiplexer. One or more GPIO 14*5956d97fSEmmanuel Vadot lines are used to control which child bus is connected. 15*5956d97fSEmmanuel Vadot 16*5956d97fSEmmanuel VadotallOf: 17*5956d97fSEmmanuel Vadot - $ref: /schemas/net/mdio-mux.yaml# 18*5956d97fSEmmanuel Vadot 19*5956d97fSEmmanuel Vadotproperties: 20*5956d97fSEmmanuel Vadot compatible: 21*5956d97fSEmmanuel Vadot const: mdio-mux-gpio 22*5956d97fSEmmanuel Vadot 23*5956d97fSEmmanuel Vadot gpios: 24*5956d97fSEmmanuel Vadot description: 25*5956d97fSEmmanuel Vadot List of GPIOs used to control the multiplexer, least significant bit first. 26*5956d97fSEmmanuel Vadot minItems: 1 27*5956d97fSEmmanuel Vadot maxItems: 32 28*5956d97fSEmmanuel Vadot 29*5956d97fSEmmanuel Vadotrequired: 30*5956d97fSEmmanuel Vadot - compatible 31*5956d97fSEmmanuel Vadot - gpios 32*5956d97fSEmmanuel Vadot 33*5956d97fSEmmanuel VadotunevaluatedProperties: false 34*5956d97fSEmmanuel Vadot 35*5956d97fSEmmanuel Vadotexamples: 36*5956d97fSEmmanuel Vadot - | 37*5956d97fSEmmanuel Vadot /* 38*5956d97fSEmmanuel Vadot An NXP sn74cbtlv3253 dual 1-of-4 switch controlled by a 39*5956d97fSEmmanuel Vadot pair of GPIO lines. Child busses 2 and 3 populated with 4 40*5956d97fSEmmanuel Vadot PHYs each. 41*5956d97fSEmmanuel Vadot */ 42*5956d97fSEmmanuel Vadot mdio-mux { 43*5956d97fSEmmanuel Vadot compatible = "mdio-mux-gpio"; 44*5956d97fSEmmanuel Vadot gpios = <&gpio1 3 0>, <&gpio1 4 0>; 45*5956d97fSEmmanuel Vadot mdio-parent-bus = <&smi1>; 46*5956d97fSEmmanuel Vadot #address-cells = <1>; 47*5956d97fSEmmanuel Vadot #size-cells = <0>; 48*5956d97fSEmmanuel Vadot 49*5956d97fSEmmanuel Vadot mdio@2 { 50*5956d97fSEmmanuel Vadot reg = <2>; 51*5956d97fSEmmanuel Vadot #address-cells = <1>; 52*5956d97fSEmmanuel Vadot #size-cells = <0>; 53*5956d97fSEmmanuel Vadot 54*5956d97fSEmmanuel Vadot ethernet-phy@1 { 55*5956d97fSEmmanuel Vadot reg = <1>; 56*5956d97fSEmmanuel Vadot marvell,reg-init = <3 0x10 0 0x5777>, 57*5956d97fSEmmanuel Vadot <3 0x11 0 0x00aa>, 58*5956d97fSEmmanuel Vadot <3 0x12 0 0x4105>, 59*5956d97fSEmmanuel Vadot <3 0x13 0 0x0a60>; 60*5956d97fSEmmanuel Vadot interrupt-parent = <&gpio>; 61*5956d97fSEmmanuel Vadot interrupts = <10 8>; /* Pin 10, active low */ 62*5956d97fSEmmanuel Vadot }; 63*5956d97fSEmmanuel Vadot ethernet-phy@2 { 64*5956d97fSEmmanuel Vadot reg = <2>; 65*5956d97fSEmmanuel Vadot marvell,reg-init = <3 0x10 0 0x5777>, 66*5956d97fSEmmanuel Vadot <3 0x11 0 0x00aa>, 67*5956d97fSEmmanuel Vadot <3 0x12 0 0x4105>, 68*5956d97fSEmmanuel Vadot <3 0x13 0 0x0a60>; 69*5956d97fSEmmanuel Vadot interrupt-parent = <&gpio>; 70*5956d97fSEmmanuel Vadot interrupts = <10 8>; /* Pin 10, active low */ 71*5956d97fSEmmanuel Vadot }; 72*5956d97fSEmmanuel Vadot ethernet-phy@3 { 73*5956d97fSEmmanuel Vadot reg = <3>; 74*5956d97fSEmmanuel Vadot marvell,reg-init = <3 0x10 0 0x5777>, 75*5956d97fSEmmanuel Vadot <3 0x11 0 0x00aa>, 76*5956d97fSEmmanuel Vadot <3 0x12 0 0x4105>, 77*5956d97fSEmmanuel Vadot <3 0x13 0 0x0a60>; 78*5956d97fSEmmanuel Vadot interrupt-parent = <&gpio>; 79*5956d97fSEmmanuel Vadot interrupts = <10 8>; /* Pin 10, active low */ 80*5956d97fSEmmanuel Vadot }; 81*5956d97fSEmmanuel Vadot ethernet-phy@4 { 82*5956d97fSEmmanuel Vadot reg = <4>; 83*5956d97fSEmmanuel Vadot marvell,reg-init = <3 0x10 0 0x5777>, 84*5956d97fSEmmanuel Vadot <3 0x11 0 0x00aa>, 85*5956d97fSEmmanuel Vadot <3 0x12 0 0x4105>, 86*5956d97fSEmmanuel Vadot <3 0x13 0 0x0a60>; 87*5956d97fSEmmanuel Vadot interrupt-parent = <&gpio>; 88*5956d97fSEmmanuel Vadot interrupts = <10 8>; /* Pin 10, active low */ 89*5956d97fSEmmanuel Vadot }; 90*5956d97fSEmmanuel Vadot }; 91*5956d97fSEmmanuel Vadot 92*5956d97fSEmmanuel Vadot mdio@3 { 93*5956d97fSEmmanuel Vadot reg = <3>; 94*5956d97fSEmmanuel Vadot #address-cells = <1>; 95*5956d97fSEmmanuel Vadot #size-cells = <0>; 96*5956d97fSEmmanuel Vadot 97*5956d97fSEmmanuel Vadot ethernet-phy@1 { 98*5956d97fSEmmanuel Vadot reg = <1>; 99*5956d97fSEmmanuel Vadot marvell,reg-init = <3 0x10 0 0x5777>, 100*5956d97fSEmmanuel Vadot <3 0x11 0 0x00aa>, 101*5956d97fSEmmanuel Vadot <3 0x12 0 0x4105>, 102*5956d97fSEmmanuel Vadot <3 0x13 0 0x0a60>; 103*5956d97fSEmmanuel Vadot interrupt-parent = <&gpio>; 104*5956d97fSEmmanuel Vadot interrupts = <12 8>; /* Pin 12, active low */ 105*5956d97fSEmmanuel Vadot }; 106*5956d97fSEmmanuel Vadot ethernet-phy@2 { 107*5956d97fSEmmanuel Vadot reg = <2>; 108*5956d97fSEmmanuel Vadot marvell,reg-init = <3 0x10 0 0x5777>, 109*5956d97fSEmmanuel Vadot <3 0x11 0 0x00aa>, 110*5956d97fSEmmanuel Vadot <3 0x12 0 0x4105>, 111*5956d97fSEmmanuel Vadot <3 0x13 0 0x0a60>; 112*5956d97fSEmmanuel Vadot interrupt-parent = <&gpio>; 113*5956d97fSEmmanuel Vadot interrupts = <12 8>; /* Pin 12, active low */ 114*5956d97fSEmmanuel Vadot }; 115*5956d97fSEmmanuel Vadot ethernet-phy@3 { 116*5956d97fSEmmanuel Vadot reg = <3>; 117*5956d97fSEmmanuel Vadot marvell,reg-init = <3 0x10 0 0x5777>, 118*5956d97fSEmmanuel Vadot <3 0x11 0 0x00aa>, 119*5956d97fSEmmanuel Vadot <3 0x12 0 0x4105>, 120*5956d97fSEmmanuel Vadot <3 0x13 0 0x0a60>; 121*5956d97fSEmmanuel Vadot interrupt-parent = <&gpio>; 122*5956d97fSEmmanuel Vadot interrupts = <12 8>; /* Pin 12, active low */ 123*5956d97fSEmmanuel Vadot }; 124*5956d97fSEmmanuel Vadot ethernet-phy@4 { 125*5956d97fSEmmanuel Vadot reg = <4>; 126*5956d97fSEmmanuel Vadot marvell,reg-init = <3 0x10 0 0x5777>, 127*5956d97fSEmmanuel Vadot <3 0x11 0 0x00aa>, 128*5956d97fSEmmanuel Vadot <3 0x12 0 0x4105>, 129*5956d97fSEmmanuel Vadot <3 0x13 0 0x0a60>; 130*5956d97fSEmmanuel Vadot interrupt-parent = <&gpio>; 131*5956d97fSEmmanuel Vadot interrupts = <12 8>; /* Pin 12, active low */ 132*5956d97fSEmmanuel Vadot }; 133*5956d97fSEmmanuel Vadot }; 134*5956d97fSEmmanuel Vadot }; 135*5956d97fSEmmanuel Vadot... 136