if (!(host->caps2 & MMC_CAP2_NO_SD)) mmc_send_if_cond(host, host->ocr_avail); //依次探测SDIO,SD,eMMC(顺序很重要) mmc_attach_mmc(host) //core/mmc.c //传进来第1个参数为:struct mmc_host *host 如果host不是spi模式 //!((host)->caps & MMC_CAP_SPI) //一般走此分支。
host->caps |= MMC_CAP_UHS_DDR50; if (device_property_read_bool(dev, "cap-power-off-card")) host->caps |= MMC_CAP_POWER_OFF_CARD; if (device_property_read_bool(dev, "cap-mmc-hw-reset")) host->caps |= MMC_CAP_HW_RESET; if (device_property_read_bool(dev, "cap-sdio-...
sh_mmcif_init_ocr(host); mmc->caps|=MMC_CAP_MMC_HIGHSPEED|MMC_CAP_WAIT_WHILE_BUSY; mmc->caps2|=MMC_CAP2_NO_SD|MMC_CAP2_NO_SDIO; if(pd&&pd->caps) mmc->caps|=pd->caps; mmc->max_segs=32; Expand Down
cap-mmc-highspeed; mmc-ddr-1_8v; mmc-hs200-1_8v; mmc-hs400-1_8v; no-sdio; no-sd; sunxi-power-save-mode; sunxi-dis-signal-vol-sw; max-frequency = <100000000>; ctl-spec-caps = <0x308>; vmmc-supply = < _dldo1>; vqmmc-supply = < _aldo1>; fixed-emmc-driver-type = <...
\n", mmc_hostname(host->mmc)); if (intmask & SDHCI_INT_RETUNE) mmc_retune_needed(host->mmc); if (intmask & SDHCI_INT_CARD_INT) { if (host->mmc->caps2 & MMC_CAP2_SDIO_IRQ_NOTHREAD) { sdhci_enable_sdio_irq_nolock(host, false); host->thread_isr |= SDHCI_INT_CARD_INT;...
no-mmc;bus-width = <4>;disable-wp;cap-sd-highspeed; //此配置同 SD 卡功能,作为 SDIO 外设...
2 模块介绍 2.1 模块功能介绍 Linux 提供了 MMC 子系统来实现对各种 SD/MMC/EMMC/SDIO 设备访问,MMC 子系统由上到下可以分为三层,MMC/SD card 层,MMC/SD core 层以及 MMC/SD host 层,它们之间的层次关系如下所示。 MMC/SD card 层负主要是按照 LINUX 块设备驱动程序的框架实现一个卡的块设备驱动。负责...
mmc_send_if_cond(host, host->ocr_avail);/*Order's important: probe SDIO, then SD, then MMC*///依次探测设备:SDIO,SD,MMC//对于MMC设备,尝试调用mmc_attach_mmc(host)if(!(host->caps2 &MMC_CAP2_NO_SDIO))if(!mmc_attach_sdio(host))...
mmc_send_if_cond(host, host->ocr_avail);/*Order's important: probe SDIO, then SD, then MMC*///依次探测设备:SDIO,SD,MMC//对于MMC设备,尝试调用mmc_attach_mmc(host)if(!(host->caps2 &MMC_CAP2_NO_SDIO))if(!mmc_attach_sdio(host))...
MMC_CAP2_NO_SDIO | MMC_CAP2_NO_MMC;platform_set_drvdata(pdev, host);ret = mmc_add_host(mmc); if (ret) return ret;dev_info(dev, "LiteX MMC controller initialized.\n"); return 0; }static int litex_mmc_remove(struct platform_device *pdev) ...