Nanopi SDIO 接口驱动简要分析

 

Nanopi SDIO 接口驱动简要分析_第1张图片

 

这里比较关键的是 mmc_rescan 这个函数,它可以探测出 sdio 总线上的器件如:sdio设备、sd卡、emmc 等,

系统初始化时会主动调用 mmc_rescan 来探测一次设备,

之后会调用延时 work: mmc_schedule_delayed_work(&host->detect, HZ)  以固定的频率来探测设备,以保证有设备接入时可以第一时间被检测到,这种机制属于热插拔,而这种检测的方式类似于 USB 的中断传输方式。

host->detect 被初始化为: INIT_DELAYED_WORK(&host->detect, mmc_rescan),所以系统中在一直循环调用 mmc_rescan。

 

图示的 sdio 设备是以 broadcom 无线网卡驱动为例的,当初就是想分析 wifi 驱动,所以就牵连出了这么多,

最后发现 broadcom 的驱动略庞大,貌似把 mac80211 给取替了,

所以后来转头先分析 USB 接口的无线网卡,搞起来就就轻松许多,待这款网卡完全基本分析透彻后写出随笔,再回来搞 broadcom。

 

你可能感兴趣的:(Nanopi SDIO 接口驱动简要分析)