现在的位置: 首页 > 综合 > 正文

phy device的添加流程

2012年09月23日 ⁄ 综合 ⁄ 共 2127字 ⁄ 字号 评论关闭

phy device的添加流程,了解linux驱动中的 驱动、设备、总线 模型。

 

 

phydev = mdiobus_scan(bus, i) 这里的scan,并不仅仅是扫描,而且还包括创建。mdiobus_scan()主要调用了get_phy_device()和phy_device_register()。get_phy_device()里面主要有get_phy_id() 和 phy_device_create() 。 函数int get_phy_id()通过MII BUS总线,读寄存器MII_PHYSID1(高16位)、MII_PHYSID2(低16位)得到。phy_device_create() 创建了一个phy设备,完成了一些speed、duplex 、addr、phy_id等等默认初始化。看一下函数定义

 

 

 

phy_device_register() 调用device_register()

 

 

 

device_add()东西比较多,以后再看。

 

 

由此可见,phy设备的添加,是在注册mdio总线的时候。

 

简单地,phy device设备的添加流程:mdiobus_register() ----> mdiobus_scan() ----> phy_device_register() ----> device_register() ----> device_add() 。
platform device 的添加流程:platform_add_devices() ----> device_add()

 

 

抱歉!评论已关闭.