• Andrew Lunn's avatar
    net: phy: mdio-gpio: Add platform_data support for phy_mask · 04fa26ba
    Andrew Lunn authored
    It is sometimes necessary to instantiate a bit-banging MDIO bus as a
    platform device, without the aid of device tree.
    
    When device tree is being used, the bus is not scanned for devices,
    only those devices which are in device tree are probed. Without device
    tree, by default, all addresses on the bus are scanned. This may then
    find a device which is not a PHY, e.g. a switch. And the switch may
    have registers containing values which look like a PHY. So during the
    scan, a PHY device is wrongly created.
    
    After the bus has been registered, a search is made for
    mdio_board_info structures which indicates devices on the bus, and the
    driver which should be used for them. This is typically used to
    instantiate Ethernet switches from platform drivers.  However, if the
    scanning of the bus has created a PHY device at the same location as
    indicated into the board info for a switch, the switch device is not
    created, since the address is already busy.
    
    This can be avoided by setting the phy_mask of the mdio bus. This mask
    prevents addresses on the bus being scanned.
    
    v2
    Reviewed-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    04fa26ba
mdio-gpio.c 5.13 KB