1、device driver bus三者的关系
简单的说就是device和driver都在bus上 最后通过match匹配
所以bus就像一条生产线 driver就像生产线上的员工,device就像生产线上的产品,每种产品需要匹配合适的员工。
2.platform总线
我们的设备里面有很多总线 usb i2c mmc等等,以及本文要说的mdio。这些总线都需要挂在platform上管理。
3.mii总线(mdio总线)
mii总线比较标准 因为mii下面包含mdc和mdio
mdio是管理phy的
因此以上三者的关系就是platform总线—mdio总线—phy
注册流程
hisi_femac_mdio_probe(mdio_hisi_femac.c)
of_mdiobus_register(of_mdio.c)
of_mdiobus_register_phy(of_mdio.c)
phy_device_register(phy_device.c)
device_add(core.c)
bus_probe_device(bus.c)
device_attach(dd.c)
bus_for_each_drv(bus.c)
__device_attach(dd.c)
driver_match_device (driver/base.h)
mdio_bus_match (mdio_bus.c)