err = mmc_send_op_cond(host,0, &ocr);if(!err) {if(mmc_attach_mmc(host, ocr)) mmc_power_off(host);gotoout; } mmc_send_op_cond 这个函数据说是读了一下卡的什么值,这个值是什么意义我也不清楚,这就像检测 FLASH 时读 FLASH 的 ID 一样,网卡也是这样的,不用管这个值的意义了,只要知道它...
mmc_go_idle(host);//进入空闲状态,这个是规范里面有的,怎么进入规范里面也有说明mmc_send_if_cond(host, host->ocr_avail);//发送控制器兼容的电压/* * First we search for SDIO... *///判断是否为sdio接口的设备err = mmc_send_io_op_cond(host,0, &ocr);if(!err) {if(mmc_attach_sdio(host...
err = mmc_send_io_op_cond(host, 0, &ocr); if (!err) { if (mmc_attach_sdio(host, ocr)) { ... 在SD: /* * ...then normal SD... */ err = mmc_send_app_op_cond(host, 0, &ocr); if (!err) { if (mmc_attach_sd(host, ocr)) 最后是MMC: /* * ...and finally MMC....
}//查询电压范围err = mmc_send_io_op_cond(host, ocr, &rocr);if(err)returnerr;//对于SPI,可以使能CRCif(mmc_host_is_spi(host)) { err = mmc_spi_set_crc(host, use_spi_crc);if(err)returnerr; }//分配mmc_cardcard = mmc_alloc_card(host, &sdio_type);if(IS_ERR(card))returnPTR_E...
*/err = mmc_send_op_cond(host, 0, &ocr);if (!err) {if (mmc_attach_mmc(host, ocr))mmc_power_off(host);goto out;}mmc_release_host(host);mmc_power_off(host);out:if (host->caps & MMC_CAP_NEEDS_POLL)mmc_schedule_delayed_work(&host->detect, HZ);...
err = mmc_send_op_cond(host, 0, &ocr); if (err == MMC_ERR_NONE) { //如果没有出错 if (mmc_attach_mmc(host, ocr)) mmc_power_off(host); } else { mmc_power_off(host); mmc_release_host(host); } } } else { if (host->bus_ops->detect && !host->bus_dead) ...
int err; …… /* detect a newly inserted card */ …… /* * First we search for SDIO... */ err = mmc_send_io_op_cond(host, 0, &ocr); if (!err) { if (mmc_attach_sdio(host, ocr)) mmc_power_off(host); goto out; ...
mmc_send_op_cond 发送CMD1指令,SEND_OP_COND 这里会设置card的工作电压寄存器OCR,并且通过busy位(bit31)来判断card的上电复位过程是否完成,如果没有完成的话需要重复发送。 完成之后,mmc card进入ready state。 mmc_all_send_cid 这里会发送CMD2指令,ALL_SEND_CID ...
mmc_send_if_cond(host,host->ocr_avail); /* * 首先我们搜索SDIO... */ err= mmc_send_io_op_cond(host, 0, &ocr); if(!err) { if (mmc_attach_sdio(host, ocr)) mmc_power_off(host); extend_wakelock = 1; goto out; } /* ...
err = mmc_send_io_op_cond(host, 0, &ocr); if (!err) { if (mmc_attach_sdio(host, ocr)) { ... 在SD: /* * ...then normal SD... */ err = mmc_send_app_op_cond(host, 0, &ocr); if (!err) { if (mmc_attach_sd(host, ocr)) ...