Lines Matching full:mmc

2  * MOXA ART MMC host driver.
25 #include <linux/mmc/host.h>
26 #include <linux/mmc/sd.h>
132 struct mmc_host *mmc; member
198 dev_err(mmc_dev(host->mmc), "timed out waiting for status\n"); in moxart_wait_for_status()
288 dev_err(mmc_dev(host->mmc), "dma_map_sg returned zero length\n"); in moxart_transfer_dma()
393 static void moxart_request(struct mmc_host *mmc, struct mmc_request *mrq) in moxart_request() argument
395 struct moxart_host *host = mmc_priv(mmc); in moxart_request()
438 dev_err(mmc_dev(host->mmc), "card removed\n"); in moxart_request()
458 mmc_request_done(host->mmc, mrq); in moxart_request()
478 mmc_detect_change(host->mmc, 0); in moxart_irq()
488 static void moxart_set_ios(struct mmc_host *mmc, struct mmc_ios *ios) in moxart_set_ios() argument
490 struct moxart_host *host = mmc_priv(mmc); in moxart_set_ios()
535 static int moxart_get_ro(struct mmc_host *mmc) in moxart_get_ro() argument
537 struct moxart_host *host = mmc_priv(mmc); in moxart_get_ro()
553 struct mmc_host *mmc; in moxart_probe() local
561 mmc = devm_mmc_alloc_host(dev, sizeof(*host)); in moxart_probe()
562 if (!mmc) { in moxart_probe()
585 ret = mmc_of_parse(mmc); in moxart_probe()
589 host = mmc_priv(mmc); in moxart_probe()
590 host->mmc = mmc; in moxart_probe()
601 mmc->ops = &moxart_ops; in moxart_probe()
602 mmc->f_max = DIV_ROUND_CLOSEST(host->sysclk, 2); in moxart_probe()
603 mmc->f_min = DIV_ROUND_CLOSEST(host->sysclk, CLK_DIV_MASK * 2); in moxart_probe()
604 mmc->ocr_avail = 0xffff00; /* Support 2.0v - 3.6v power. */ in moxart_probe()
605 mmc->max_blk_size = 2048; /* Max. block length in REG_DATA_CONTROL */ in moxart_probe()
606 mmc->max_req_size = DATA_LEN_MASK; /* bits 0-23 in REG_DATA_LENGTH */ in moxart_probe()
607 mmc->max_blk_count = mmc->max_req_size / 512; in moxart_probe()
626 mmc->max_seg_size = mmc->max_req_size; in moxart_probe()
646 mmc->max_seg_size = min3(mmc->max_req_size, in moxart_probe()
652 mmc->caps |= MMC_CAP_4_BIT_DATA; in moxart_probe()
663 ret = devm_request_irq(dev, irq, moxart_irq, 0, "moxart-mmc", host); in moxart_probe()
667 dev_set_drvdata(dev, mmc); in moxart_probe()
668 ret = mmc_add_host(mmc); in moxart_probe()
686 struct mmc_host *mmc = dev_get_drvdata(&pdev->dev); in moxart_remove() local
687 struct moxart_host *host = mmc_priv(mmc); in moxart_remove()
693 mmc_remove_host(mmc); in moxart_remove()
702 { .compatible = "moxa,moxart-mmc" },
712 .name = "mmc-moxart",
719 MODULE_ALIAS("platform:mmc-moxart");
720 MODULE_DESCRIPTION("MOXA ART MMC driver");