关于linux mmc-sd驱动程序架构,你了解多少?.doc
《关于linux mmc-sd驱动程序架构,你了解多少?.doc》由会员分享,可在线阅读,更多相关《关于linux mmc-sd驱动程序架构,你了解多少?.doc(4页珍藏版)》请在三一文库上搜索。
1、关于linux mmc/sd驱动程序架构,你了解多少?关于linux mmc/sd驱动程序架构今天花了时间简单看了mmc/sd部门内容和代码,我觉得形式上,这个部分和i2c非常相似系统也是分成core层,host层(对应i2c的adapter),设备层如果这样讲,那么core层主要功能应该是提供host注册,总线注册,设备注册的几个方法以及所谓sdio总线接口的算法了。host层已经是注册一个platform设备,其中应该提供主要sdio接口算法的实现。设备层,应该是提供几个公司1)注册块设备,映射到/dev下面的设备节点 2)应该还有设备其他信息。当然,也有很多和i2c不一样的地方,就是必须
2、支持动态扫描卡设备的方法,而i2c是靠i2c地址制定的。有关MMC/SD/SDIO相关的知识这里就不多讲了,请参考相关资料。这里主要涉及Linux下MMC相关内容。内核版本(2.6.36)首先说一下Linux相关MMC的代码分布,主要有两个目录,一个头文件目录和一个源代码目录。分别位置如下:include/linux/mmcdrivers/mmc要阅读MMC相关代码就必须要看这两个目录。在drivers/mmc目录下分别有三个子目录,其将对应接下来要讲的MMC的体系结构。这三个子目录分别为:cardcorehost它们的内容后面讲到体系结构时自然就明了了。现在来说说MMC的体系结构,其分为三层
3、 /dev下设备文件访问MMC/SD/SDIO用户空间 |-|-内核空间 / MMC Card层(对应具体的设备驱动,如MMC/SD卡块设备驱动,SDIO UART) | / MMC core层(为上次设备驱动实现提供操作接口,和下层host注册提供机制) | / Host层(具体MMC/SD/SDIO控制器驱动层。如S3C2440 MMC/SD控制器驱动) | /- 硬件层对于我们来说,编写MMC/SD卡相关驱动主要涉及的就是Host层,其余层不用考虑。对于SDIO设备除了Host层以外,还有可能要编写MMC Card层的设备驱动。编写Host层驱动,主要是填充mmc_host结构体相关内容
4、和实现mmc_host_ops结构体中的函数。最后调用mmc_add_host向MMC core注册host驱动。可以参考S3C24XX的HOST驱动程序(drivers/mmc/host/s3cmci.c,s3cmci.h),上层MMC Core主要调用mmc_host_ops中的函数来实现与硬件交互。如下是mmc_host_ops结构体里面的函数: struct mmc_host_ops /*使能和禁止HOST控制器*/ int (*enable)(struct mmc_host *host); int (*disable)(struct mmc_host *host, int lazy)
5、; /*这个是关键的函数,所有对MMC/SD的操作,包括发命令和读数据,都通过该接口来实现,所以实现该接口时要处理是命令还是数据操作,另外要考虑是否使用DMA来进行数据传输。*/ void (*request)(struct mmc_host *host, struct mmc_request *req); /*用来设置MMC/SD的时钟,电压等操作*/ void (*set_ios)(struct mmc_host *host, struct mmc_ios *ios); /*检查MMC/SD是否写保护了*/ int (*get_ro)(struct mmc_host *host); /*检
6、查mmc/sd的插入和拔出*/ int (*get_cd)(struct mmc_host *host); void (*enable_sdio_irq)(struct mmc_host *host, int enable); /* optional callback for HC quirks */ void (*init_card)(struct mmc_host *host, struct mmc_card *card);接下来说说MMC Core层。该层主要实现了几个结构体函数指针,用来构建整个MMC设备驱动模型。它们是:struct bus_type mmc_bus_type /*m
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 关于linux mmc-sd驱动程序架构,你了解多少? 关于 linux mmc sd 驱动程序 架构 了解 多少
链接地址:https://www.31doc.com/p-3387690.html