| Properties for an MDIO bus multiplexer controlled by a memory-mapped device |
| |
| This is a special case of a MDIO bus multiplexer. A memory-mapped device, |
| like an FPGA, is used to control which child bus is connected. The mdio-mux |
| node must be a child of the memory-mapped device. The driver currently only |
| supports devices with 8, 16 or 32-bit registers. |
| |
| Required properties in addition to the generic multiplexer properties: |
| |
| - compatible : string, must contain "mdio-mux-mmioreg" |
| |
| - reg : integer, contains the offset of the register that controls the bus |
| multiplexer. The size field in the 'reg' property is the size of |
| register, and must therefore be 1, 2, or 4. |
| |
| - mux-mask : integer, contains an eight-bit mask that specifies which |
| bits in the register control the actual bus multiplexer. The |
| 'reg' property of each child mdio-mux node must be constrained by |
| this mask. |
| |
| Example: |
| |
| The FPGA node defines a memory-mapped FPGA with a register space of 0x30 bytes. |
| For the "EMI2" MDIO bus, register 9 (BRDCFG1) controls the mux on that bus. |
| A bitmask of 0x6 means that bits 1 and 2 (bit 0 is lsb) are the bits on |
| BRDCFG1 that control the actual mux. |
| |
| /* The FPGA node */ |
| fpga: board-control@3,0 { |
| #address-cells = <1>; |
| #size-cells = <1>; |
| compatible = "fsl,p5020ds-fpga", "fsl,fpga-ngpixis"; |
| reg = <3 0 0x30>; |
| ranges = <0 3 0 0x30>; |
| |
| mdio-mux-emi2 { |
| compatible = "mdio-mux-mmioreg", "mdio-mux"; |
| mdio-parent-bus = <&xmdio0>; |
| #address-cells = <1>; |
| #size-cells = <0>; |
| reg = <9 1>; // BRDCFG1 |
| mux-mask = <0x6>; // EMI2 |
| |
| emi2_slot1: mdio@0 { // Slot 1 XAUI (FM2) |
| reg = <0>; |
| #address-cells = <1>; |
| #size-cells = <0>; |
| |
| phy_xgmii_slot1: ethernet-phy@0 { |
| compatible = "ethernet-phy-ieee802.3-c45"; |
| reg = <4>; |
| }; |
| }; |
| |
| emi2_slot2: mdio@2 { // Slot 2 XAUI (FM1) |
| reg = <2>; |
| #address-cells = <1>; |
| #size-cells = <0>; |
| |
| phy_xgmii_slot2: ethernet-phy@4 { |
| compatible = "ethernet-phy-ieee802.3-c45"; |
| reg = <0>; |
| }; |
| }; |
| }; |
| }; |
| |
| /* The parent MDIO bus. */ |
| xmdio0: mdio@f1000 { |
| #address-cells = <1>; |
| #size-cells = <0>; |
| compatible = "fsl,fman-xmdio"; |
| reg = <0xf1000 0x1000>; |
| interrupts = <100 1 0 0>; |
| }; |