Nanopi SDIO 接口驱动简要分析

这里比较关键的是 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。

猜你喜欢

转载自www.cnblogs.com/GyForever1004/p/12364152.html