SDMMC学习
程序员文章站
2022-03-23 22:48:43
SDMMC学习这几天略微看了下MMC/SD相关代码,梳理如下在Linux/driver/mmc目录下有三个文件夹:card、host、corecard目录:queue.c,block.c,顾名思义是相关request和相关块设备的操作文件core目录:bus.c:总线相关操作,包括mmc bus、sdio buscore:主要是sd.c和mmc.c包含了相关卡的操作,主要是包含符合MMC/SD标准的CMDhost:mmc/sd host控制器的注册从上面的文件可以看出要注册的模块包括...
SDMMC学习
这几天略微看了下MMC/SD相关代码,梳理如下
在Linux/driver/mmc目录下有三个文件夹:card、host、core
- card目录:queue.c,block.c,顾名思义是相关request和相关块设备的操作文件
-
core目录:
bus.c:总线相关操作,包括mmc bus、sdio bus
core:主要是sd.c和mmc.c包含了相关卡的操作,主要是包含符合MMC/SD标准的CMD - host:mmc/sd host控制器的注册
从上面的文件可以看出要注册的模块包括
- subsys_init 注册MMC总线和SDIO总线,后面相关的mmc device/driver会挂载MMC总线上,SDIO设备及驱动(如wifi)挂载在SDIO总线上
2. SD/MMC卡控制器的注册会挂载在platform bus上,当插入卡或开机时就已经插卡的情况下,会alloc card(mmc_attach_sdio/mmc_attach_sd/mmc_attach_mmc),也就是注册相关MMC/SDIO设备
3. MMC/SDIO相关驱动的注册,block设备注册
以上就是全部流程,查看代码可以根据以上顺序查看,思路会很清晰,细节可以上网搜索或阅读源码,网上有很多
本文地址:https://blog.csdn.net/MATLABCSD/article/details/110223264