08、phy_device与net_device的连接
调用 stmmac_init_phy(dev),将 PHY 设备与 net_device 网络设备连接起来。 stmmac_init_phy()函数将会调用 phy_connect()将 MDIO 总线上的 PHY 设备与net_device网络设备连接起 来 , 当 PHY 设备的状态发生改变时,调用stmmac_adjust_link() 函数 ,进行状态的调整 。
stmmac_init_phy

phy_connect 函数
首先调用
bus_find_device_by_name去根据设备名字查找mdio总线上的设备,一旦有匹配就立即返回对应的struct device的指针。接着调用
to_phy_device(dev),获得struct device dev对应的struct phy_device最后调用
phy_connect_direct(),该函数先检查phy_device->dev的驱动是否已经匹配,如果没有,则将默认的genphy_driver.driver作为phy_device->dev的驱动,调用其probe函数和device_bind_driver函数,完成驱动和设备的绑定;接着phydev->attached_dev,将网络设备net_device与phy_device进行完成连接,将函数带的参数赋值给phy_device对应的成员变量
