/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/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 | 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/mmc/core/ |
H A D | regulator.c | 3 * Helper functions for MMC regulators. 11 #include <linux/mmc/host.h> 57 * can be provided to MMC/SD/SDIO devices using the specified voltage 59 * MMC host adapter. 96 * @mmc: the host to regulate 102 * MMC host drivers may use this to enable or disable a regulator using 106 int mmc_regulator_set_ocr(struct mmc_host *mmc, in mmc_regulator_set_ocr() argument 120 if (result == 0 && !mmc->regulator_enabled) { in mmc_regulator_set_ocr() 123 mmc->regulator_enabled = true; in mmc_regulator_set_ocr() 125 } else if (mmc->regulator_enabled) { in mmc_regulator_set_ocr() [all …]
|
/linux/drivers/mmc/host/ |
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 | 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 | tmio_mmc_core.c | 3 * Driver for the MMC / SD / SDIO IP found in: 22 * Handle MMC errors better 34 #include <linux/mmc/card.h> 35 #include <linux/mmc/host.h> 36 #include <linux/mmc/mmc.h> 37 #include <linux/mmc/slot-gpio.h> 46 #include <linux/mmc/sdio.h> 138 static void tmio_mmc_enable_sdio_irq(struct mmc_host *mmc, int enable) in tmio_mmc_enable_sdio_irq() argument 140 struct tmio_mmc_host *host = mmc_priv(mmc); in tmio_mmc_enable_sdio_irq() 146 pm_runtime_get_sync(mmc_dev(mmc)); in tmio_mmc_enable_sdio_irq() [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 | 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 | sdhci.c | 3 * linux/drivers/mmc/host/sdhci.c - Secure Digital Host Controller Interface driver 29 #include <linux/mmc/mmc.h> 30 #include <linux/mmc/host.h> 31 #include <linux/mmc/card.h> 32 #include <linux/mmc/sdio.h> 33 #include <linux/mmc/slot-gpio.h> 40 pr_debug("%s: " DRIVER_NAME ": " f, mmc_hostname(host->mmc), ## x) 43 pr_err("%s: " DRIVER_NAME ": " f, mmc_hostname(host->mmc), ## x) 161 !mmc_card_is_removable(host->mmc) || mmc_host_can_gpio_cd(host->mmc)) in sdhci_set_card_detection() 193 pm_runtime_get_noresume(mmc_dev(host->mmc)); in sdhci_runtime_pm_bus_on() [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 | 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 | mmci.c | 3 * linux/drivers/mmc/host/mmci.c - ARM PrimeCell MMCI PL180/1 driver 21 #include <linux/mmc/mmc.h> 22 #include <linux/mmc/pm.h> 23 #include <linux/mmc/host.h> 24 #include <linux/mmc/card.h> 25 #include <linux/mmc/sd.h> 26 #include <linux/mmc/slot-gpio.h> 371 static int mmci_card_busy(struct mmc_host *mmc) in mmci_card_busy() argument 373 struct mmci_host *host = mmc_priv(mmc); in mmci_card_busy() 485 host->mmc->actual_clock = host->cclk; in mmci_set_clkreg() [all …]
|
H A D | sdhci-msm.c | 3 * drivers/mmc/host/sdhci-msm.c - Qualcomm SDHCI Platform driver 10 #include <linux/mmc/mmc.h> 280 struct mmc_host *mmc; member 348 struct mmc_ios ios = host->mmc->ios; in msm_get_clock_mult_for_bus_mode() 368 struct mmc_ios curr_ios = host->mmc->ios; in msm_set_clock_rate_for_bus_mode() 377 rc = dev_pm_opp_set_rate(mmc_dev(host->mmc), desired_rate); in msm_set_clock_rate_for_bus_mode() 380 mmc_hostname(host->mmc), desired_rate, curr_ios.timing); in msm_set_clock_rate_for_bus_mode() 392 mmc_hostname(host->mmc), desired_rate, achieved_rate); in msm_set_clock_rate_for_bus_mode() 393 host->mmc->actual_clock = achieved_rate / mult; in msm_set_clock_rate_for_bus_mode() 399 mmc_hostname(host->mmc), achieved_rate, curr_ios.timing); in msm_set_clock_rate_for_bus_mode() [all …]
|
H A D | sdhci-of-k1.c | 12 #include <linux/mmc/card.h> 13 #include <linux/mmc/host.h> 14 #include <linux/mmc/mmc.h> 100 if (!(host->mmc->caps2 & MMC_CAP2_NO_MMC)) in spacemit_sdhci_reset() 114 if (!(host->mmc->caps2 & MMC_CAP2_NO_SDIO)) in spacemit_sdhci_set_uhs_signaling() 120 struct mmc_host *mmc = host->mmc; in spacemit_sdhci_set_clock() local 122 if (mmc->ios.timing <= MMC_TIMING_UHS_SDR50) in spacemit_sdhci_set_clock() 150 dev_warn(mmc_dev(host->mmc), "fail to lock phy dll in 100us!\n"); in spacemit_sdhci_phy_dll_init() 153 static void spacemit_sdhci_hs400_enhanced_strobe(struct mmc_host *mmc, struct mmc_ios *ios) in spacemit_sdhci_hs400_enhanced_strobe() argument 155 struct sdhci_host *host = mmc_priv(mmc); in spacemit_sdhci_hs400_enhanced_strobe() [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 | 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/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 …]
|