stmmac: Allow stmmac to work with other PHY buses(v3).
As stmmac mdio bus name prefix is hardcoded in the driver, this allows only phys on stmmac mdio buses to connect, however stmmac should allow phys on other mdio buses too. This patch adds new variable phy_bus_name to plat_stmmacenet_data struct to let the BSP decide which phy bus to be used by stmmac driver. A typical use-case is to have generic MDIO buses like mdio-gpio on top of stmmac. Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@st.com> Acked-by: Florian Fainelli <florian@openwrt.org> Signed-off-by: Giuseppe Cavallaro <peppe.cavallaro@st.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
9450f7506d
commit
f142af2e20
|
@ -307,7 +307,13 @@ static int stmmac_init_phy(struct net_device *dev)
|
|||
priv->speed = 0;
|
||||
priv->oldduplex = -1;
|
||||
|
||||
snprintf(bus_id, MII_BUS_ID_SIZE, "stmmac-%x", priv->plat->bus_id);
|
||||
if (priv->plat->phy_bus_name)
|
||||
snprintf(bus_id, MII_BUS_ID_SIZE, "%s-%x",
|
||||
priv->plat->phy_bus_name, priv->plat->bus_id);
|
||||
else
|
||||
snprintf(bus_id, MII_BUS_ID_SIZE, "stmmac-%x",
|
||||
priv->plat->bus_id);
|
||||
|
||||
snprintf(phy_id, MII_BUS_ID_SIZE + 3, PHY_ID_FMT, bus_id,
|
||||
priv->plat->phy_addr);
|
||||
pr_debug("stmmac_init_phy: trying to attach to %s\n", phy_id);
|
||||
|
|
|
@ -39,6 +39,7 @@ struct stmmac_mdio_bus_data {
|
|||
};
|
||||
|
||||
struct plat_stmmacenet_data {
|
||||
char *phy_bus_name;
|
||||
int bus_id;
|
||||
int phy_addr;
|
||||
int interface;
|
||||
|
|
Loading…
Reference in New Issue