Lines Matching refs:mmc

170 	struct mmc_host *mmc;  member
222 dev_err(mmc_dev(host->mmc), "ran out of sglist prematurely\n"); in davinci_fifo_data_trans()
264 dev_dbg(mmc_dev(host->mmc), "CMD%d, arg 0x%08x%s\n", in mmc_davinci_start_command()
305 dev_dbg(mmc_dev(host->mmc), "unknown resp_type %04x\n", in mmc_davinci_start_command()
414 dev_dbg(mmc_dev(host->mmc), in mmc_davinci_send_dma_request()
436 dev_dbg(mmc_dev(host->mmc), in mmc_davinci_send_dma_request()
457 host->sg_len = dma_map_sg(mmc_dev(host->mmc), data->sg, data->sg_len, in mmc_davinci_start_dma_transfer()
463 dma_unmap_sg(mmc_dev(host->mmc), in mmc_davinci_start_dma_transfer()
487 host->dma_tx = dma_request_chan(mmc_dev(host->mmc), "tx"); in davinci_acquire_dma_channels()
489 dev_err(mmc_dev(host->mmc), "Can't get dma_tx channel\n"); in davinci_acquire_dma_channels()
493 host->dma_rx = dma_request_chan(mmc_dev(host->mmc), "rx"); in davinci_acquire_dma_channels()
495 dev_err(mmc_dev(host->mmc), "Can't get dma_rx channel\n"); in davinci_acquire_dma_channels()
524 dev_dbg(mmc_dev(host->mmc), "%s, %d blocks of %d bytes\n", in mmc_davinci_prepare_data()
527 dev_dbg(mmc_dev(host->mmc), " DTO %d cycles + %d ns\n", in mmc_davinci_prepare_data()
576 static void mmc_davinci_request(struct mmc_host *mmc, struct mmc_request *req) in mmc_davinci_request() argument
578 struct mmc_davinci_host *host = mmc_priv(mmc); in mmc_davinci_request()
592 dev_err(mmc_dev(host->mmc), "still BUSY? bad ... \n"); in mmc_davinci_request()
594 mmc_request_done(mmc, req); in mmc_davinci_request()
631 static void calculate_clk_divider(struct mmc_host *mmc, struct mmc_ios *ios) in calculate_clk_divider() argument
635 struct mmc_davinci_host *host = mmc_priv(mmc); in calculate_clk_divider()
677 static void mmc_davinci_set_ios(struct mmc_host *mmc, struct mmc_ios *ios) in mmc_davinci_set_ios() argument
679 struct mmc_davinci_host *host = mmc_priv(mmc); in mmc_davinci_set_ios()
680 struct platform_device *pdev = to_platform_device(mmc->parent); in mmc_davinci_set_ios()
683 dev_dbg(mmc_dev(host->mmc), in mmc_davinci_set_ios()
701 dev_dbg(mmc_dev(host->mmc), "Enabling 8 bit mode\n"); in mmc_davinci_set_ios()
707 dev_dbg(mmc_dev(host->mmc), "Enabling 4 bit mode\n"); in mmc_davinci_set_ios()
718 dev_dbg(mmc_dev(host->mmc), "Enabling 1 bit mode\n"); in mmc_davinci_set_ios()
730 calculate_clk_divider(mmc, ios); in mmc_davinci_set_ios()
750 dev_warn(mmc_dev(host->mmc), "powerup timeout\n"); in mmc_davinci_set_ios()
761 if (host->mmc->caps & MMC_CAP_SDIO_IRQ) { in mmc_davinci_xfer_done()
770 mmc_signal_sdio_irq(host->mmc); in mmc_davinci_xfer_done()
777 dma_unmap_sg(mmc_dev(host->mmc), data->sg, data->sg_len, in mmc_davinci_xfer_done()
784 mmc_request_done(host->mmc, data->mrq); in mmc_davinci_xfer_done()
812 mmc_request_done(host->mmc, cmd->mrq); in mmc_davinci_cmd_done()
849 dev_dbg(mmc_dev(host->mmc), in mmc_davinci_sdio_irq()
852 mmc_signal_sdio_irq(host->mmc); in mmc_davinci_sdio_irq()
867 dev_dbg(mmc_dev(host->mmc), in mmc_davinci_irq()
927 dev_err(mmc_dev(host->mmc), in mmc_davinci_irq()
937 dev_dbg(mmc_dev(host->mmc), in mmc_davinci_irq()
961 dev_dbg(mmc_dev(host->mmc), "data %s %s error\n", in mmc_davinci_irq()
971 dev_dbg(mmc_dev(host->mmc), in mmc_davinci_irq()
985 dev_dbg(mmc_dev(host->mmc), "Command CRC error\n"); in mmc_davinci_irq()
1004 static int mmc_davinci_get_cd(struct mmc_host *mmc) in mmc_davinci_get_cd() argument
1006 struct platform_device *pdev = to_platform_device(mmc->parent); in mmc_davinci_get_cd()
1012 return mmc_gpio_get_cd(mmc); in mmc_davinci_get_cd()
1015 static int mmc_davinci_get_ro(struct mmc_host *mmc) in mmc_davinci_get_ro() argument
1017 struct platform_device *pdev = to_platform_device(mmc->parent); in mmc_davinci_get_ro()
1023 return mmc_gpio_get_ro(mmc); in mmc_davinci_get_ro()
1026 static void mmc_davinci_enable_sdio_irq(struct mmc_host *mmc, int enable) in mmc_davinci_enable_sdio_irq() argument
1028 struct mmc_davinci_host *host = mmc_priv(mmc); in mmc_davinci_enable_sdio_irq()
1033 mmc_signal_sdio_irq(host->mmc); in mmc_davinci_enable_sdio_irq()
1062 struct mmc_host *mmc; in mmc_davinci_cpufreq_transition() local
1066 mmc = host->mmc; in mmc_davinci_cpufreq_transition()
1070 spin_lock_irqsave(&mmc->lock, flags); in mmc_davinci_cpufreq_transition()
1072 calculate_clk_divider(mmc, &mmc->ios); in mmc_davinci_cpufreq_transition()
1073 spin_unlock_irqrestore(&mmc->lock, flags); in mmc_davinci_cpufreq_transition()
1141 static int mmc_davinci_parse_pdata(struct mmc_host *mmc) in mmc_davinci_parse_pdata() argument
1143 struct platform_device *pdev = to_platform_device(mmc->parent); in mmc_davinci_parse_pdata()
1151 host = mmc_priv(mmc); in mmc_davinci_parse_pdata()
1159 mmc->caps |= MMC_CAP_4_BIT_DATA; in mmc_davinci_parse_pdata()
1162 mmc->caps |= (MMC_CAP_4_BIT_DATA | MMC_CAP_8_BIT_DATA); in mmc_davinci_parse_pdata()
1164 mmc->f_min = 312500; in mmc_davinci_parse_pdata()
1165 mmc->f_max = 25000000; in mmc_davinci_parse_pdata()
1167 mmc->f_max = pdata->max_freq; in mmc_davinci_parse_pdata()
1169 mmc->caps |= pdata->caps; in mmc_davinci_parse_pdata()
1172 ret = mmc_gpiod_request_cd(mmc, "cd", 0, false, 0); in mmc_davinci_parse_pdata()
1176 mmc->caps |= MMC_CAP_NEEDS_POLL; in mmc_davinci_parse_pdata()
1178 ret = mmc_gpiod_request_ro(mmc, "wp", 0, 0); in mmc_davinci_parse_pdata()
1188 struct mmc_host *mmc = NULL; in davinci_mmcsd_probe() local
1207 mmc = mmc_alloc_host(sizeof(struct mmc_davinci_host), &pdev->dev); in davinci_mmcsd_probe()
1208 if (!mmc) in davinci_mmcsd_probe()
1211 host = mmc_priv(mmc); in davinci_mmcsd_probe()
1212 host->mmc = mmc; /* Important */ in davinci_mmcsd_probe()
1234 ret = mmc_of_parse(mmc); in davinci_mmcsd_probe()
1241 ret = mmc_davinci_parse_pdata(mmc); in davinci_mmcsd_probe()
1265 mmc->caps |= MMC_CAP_WAIT_WHILE_BUSY; in davinci_mmcsd_probe()
1271 mmc->ops = &mmc_davinci_ops; in davinci_mmcsd_probe()
1272 mmc->ocr_avail = MMC_VDD_32_33 | MMC_VDD_33_34; in davinci_mmcsd_probe()
1278 mmc->max_segs = MAX_NR_SG; in davinci_mmcsd_probe()
1281 mmc->max_seg_size = MAX_CCNT * rw_threshold; in davinci_mmcsd_probe()
1284 mmc->max_blk_size = 4095; /* BLEN is 12 bits */ in davinci_mmcsd_probe()
1285 mmc->max_blk_count = 65535; /* NBLK is 16 bits */ in davinci_mmcsd_probe()
1286 mmc->max_req_size = mmc->max_blk_size * mmc->max_blk_count; in davinci_mmcsd_probe()
1288 dev_dbg(mmc_dev(host->mmc), "max_segs=%d\n", mmc->max_segs); in davinci_mmcsd_probe()
1289 dev_dbg(mmc_dev(host->mmc), "max_blk_size=%d\n", mmc->max_blk_size); in davinci_mmcsd_probe()
1290 dev_dbg(mmc_dev(host->mmc), "max_req_size=%d\n", mmc->max_req_size); in davinci_mmcsd_probe()
1291 dev_dbg(mmc_dev(host->mmc), "max_seg_size=%d\n", mmc->max_seg_size); in davinci_mmcsd_probe()
1301 ret = mmc_add_host(mmc); in davinci_mmcsd_probe()
1306 mmc_hostname(mmc), host); in davinci_mmcsd_probe()
1313 mmc_hostname(mmc), host); in davinci_mmcsd_probe()
1315 mmc->caps |= MMC_CAP_SDIO_IRQ; in davinci_mmcsd_probe()
1318 rename_region(mem, mmc_hostname(mmc)); in davinci_mmcsd_probe()
1320 if (mmc->caps & MMC_CAP_8_BIT_DATA) in davinci_mmcsd_probe()
1322 else if (mmc->caps & MMC_CAP_4_BIT_DATA) in davinci_mmcsd_probe()
1326 dev_info(mmc_dev(host->mmc), "Using %s, %d-bit mode\n", in davinci_mmcsd_probe()
1332 mmc_remove_host(mmc); in davinci_mmcsd_probe()
1343 mmc_free_host(mmc); in davinci_mmcsd_probe()
1352 mmc_remove_host(host->mmc); in davinci_mmcsd_remove()
1356 mmc_free_host(host->mmc); in davinci_mmcsd_remove()