Lines Matching refs:mmc

221 	struct mmc_host	*mmc;  member
261 dev_err(mmc_dev(host->mmc), "fatal err reset timeout\n"); in sunxi_mmc_reset_host()
268 static int sunxi_mmc_init_host(struct mmc_host *mmc) in sunxi_mmc_init_host() argument
271 struct sunxi_mmc_host *host = mmc_priv(mmc); in sunxi_mmc_init_host()
339 dma_len = dma_map_sg(mmc_dev(host->mmc), data->sg, data->sg_len, in sunxi_mmc_map_dma()
342 dev_err(mmc_dev(host->mmc), "dma_map_sg failed\n"); in sunxi_mmc_map_dma()
348 dev_err(mmc_dev(host->mmc), in sunxi_mmc_map_dma()
407 dev_err(mmc_dev(host->mmc), "send stop command failed\n"); in sunxi_mmc_send_manual_stop()
429 dev_err(mmc_dev(host->mmc), in sunxi_mmc_dump_errinfo()
431 host->mmc->index, cmd->opcode, in sunxi_mmc_dump_errinfo()
490 dma_unmap_sg(mmc_dev(host->mmc), data->sg, data->sg_len, in sunxi_mmc_finalize_request()
517 dev_dbg(mmc_dev(host->mmc), "irq: rq %p mi %08x idi %08x\n", in sunxi_mmc_irq()
552 mmc_request_done(host->mmc, mrq); in sunxi_mmc_irq()
555 mmc_signal_sdio_irq(host->mmc); in sunxi_mmc_irq()
571 dev_err(mmc_dev(host->mmc), "no request for manual stop\n"); in sunxi_mmc_handle_manual_stop()
575 dev_err(mmc_dev(host->mmc), "data error, sending stop command\n"); in sunxi_mmc_handle_manual_stop()
591 mmc_request_done(host->mmc, mrq); in sunxi_mmc_handle_manual_stop()
621 dev_err(mmc_dev(host->mmc), "fatal err update clk timeout\n"); in sunxi_mmc_oclk_onoff()
635 dev_dbg(mmc_dev(host->mmc), "setting clk to %d, rounded %d\n", in sunxi_mmc_clk_set_rate()
641 dev_err(mmc_dev(host->mmc), "error setting clk to %d: %d\n", in sunxi_mmc_clk_set_rate()
686 static void sunxi_mmc_set_ios(struct mmc_host *mmc, struct mmc_ios *ios) in sunxi_mmc_set_ios() argument
688 struct sunxi_mmc_host *host = mmc_priv(mmc); in sunxi_mmc_set_ios()
697 mmc_regulator_set_ocr(mmc, mmc->supply.vmmc, ios->vdd); in sunxi_mmc_set_ios()
699 host->ferror = sunxi_mmc_init_host(mmc); in sunxi_mmc_set_ios()
703 dev_dbg(mmc_dev(mmc), "power on!\n"); in sunxi_mmc_set_ios()
707 dev_dbg(mmc_dev(mmc), "power off!\n"); in sunxi_mmc_set_ios()
709 mmc_regulator_set_ocr(mmc, mmc->supply.vmmc, 0); in sunxi_mmc_set_ios()
741 static void sunxi_mmc_enable_sdio_irq(struct mmc_host *mmc, int enable) in sunxi_mmc_enable_sdio_irq() argument
743 struct sunxi_mmc_host *host = mmc_priv(mmc); in sunxi_mmc_enable_sdio_irq()
761 static void sunxi_mmc_hw_reset(struct mmc_host *mmc) in sunxi_mmc_hw_reset() argument
763 struct sunxi_mmc_host *host = mmc_priv(mmc); in sunxi_mmc_hw_reset()
770 static void sunxi_mmc_request(struct mmc_host *mmc, struct mmc_request *mrq) in sunxi_mmc_request() argument
772 struct sunxi_mmc_host *host = mmc_priv(mmc); in sunxi_mmc_request()
784 mmc_request_done(mmc, mrq); in sunxi_mmc_request()
791 dev_err(mmc_dev(mmc), "map DMA failed\n"); in sunxi_mmc_request()
794 mmc_request_done(mmc, mrq); in sunxi_mmc_request()
837 dev_dbg(mmc_dev(mmc), "cmd %d(%08x) arg %x ie 0x%08x len %d\n", in sunxi_mmc_request()
847 dma_unmap_sg(mmc_dev(mmc), data->sg, data->sg_len, in sunxi_mmc_request()
850 dev_err(mmc_dev(mmc), "request already pending\n"); in sunxi_mmc_request()
852 mmc_request_done(mmc, mrq); in sunxi_mmc_request()
898 ret = mmc_regulator_get_supply(host->mmc); in sunxi_mmc_resource_request()
999 struct mmc_host *mmc; in sunxi_mmc_probe() local
1002 mmc = mmc_alloc_host(sizeof(struct sunxi_mmc_host), &pdev->dev); in sunxi_mmc_probe()
1003 if (!mmc) { in sunxi_mmc_probe()
1008 host = mmc_priv(mmc); in sunxi_mmc_probe()
1009 host->mmc = mmc; in sunxi_mmc_probe()
1024 mmc->ops = &sunxi_mmc_ops; in sunxi_mmc_probe()
1025 mmc->max_blk_count = 8192; in sunxi_mmc_probe()
1026 mmc->max_blk_size = 4096; in sunxi_mmc_probe()
1027 mmc->max_segs = PAGE_SIZE / sizeof(struct sunxi_idma_des); in sunxi_mmc_probe()
1028 mmc->max_seg_size = (1 << host->idma_des_size_bits); in sunxi_mmc_probe()
1029 mmc->max_req_size = mmc->max_seg_size * mmc->max_segs; in sunxi_mmc_probe()
1031 mmc->f_min = 400000; in sunxi_mmc_probe()
1032 mmc->f_max = 50000000; in sunxi_mmc_probe()
1033 mmc->caps |= MMC_CAP_MMC_HIGHSPEED | MMC_CAP_SD_HIGHSPEED | in sunxi_mmc_probe()
1036 ret = mmc_of_parse(mmc); in sunxi_mmc_probe()
1040 ret = mmc_add_host(mmc); in sunxi_mmc_probe()
1045 platform_set_drvdata(pdev, mmc); in sunxi_mmc_probe()
1051 mmc_free_host(mmc); in sunxi_mmc_probe()
1057 struct mmc_host *mmc = platform_get_drvdata(pdev); in sunxi_mmc_remove() local
1058 struct sunxi_mmc_host *host = mmc_priv(mmc); in sunxi_mmc_remove()
1060 mmc_remove_host(mmc); in sunxi_mmc_remove()
1071 mmc_free_host(mmc); in sunxi_mmc_remove()