• David Daney's avatar
    netdev/of/phy: Add MDIO bus multiplexer support. · 0ca2997d
    David Daney authored
    This patch adds a somewhat generic framework for MDIO bus
    multiplexers.  It is modeled on the I2C multiplexer.
    
    The multiplexer is needed if there are multiple PHYs with the same
    address connected to the same MDIO bus adepter, or if there is
    insufficient electrical drive capability for all the connected PHY
    devices.
    
    Conceptually it could look something like this:
    
                       ------------------
                       | Control Signal |
                       --------+---------
                               |
     ---------------   --------+------
     | MDIO MASTER |---| Multiplexer |
     ---------------   --+-------+----
                         |       |
                         C       C
                         h       h
                         i       i
                         l       l
                         d       d
                         |       |
         ---------       A       B   ---------
         |       |       |       |   |       |
         | PHY@1 +-------+       +---+ PHY@1 |
         |       |       |       |   |       |
         ---------       |       |   ---------
         ---------       |       |   ---------
         |       |       |       |   |       |
         | PHY@2 +-------+       +---+ PHY@2 |
         |       |                   |       |
         ---------                   ---------
    
    This framework configures the bus topology from device tree data.  The
    mechanics of switching the multiplexer is left to device specific
    drivers.
    
    The follow-on patch contains a multiplexer driven by GPIO lines.
    Signed-off-by: default avatarDavid Daney <david.daney@cavium.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    0ca2997d
mdio-mux.c 4.32 KB