mmc_set_ios(host); //core/core.c host->ops->set_ios(host, ios); //依次尝试切换为:3.3v,1.8v,1.2v __mmc_set_signal_voltage(host, MMC_SIGNAL_VOLTAGE_330) //core/core.c //设置host的电压 host->ops->start_signal_voltage_switch(host, &host->ios) dev_dbg(mmc_dev(host), "Initial...
// 自定义的mmc_host_ops,用于host做实际操作时回调staticconststructmmc_host_opsxxx_mmc_ops={.request=xxx_mmc_request,.set_ios=xxx_mmc_set_ios,};/* platform driver probe function */staticintxxx_mmc_probe(structplatform_device*pdev){structmmc_host*mmc;structxxx_mmc_host*host=NULL;intret=0;...
//自定义的mmc_host_ops,用于host做实际操作时回调staticconststructmmc_host_ops xxx_mmc_ops ={ .request=xxx_mmc_request, .set_ios=xxx_mmc_set_ios, };/*platform driver probe function*/staticintxxx_mmc_probe(structplatform_device *pdev) {structmmc_host *mmc;structxxx_mmc_host *host =NULL;...
//自定义的mmc_host_ops,用于host做实际操作时回调staticconststructmmc_host_ops xxx_mmc_ops ={ .request=xxx_mmc_request, .set_ios=xxx_mmc_set_ios, };/*platform driver probe function*/staticintxxx_mmc_probe(structplatform_device *pdev) {structmmc_host *mmc;structxxx_mmc_host *host =NULL;...
drivers/mmc/host/dw_mmc.c 1.装载和卸载函数 //驱动数据staticconststructdw_mci_drv_datark3288_drv_data={ .caps = dw_mci_rk3288_dwmmc_caps, .num_caps = ARRAY_SIZE(dw_mci_rk3288_dwmmc_caps), .set_ios = dw_mci_rk3288_set_ios, ...
其中,request函数,主要实现命令发送,数据的读写;set_ios主要用来设置数据速度,mmc相位,power mode 和data bus width;get_cd用来检测设备是否存在;get_ro用来判断mmc是否为read-only card;enable_sdio_irq是用来使能或者关闭sdio中断。 mmc dev正常读写的时候调用流程是怎么样呢?怎么和上面注册的mmc_host_ops关联起来...
(1)struct mmc_host 用来描述卡控制器 (2)struct mmc_card 用来描述卡 (3)struct mmc_driver 用来描述 mmc 卡驱动 (4)struct mmc_host_ops 用来描述卡控制器操作集。用于从主机控制器层向 core 层注册操作函数,从而将core 层与具体的主机控制器隔离。也就是说 core 要操作主机控制器,就用这个 ops 当中给...
下面重点来看sdhci_add_host函数 该函数主要是对mmc的注册,同样mmc也有很多的参数,先来看看他的操作函数集mmc->ops = &sdhci_ops 其中,request函数指针指向的函数用来处理host向从设备发送命令的请求, set_ios用来设置电源、时钟等等之类(需要重点关注), ...
2、struct mmc_host_ops mmc core将host需要提供的一些操作方法封装成struct mmc_host_ops。 mmc core主模块的很多接口都是基于这里面的操作方法来实现的,通过这些方法来操作host硬件达到对应的目的。 所以struct mmc_host_ops也是host controller driver需要实现的核心部分。
6. s3cmci_ops SDI主机控制器操作接口函数功能分析: staticstructmmc_host_ops s3cmci_ops= { .request=s3cmci_request,//实现host的请求处理(即:命令和数据的发送和接收) .set_ios=s3cmci_set_ios,//通过核心层传递过来的ios,配置host寄存器(使能时钟、总线带宽等) ...