1、SDIO卡的扫描流程
接上文:
core.c (drivers\mmc\core)
static int mmc_rescan_try_freq(struct mmc_host *host, unsigned freq)
{
sdio_reset(host);-->a
mmc_go_idle(host);-->b
mmc_send_if_cond(host, host->ocr_avail);-->c
if (!mmc_attach_sdio(host))-->d
return 0;
return -EIO;
}
a, 复位卡,见第3小节
b,设置卡状态:idle,见第4小节
c,检测卡支持的工作电压,见第5小节
d,SDIO工作环境设置及card初始化,见第6小节
在SDIO中b、c步骤是不需要的,对于这两个操作,SDIO卡可以不作回应(忽略即可)。
2、SDIO新增命令
为了支持I/O特性,SDIO标准在SD的基础上增加了两条命令:- IO_RW_DIRECT(CMD52)
- IO_RW_EXTENDED(CMD53)
2.1 CMD52简介
- 用来访问单个的寄存器(SD标准中,寄存器空间共128K)
- 初始化寄存器或为IO功能检测相关状态值
- 读/写1字节的数据,仅仅需要一个commond/response对(读写单个寄存器最快的方式)
2.2 CMD52命令
<