| /linux/drivers/mmc/host/ |
| H A D | meson-mx-sdhc-mmc.c | 3 * Amlogic Meson6/Meson8/Meson8b/Meson8m2 SDHC MMC host controller driver. 21 #include <linux/mmc/host.h> 22 #include <linux/mmc/mmc.h> 23 #include <linux/mmc/sdio.h> 24 #include <linux/mmc/slot-gpio.h> 38 void (*init_hw)(struct mmc_host *mmc); 39 void (*set_pdma)(struct mmc_host *mmc); 40 void (*wait_before_send)(struct mmc_host *mmc); 45 struct mmc_host *mmc; member 80 static void meson_mx_sdhc_clear_fifo(struct mmc_host *mmc) in meson_mx_sdhc_clear_fifo() argument [all …]
|
| H A D | mmc_hsq.c | 4 * MMC software queue support based on command queue interfaces 10 #include <linux/mmc/card.h> 11 #include <linux/mmc/host.h> 19 struct mmc_host *mmc = hsq->mmc; in mmc_hsq_retry_handler() local 21 mmc->ops->request(mmc, hsq->mrq); in mmc_hsq_retry_handler() 26 struct mmc_host *mmc = hsq->mmc; in mmc_hsq_modify_threshold() local 30 mmc->hsq_depth = HSQ_NORMAL_DEPTH; in mmc_hsq_modify_threshold() 37 mmc->hsq_depth = HSQ_PERFORMANCE_DEPTH; in mmc_hsq_modify_threshold() 45 struct mmc_host *mmc = hsq->mmc; in mmc_hsq_pump_requests() local 72 if (mmc->ops->request_atomic) in mmc_hsq_pump_requests() [all …]
|
| H A D | cqhci-core.c | 16 #include <linux/mmc/mmc.h> 17 #include <linux/mmc/host.h> 18 #include <linux/mmc/card.h> 55 return cq_host->trans_desc_len * cq_host->mmc->max_segs * tag; in get_trans_desc_offset() 84 if (tag == DCMD_SLOT && (cq_host->mmc->caps2 & MMC_CAP2_CQE_DCMD)) { in setup_trans_desc() 111 pr_err("%s: " DRV_NAME ": " f, mmc_hostname(mmc), ## x) 115 struct mmc_host *mmc = cq_host->mmc; in cqhci_dumpregs() local 154 cq_host->ops->dumpregs(mmc); in cqhci_dumpregs() 208 cq_host->data_size = get_trans_desc_offset(cq_host, cq_host->mmc->cqe_qdepth); in cqhci_host_alloc_tdl() 211 mmc_hostname(cq_host->mmc), cq_host->desc_size, cq_host->data_size, in cqhci_host_alloc_tdl() [all …]
|
| H A D | Kconfig | 3 # MMC/SD host controller drivers 6 comment "MMC/SD/SDIO Host Controller Drivers" 9 bool "MMC host drivers debugging" 10 depends on MMC != n 13 say N here. This enables MMC host driver debugging. And further 18 tristate "Sunplus SP7021 MMC Controller" 43 Qcom SOCs and MMC, you would probably need this option to get DMA working. 126 bool "Ricoh MMC Controller Disabler" 130 This adds a pci quirk to disable Ricoh MMC Controller. This 132 supports MMC cards on the SD controller, but if it is not [all …]
|
| H A D | pxamci.c | 3 * linux/drivers/mmc/host/pxa.c - PXA MMCI driver 26 #include <linux/mmc/host.h> 27 #include <linux/mmc/slot-gpio.h> 37 #include <linux/platform_data/mmc-pxamci.h> 50 struct mmc_host *mmc; member 78 struct mmc_host *mmc = host->mmc; in pxamci_init_ocr() local 81 ret = mmc_regulator_get_supply(mmc); in pxamci_init_ocr() 85 if (IS_ERR(mmc->supply.vmmc)) { in pxamci_init_ocr() 87 mmc->ocr_avail = host->pdata ? in pxamci_init_ocr() 99 struct mmc_host *mmc = host->mmc; in pxamci_set_power() local [all …]
|
| H A D | mxcmmc.c | 3 * linux/drivers/mmc/host/mxcmmc.c - Freescale i.MX MMCI driver 25 #include <linux/mmc/host.h> 26 #include <linux/mmc/card.h> 35 #include <linux/mmc/slot-gpio.h> 39 #include <linux/platform_data/mmc-mxcmmc.h> 43 #define DRIVER_NAME "mxc-mmc" 120 struct mmc_host *mmc; member 161 .compatible = "fsl,imx21-mmc", 164 .compatible = "fsl,imx31-mmc", 221 if (!IS_ERR(host->mmc->supply.vmmc)) { in mxcmci_set_power() [all …]
|
| H A D | litex_mmc.c | 23 #include <linux/mmc/host.h> 24 #include <linux/mmc/mmc.h> 25 #include <linux/mmc/sd.h> 77 struct mmc_host *mmc; member 126 struct device *dev = mmc_dev(host->mmc); in litex_mmc_send_cmd() 235 static int litex_mmc_get_cd(struct mmc_host *mmc) in litex_mmc_get_cd() argument 237 struct litex_mmc_host *host = mmc_priv(mmc); in litex_mmc_get_cd() 240 if (!mmc_card_is_removable(mmc)) in litex_mmc_get_cd() 255 struct mmc_host *mmc = arg; in litex_mmc_interrupt() local 256 struct litex_mmc_host *host = mmc_priv(mmc); in litex_mmc_interrupt() [all …]
|
| H A D | jz4740_mmc.c | 6 * JZ4740 SD/MMC controller driver 18 #include <linux/mmc/host.h> 19 #include <linux/mmc/slot-gpio.h> 131 * The MMC core allows to prepare a mmc_request while another mmc_request 150 struct mmc_host *mmc; member 230 struct device *dev = mmc_dev(host->mmc); in jz4740_mmc_acquire_dma_channels() 241 host->dma_tx = dma_request_chan(mmc_dev(host->mmc), "tx"); in jz4740_mmc_acquire_dma_channels() 243 dev_err(mmc_dev(host->mmc), "Failed to get dma_tx channel\n"); in jz4740_mmc_acquire_dma_channels() 247 host->dma_rx = dma_request_chan(mmc_dev(host->mmc), "rx"); in jz4740_mmc_acquire_dma_channels() 249 dev_err(mmc_dev(host->mmc), "Failed to get dma_rx channel\n"); in jz4740_mmc_acquire_dma_channels() [all …]
|
| H A D | loongson2-mmc.c | 3 * Loongson-2K MMC/SDIO controller driver 17 #include <linux/mmc/core.h> 18 #include <linux/mmc/host.h> 19 #include <linux/mmc/mmc.h> 20 #include <linux/mmc/sd.h> 21 #include <linux/mmc/sdio.h> 22 #include <linux/mmc/slot-gpio.h> 325 static void loongson2_mmc_send_request(struct mmc_host *mmc) in loongson2_mmc_send_request() argument 328 struct loongson2_mmc_host *host = mmc_priv(mmc); in loongson2_mmc_send_request() 337 mmc_request_done(mmc, mrq); in loongson2_mmc_send_request() [all …]
|
| H A D | cavium.c | 2 * Shared part of driver for MMC/SDHC controller on Cavium OCTEON and 22 #include <linux/mmc/mmc.h> 23 #include <linux/mmc/slot-gpio.h> 32 "MMC Buffer", 33 "MMC Command", 34 "MMC DMA", 35 "MMC Command Error", 36 "MMC DMA Error", 37 "MMC Switch", 38 "MMC Switch Error", [all …]
|
| H A D | sdricoh_cs.c | 25 #include <linux/mmc/host.h> 26 #include <linux/mmc/mmc.h> 77 /* mmc privdata */ 80 struct mmc_host *mmc; /* MMC structure */ member 254 static void sdricoh_request(struct mmc_host *mmc, struct mmc_request *mrq) in sdricoh_request() argument 256 struct sdricoh_host *host = mmc_priv(mmc); in sdricoh_request() 331 mmc_request_done(mmc, mrq); in sdricoh_request() 335 static void sdricoh_set_ios(struct mmc_host *mmc, struct mmc_ios *ios) in sdricoh_set_ios() argument 337 struct sdricoh_host *host = mmc_priv(mmc); in sdricoh_set_ios() 356 static int sdricoh_get_ro(struct mmc_host *mmc) in sdricoh_get_ro() argument [all …]
|
| H A D | sdhci-brcmstb.c | 10 #include <linux/mmc/host.h> 68 void (*hs400es)(struct mmc_host *mmc, struct mmc_ios *ios); 69 void (*save_restore_regs)(struct mmc_host *mmc, int save); 84 static void sdhci_brcmstb_save_regs(struct mmc_host *mmc, enum cfg_core_ver ver) in sdhci_brcmstb_save_regs() argument 86 struct sdhci_host *host = mmc_priv(mmc); in sdhci_brcmstb_save_regs() 91 bool is_emmc = mmc->caps & MMC_CAP_NONREMOVABLE; in sdhci_brcmstb_save_regs() 106 static void sdhci_brcmstb_restore_regs(struct mmc_host *mmc, enum cfg_core_ver ver) in sdhci_brcmstb_restore_regs() argument 108 struct sdhci_host *host = mmc_priv(mmc); in sdhci_brcmstb_restore_regs() 113 bool is_emmc = mmc->caps & MMC_CAP_NONREMOVABLE; in sdhci_brcmstb_restore_regs() 128 static void sdhci_brcmstb_save_restore_regs_v1(struct mmc_host *mmc, int save) in sdhci_brcmstb_save_restore_regs_v1() argument [all …]
|
| H A D | rtsx_pci_sdmmc.c | 2 /* Realtek PCI-Express SD/MMC Card Interface driver 17 #include <linux/mmc/host.h> 18 #include <linux/mmc/mmc.h> 19 #include <linux/mmc/sd.h> 20 #include <linux/mmc/sdio.h> 21 #include <linux/mmc/card.h> 29 struct mmc_host *mmc; member 49 static int sdmmc_init_sd_express(struct mmc_host *mmc, struct mmc_ios *ios); 180 static void sdmmc_pre_req(struct mmc_host *mmc, struct mmc_request *mrq) in sdmmc_pre_req() argument 182 struct realtek_pci_sdmmc *host = mmc_priv(mmc); in sdmmc_pre_req() [all …]
|
| H A D | usdhi6rol0.c | 16 #include <linux/mmc/host.h> 17 #include <linux/mmc/mmc.h> 18 #include <linux/mmc/sd.h> 19 #include <linux/mmc/sdio.h> 159 struct mmc_host *mmc; member 212 dev_vdbg(mmc_dev(host->mmc), "%s(0x%p + 0x%x) = 0x%x\n", __func__, in usdhi6_write() 219 dev_vdbg(mmc_dev(host->mmc), "%s(0x%p + 0x%x) = 0x%x\n", __func__, in usdhi6_write16() 226 dev_vdbg(mmc_dev(host->mmc), "%s(0x%p + 0x%x) = 0x%x\n", __func__, in usdhi6_read() 234 dev_vdbg(mmc_dev(host->mmc), "%s(0x%p + 0x%x) = 0x%x\n", __func__, in usdhi6_read16() 286 dev_dbg(mmc_dev(host->mmc), in usdhi6_error_code() [all …]
|
| H A D | mmci_stm32_sdmmc.c | 10 #include <linux/mmc/host.h> 11 #include <linux/mmc/card.h> 85 struct device *dev = mmc_dev(host->mmc); in sdmmc_idma_validate_data() 98 dev_dbg(mmc_dev(host->mmc), in sdmmc_idma_validate_data() 106 dev_dbg(mmc_dev(host->mmc), in sdmmc_idma_validate_data() 117 host->mmc->max_req_size, in sdmmc_idma_validate_data() 147 n_elem = dma_map_sg(mmc_dev(host->mmc), in _sdmmc_idma_prep_data() 153 dev_err(mmc_dev(host->mmc), "dma_map_sg failed\n"); in _sdmmc_idma_prep_data() 183 dma_unmap_sg(mmc_dev(host->mmc), data->sg, data->sg_len, in sdmmc_idma_unprep_data() 191 struct device *dev = mmc_dev(host->mmc); in sdmmc_idma_setup() [all …]
|
| H A D | moxart-mmc.c | 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() [all …]
|
| H A D | ushc.c | 20 #include <linux/mmc/host.h> 91 struct mmc_host *mmc; member 186 mmc_signal_sdio_irq(ushc->mmc); in int_callback() 190 mmc_detect_change(ushc->mmc, msecs_to_jiffies(100)); in int_callback() 245 mmc_request_done(ushc->mmc, req); in csw_callback() 248 static void ushc_request(struct mmc_host *mmc, struct mmc_request *req) in ushc_request() argument 250 struct ushc_data *ushc = mmc_priv(mmc); in ushc_request() 317 mmc_request_done(mmc, req); in ushc_request() 371 static void ushc_set_ios(struct mmc_host *mmc, struct mmc_ios *ios) in ushc_set_ios() argument 373 struct ushc_data *ushc = mmc_priv(mmc); in ushc_set_ios() [all …]
|
| /linux/Documentation/devicetree/bindings/mmc/ |
| H A D | mtk-sd.yaml | 4 $id: http://devicetree.org/schemas/mmc/mtk-sd.yaml# 17 - mediatek,mt2701-mmc 18 - mediatek,mt2712-mmc 19 - mediatek,mt6779-mmc 20 - mediatek,mt6795-mmc 21 - mediatek,mt7620-mmc 22 - mediatek,mt7622-mmc 23 - mediatek,mt7986-mmc 24 - mediatek,mt7988-mmc 25 - mediatek,mt8135-mmc [all …]
|
| H A D | sdhci-st.txt | 1 * STMicroelectronics sdhci-st MMC/SD controller 4 Documentation/devicetree/bindings/mmc/mmc.txt and the properties 9 to set the internal glue logic used for configuring the MMC 13 - clock-names: Should be "mmc" and "icn". (NB: The latter is not compulsory) 18 - interrupts: One mmc interrupt should be described here. 31 - reg-names: Should be "mmc" and "top-mmc-delay". "top-mmc-delay" is optional 36 See: Documentation/devicetree/bindings/mmc/mmc.txt. 39 See: Documentation/devicetree/bindings/mmc/mmc.txt. 43 See: Documentation/devicetree/bindings/mmc/mmc.txt. 52 See: Documentation/devicetree/bindings/mmc/mmc.txt. [all …]
|
| H A D | cavium-mmc.txt | 1 * Cavium Octeon & ThunderX MMC controller 3 The highspeed MMC host controller on Caviums SoCs provides an interface 4 for MMC and SD types of memory cards. 11 cavium,octeon-6130-mmc 12 cavium,octeon-7890-mmc 13 cavium,thunder-8190-mmc 14 cavium,thunder-8390-mmc 15 mmc-slot 16 - reg : mmc controller base registers 20 - for cd, bus-width and additional generic mmc parameters [all …]
|
| H A D | ingenic,mmc.yaml | 4 $id: http://devicetree.org/schemas/mmc/ingenic,mmc.yaml# 7 title: Ingenic SoCs MMC Controller 13 - $ref: mmc-controller.yaml# 19 - ingenic,jz4740-mmc 20 - ingenic,jz4725b-mmc 21 - ingenic,jz4760-mmc 22 - ingenic,jz4775-mmc 23 - ingenic,jz4780-mmc 24 - ingenic,x1000-mmc 26 - const: ingenic,jz4770-mmc [all …]
|
| H A D | loongson,ls2k0500-mmc.yaml | 4 $id: http://devicetree.org/schemas/mmc/loongson,ls2k0500-mmc.yaml# 10 The MMC host controller on the Loongson-2K0500/2K1000 (using an externally 12 The two MMC host controllers on the Loongson-2K2000 are similar, 20 - $ref: mmc-controller.yaml# 25 - loongson,ls2k0500-mmc 26 - loongson,ls2k1000-mmc 27 - loongson,ls2k2000-mmc 32 - description: Loongson-2K MMC controller registers. 33 - description: APB DMA config register for Loongson-2K MMC controller. 60 - loongson,ls2k0500-mmc [all …]
|
| H A D | owl-mmc.yaml | 4 $id: http://devicetree.org/schemas/mmc/owl-mmc.yaml# 7 title: Actions Semi Owl SoCs SD/MMC/SDIO controller 10 - $ref: mmc-controller.yaml 18 - const: actions,owl-mmc 21 - actions,s500-mmc 22 - actions,s700-mmc 23 - const: actions,owl-mmc 41 const: mmc 56 mmc0: mmc@e0330000 { 57 compatible = "actions,owl-mmc"; [all …]
|
| H A D | mmc-controller-common.yaml | 4 $id: http://devicetree.org/schemas/mmc/mmc-controller-common.yaml# 7 title: MMC Controller & Slots Common Properties 13 These properties are common to multiple MMC host controllers and the 44 # *NOTE* on CD and WP polarity. To use common for all SD/MMC host 88 - some mmc host controllers do support a max frequency up to 135 cap-mmc-highspeed: 138 MMC high-speed timing is supported. 170 cap-mmc-hw-reset: 190 mmc-ddr-1_2v: 195 mmc-ddr-1_8v: [all …]
|
| /linux/Documentation/driver-api/mmc/ |
| H A D | mmc-async-req.rst | 2 MMC Asynchronous Request 13 transfer, the DMA preparation overhead would not affect the MMC performance. 15 The intention of non-blocking (asynchronous) MMC requests is to minimize the 16 time between when an MMC request ends and another MMC request begins. 18 Using mmc_wait_for_req(), the MMC controller is idle while dma_map_sg and 19 dma_unmap_sg are processing. Using non-blocking MMC requests makes it 21 MMC request. 23 MMC block driver 26 The mmc_blk_issue_rw_rq() in the MMC block driver is made non-blocking. 30 a request and how fast the memory is. The faster the MMC/SD is the [all …]
|