removabledev是什么意思

removabledev是什么意思

本章主要探讨MMC主机相关的内容,包括MMC子系统提供的MMC主机相关接口以及MMC主机与MMC卡等子模块的关联。我们将按照以下几个部分来介绍:

一、相关数据结构及其关联

在MMC系统中,最核心的数据结构是mmc_host,它描述了MMC控制器的各种属性和行为。围绕mmc_host,定义了一系列相关的数据结构,如mmc_host_ops、mmc_ios、mmc_bus_ops等,它们分别描述了MMC控制器的操作接口、总线配置和电源管理等信息。这些数据结构之间的关系可以理解为以mmc_host为核心,形成了一个数据结构的关联网络。

mmc_host与mmc_card之间的绑定关系非常关键。当检测到MMC卡时,会完成它们之间的绑定工作,通常通过mmc_rescan实现MMC卡的在位检测。MMC主机的总线相关参数定义在mmc_ios中,通过这些参数可以完成MMC控制器的总线配置。mmc_host还借助mmc_bus_ops中的成员,完成针对MMC卡的休眠、唤醒以及移除等操作。

二、MMC主机相关的接口

MMC主机的添加和移除是两大核心操作。添加MMC主机需要初始化相关的参数,包括块设备相关配置、CD/WP相关接口定义以及mmc_host_ops中相应函数的实现等。然后调用mmc_add_host将主机对应的设备注册到系统设备集合中,并与mmc_host_class关联。

在MMC主机移除时,需要调用mmc_remove_host接口。该接口会注销主机对应的类设备,并释放主机的动态内存。同时还会调用一系列函数完成如移除MMC卡、关闭MMC控制器等操作。

三 编写一个MMC主机驱动需要的步骤

编写一个MMC主机驱动主要需要实现两个方面的步骤:一是实现mmc_host_ops相关的接口,包括request(通信方法)、set_ios(设置总线参数)、get_ro(只读判断)、get_cd(卡在位检测)等关键接口;二是实现platform driver,将驱动与MMC主机对应的platform device关联起来。在platform driver的probe接,需要完成MMC主机的创建和添加操作。这个过程包括申请mmc_host变量、设置相关参数、设置操作接口并调用mmc_add_host进行注册等步骤。由于不同厂家的控制器可能有所不同,所以在编写驱动时需要参考具体的硬件手册和内核文档。虽然MMC主机驱动的编写可能涉及到复杂的通信协议和硬件操作,但是掌握了上述流程和参考其他成功驱动的基础上,可以逐步进行编写和完善。


removabledev是什么意思