/linux/drivers/net/ethernet/stmicro/stmmac/ |
H A D | mmc_core.c | 14 #include "mmc.h" 18 #define MMC_CNTRL 0x00 /* MMC Control */ 19 #define MMC_RX_INTR 0x04 /* MMC RX Interrupt */ 20 #define MMC_TX_INTR 0x08 /* MMC TX Interrupt */ 21 #define MMC_RX_INTR_MASK 0x0c /* MMC Interrupt Mask */ 22 #define MMC_TX_INTR_MASK 0x10 /* MMC Interrupt Mask */ 25 /* MMC TX counter registers */ 58 /* MMC RX counter registers */ 137 /* XGMAC MMC Registers */ 243 pr_debug("stmmac: MMC ctrl register (offset 0x%x): 0x%08x\n", in dwmac_mmc_ctrl() [all …]
|
/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 | meson-mx-sdio.c | 3 * meson-mx-sdio.c - Meson6, Meson8 and Meson8b SDIO/MMC Host Controller 25 #include <linux/mmc/host.h> 26 #include <linux/mmc/mmc.h> 27 #include <linux/mmc/sdio.h> 28 #include <linux/mmc/slot-gpio.h> 118 struct mmc_host *mmc; member 125 static void meson_mx_mmc_mask_bits(struct mmc_host *mmc, char reg, u32 mask, in meson_mx_mmc_mask_bits() argument 128 struct meson_mx_mmc_host *host = mmc_priv(mmc); in meson_mx_mmc_mask_bits() 155 static void meson_mx_mmc_start_cmd(struct mmc_host *mmc, in meson_mx_mmc_start_cmd() argument 158 struct meson_mx_mmc_host *host = mmc_priv(mmc); in meson_mx_mmc_start_cmd() [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 | omap.c | 3 * linux/drivers/mmc/host/omap.c 23 #include <linux/mmc/host.h> 24 #include <linux/mmc/card.h> 25 #include <linux/mmc/mmc.h> 30 #include <linux/platform_data/mmc-omap.h> 115 struct mmc_host *mmc; member 127 struct mmc_host * mmc; member 129 unsigned char id; /* 16xx chips have 2 MMC blocks */ 209 while (host->mmc != NULL) { in mmc_omap_select_slot() 211 wait_event(host->slot_wq, host->mmc == NULL); in mmc_omap_select_slot() [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 | 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 …]
|
/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 …]
|
/linux/drivers/staging/greybus/ |
H A D | sdio.c | 3 * SD/MMC Greybus driver. 10 #include <linux/mmc/core.h> 11 #include <linux/mmc/host.h> 12 #include <linux/mmc/mmc.h> 22 struct mmc_host *mmc; member 86 host->mmc->caps = caps; in _gb_sdio_set_host_caps() 87 host->mmc->caps2 = caps2 | MMC_CAP2_CORE_RUNTIME_PM; in _gb_sdio_set_host_caps() 118 struct mmc_host *mmc = host->mmc; in gb_sdio_get_caps() local 141 mmc->max_blk_size = rounddown_pow_of_two(blksz); in gb_sdio_get_caps() 142 mmc->max_blk_count = le16_to_cpu(response.max_blk_count); in gb_sdio_get_caps() [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 …]
|