• Home
  • Raw
  • Download

Lines Matching refs:mmc

625 static u64 prepare_ext_dma(struct mmc_host *mmc, struct mmc_request *mrq)  in prepare_ext_dma()  argument
627 struct cvm_mmc_slot *slot = mmc_priv(mmc); in prepare_ext_dma()
632 mmc_card_is_blockaddr(mmc->card) ? 1 : 0) | in prepare_ext_dma()
639 if (mmc_card_mmc(mmc->card) || (mmc_card_sd(mmc->card) && in prepare_ext_dma()
640 (mmc->card->scr.cmds & SD_SCR_CMD23_SUPPORT))) in prepare_ext_dma()
649 static void cvm_mmc_dma_request(struct mmc_host *mmc, in cvm_mmc_dma_request() argument
652 struct cvm_mmc_slot *slot = mmc_priv(mmc); in cvm_mmc_dma_request()
659 dev_err(&mmc->card->dev, "Error: %s no data\n", __func__); in cvm_mmc_dma_request()
674 emm_dma = prepare_ext_dma(mmc, mrq); in cvm_mmc_dma_request()
693 if (mmc_card_sd(mmc->card)) in cvm_mmc_dma_request()
750 static void cvm_mmc_request(struct mmc_host *mmc, struct mmc_request *mrq) in cvm_mmc_request() argument
752 struct cvm_mmc_slot *slot = mmc_priv(mmc); in cvm_mmc_request()
772 return cvm_mmc_dma_request(mmc, mrq); in cvm_mmc_request()
822 static void cvm_mmc_set_ios(struct mmc_host *mmc, struct mmc_ios *ios) in cvm_mmc_set_ios() argument
824 struct cvm_mmc_slot *slot = mmc_priv(mmc); in cvm_mmc_set_ios()
841 else if (!IS_ERR(mmc->supply.vmmc)) in cvm_mmc_set_ios()
842 mmc_regulator_set_ocr(mmc, mmc->supply.vmmc, 0); in cvm_mmc_set_ios()
848 else if (!IS_ERR(mmc->supply.vmmc)) in cvm_mmc_set_ios()
849 mmc_regulator_set_ocr(mmc, mmc->supply.vmmc, ios->vdd); in cvm_mmc_set_ios()
906 struct mmc_host *mmc = slot->mmc; in cvm_mmc_set_clock() local
908 clock = min(clock, mmc->f_max); in cvm_mmc_set_clock()
909 clock = max(clock, mmc->f_min); in cvm_mmc_set_clock()
924 cvm_mmc_set_clock(slot, slot->mmc->f_min); in cvm_mmc_init_lowlevel()
953 struct mmc_host *mmc = slot->mmc; in cvm_mmc_of_parse() local
968 ret = mmc_regulator_get_supply(mmc); in cvm_mmc_of_parse()
975 if (IS_ERR(mmc->supply.vmmc)) in cvm_mmc_of_parse()
976 mmc->ocr_avail = MMC_VDD_32_33 | MMC_VDD_33_34; in cvm_mmc_of_parse()
979 ret = mmc_of_parse(mmc); in cvm_mmc_of_parse()
984 if (!(mmc->caps & (MMC_CAP_8_BIT_DATA | MMC_CAP_4_BIT_DATA))) { in cvm_mmc_of_parse()
987 mmc->caps |= MMC_CAP_8_BIT_DATA | MMC_CAP_4_BIT_DATA; in cvm_mmc_of_parse()
989 mmc->caps |= MMC_CAP_4_BIT_DATA; in cvm_mmc_of_parse()
993 if (!mmc->f_max) in cvm_mmc_of_parse()
994 of_property_read_u32(node, "spi-max-frequency", &mmc->f_max); in cvm_mmc_of_parse()
995 if (!mmc->f_max || mmc->f_max > 52000000) in cvm_mmc_of_parse()
996 mmc->f_max = 52000000; in cvm_mmc_of_parse()
997 mmc->f_min = 400000; in cvm_mmc_of_parse()
1012 struct mmc_host *mmc; in cvm_mmc_of_slot_probe() local
1015 mmc = mmc_alloc_host(sizeof(struct cvm_mmc_slot), dev); in cvm_mmc_of_slot_probe()
1016 if (!mmc) in cvm_mmc_of_slot_probe()
1019 slot = mmc_priv(mmc); in cvm_mmc_of_slot_probe()
1020 slot->mmc = mmc; in cvm_mmc_of_slot_probe()
1029 mmc->ops = &cvm_mmc_ops; in cvm_mmc_of_slot_probe()
1038 mmc->caps |= MMC_CAP_MMC_HIGHSPEED | MMC_CAP_SD_HIGHSPEED | in cvm_mmc_of_slot_probe()
1042 mmc->max_segs = 16; in cvm_mmc_of_slot_probe()
1044 mmc->max_segs = 1; in cvm_mmc_of_slot_probe()
1047 mmc->max_seg_size = min_t(unsigned int, 8 * 1024 * 1024, in cvm_mmc_of_slot_probe()
1049 mmc->max_req_size = mmc->max_seg_size; in cvm_mmc_of_slot_probe()
1051 mmc->max_blk_size = 512; in cvm_mmc_of_slot_probe()
1053 mmc->max_blk_count = 32767; in cvm_mmc_of_slot_probe()
1055 slot->clock = mmc->f_min; in cvm_mmc_of_slot_probe()
1065 ret = mmc_add_host(mmc); in cvm_mmc_of_slot_probe()
1074 mmc_free_host(slot->mmc); in cvm_mmc_of_slot_probe()
1080 mmc_remove_host(slot->mmc); in cvm_mmc_of_slot_remove()
1082 mmc_free_host(slot->mmc); in cvm_mmc_of_slot_remove()