/linux-6.14.4/drivers/mmc/host/ |
D | cb710-mmc.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * cb710/mmc.c 5 * Copyright by Michał Mirosław, 2008-2009 11 #include "cb710-mmc.h" 20 (ARRAY_SIZE(cb710_clock_divider_log2) - 1) 27 static void cb710_mmc_select_clock_divider(struct mmc_host *mmc, int hz) in cb710_mmc_select_clock_divider() argument 29 struct cb710_slot *slot = cb710_mmc_to_slot(mmc); in cb710_mmc_select_clock_divider() local 30 struct pci_dev *pdev = cb710_slot_to_chip(slot)->pdev; in cb710_mmc_select_clock_divider() 37 * indexes 1-7 work as written in the table in cb710_mmc_select_clock_divider() 38 * indexes 0,8-15 give no clock output in cb710_mmc_select_clock_divider() [all …]
|
D | omap.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * linux/drivers/mmc/host/omap.c 18 #include <linux/dma-mapping.h> 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> 74 #define mmc_omap7xx() (host->features & MMC_OMAP7XX) 75 #define mmc_omap15xx() (host->features & MMC_OMAP15XX) 76 #define mmc_omap16xx() (host->features & MMC_OMAP16XX) [all …]
|
D | cavium.c | 2 * Shared part of driver for MMC/SDHC controller on Cavium OCTEON and 9 * Copyright (C) 2012-2017 Cavium Inc. 18 #include <linux/dma-direction.h> 19 #include <linux/dma-mapping.h> 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", [all …]
|
D | sdhci-pci-core.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 2 /* linux/drivers/mmc/host/sdhci-pci.c - SDHCI on PCI bus interface 4 * Copyright (C) 2005-2008 Pierre Ossman, All Rights Reserved. 8 * - JMicron (hardware and technical support) 17 #include <linux/dma-mapping.h> 31 #include <linux/mmc/host.h> 32 #include <linux/mmc/mmc.h> 33 #include <linux/mmc/slot-gpio.h> 42 #include "sdhci-cqhci.h" 43 #include "sdhci-pci.h" [all …]
|
D | cqhci-core.c | 1 // SPDX-License-Identifier: GPL-2.0-only 10 #include <linux/dma-mapping.h> 16 #include <linux/mmc/mmc.h> 17 #include <linux/mmc/host.h> 18 #include <linux/mmc/card.h> 21 #include "cqhci-crypto.h" 43 return cq_host->desc_base + (tag * cq_host->slot_sz); in get_desc() 50 return desc + cq_host->task_desc_len; in get_link_desc() 55 return cq_host->trans_desc_len * cq_host->mmc->max_segs * tag; in get_trans_desc_offset() 62 return cq_host->trans_desc_dma_base + offset; in get_trans_desc_dma() [all …]
|
D | dw_mmc.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 14 #include <linux/dma-mapping.h> 30 #include <linux/mmc/card.h> 31 #include <linux/mmc/host.h> 32 #include <linux/mmc/mmc.h> 33 #include <linux/mmc/sd.h> 34 #include <linux/mmc/sdio.h> 38 #include <linux/mmc/slot-gpio.h> 73 ((d)->des2 = ((d)->des2 & cpu_to_le32(0x03ffe000)) | \ 78 u32 des4; /* Lower 32-bits of Buffer Address Pointer 1*/ [all …]
|
D | atmel-mci.c | 1 // SPDX-License-Identifier: GPL-2.0-only 5 * Copyright (C) 2004-2008 Atmel Corporation 12 #include <linux/dma-mapping.h> 29 #include <linux/mmc/host.h> 30 #include <linux/mmc/sdio.h> 63 #define ATMCI_MR_PDCMODE BIT(15) /* PDC-oriented Mode */ 69 #define ATMCI_SDCSEL_SLOT_A (0 << 0) /* Select SD slot A */ 70 #define ATMCI_SDCSEL_SLOT_B (1 << 0) /* Select SD slot A */ 72 #define ATMCI_SDCBUS_1BIT (0 << 6) /* 1-bit data bus */ 73 #define ATMCI_SDCBUS_4BIT (2 << 6) /* 4-bit data bus */ [all …]
|
D | mmc_hsq.c | 1 // SPDX-License-Identifier: GPL-2.0 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() 32 mrq = hsq->slot[tag].mrq; in mmc_hsq_modify_threshold() 33 if (mrq && mrq->data && in mmc_hsq_modify_threshold() [all …]
|
D | sdhci-acpi.c | 1 // SPDX-License-Identifier: GPL-2.0-only 13 #include <linux/pinctrl/pinconf-generic.h> 17 #include <linux/dma-mapping.h> 30 #include <linux/mmc/host.h> 31 #include <linux/mmc/pm.h> 32 #include <linux/mmc/slot-gpio.h> 73 const struct sdhci_acpi_slot *slot; member 90 return (void *)c->private; in sdhci_acpi_priv() 95 return c->slot && (c->slot->flags & flag); in sdhci_acpi_flag() 127 return -EOPNOTSUPP; in __intel_dsm() [all …]
|
D | sdhci-pci-gli.c | 1 // SPDX-License-Identifier: GPL-2.0+ 7 * Version: v0.9.0 (2019-08-08) 13 #include <linux/mmc/mmc.h> 18 #include "sdhci-cqhci.h" 19 #include "sdhci-pci.h" 21 #include "sdhci-uhs2.h" 452 if (!host->tuning_done) { in __sdhci_execute_tuning_9750() 465 if (!host->tuning_done) { in __sdhci_execute_tuning_9750() 467 mmc_hostname(host->mmc)); in __sdhci_execute_tuning_9750() 468 return -ETIMEDOUT; in __sdhci_execute_tuning_9750() [all …]
|
D | Kconfig | 1 # SPDX-License-Identifier: GPL-2.0-only 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" 32 platform with a Multimedia Card slot, say Y or M here. 43 Qcom SOCs and MMC, you would probably need this option to get DMA working. 62 If you have a PXA(R) platform with a Multimedia Card slot, [all …]
|
D | cqhci-crypto.c | 1 // SPDX-License-Identifier: GPL-2.0-only 8 #include <linux/blk-crypto.h> 9 #include <linux/blk-crypto-profile.h> 10 #include <linux/mmc/host.h> 12 #include "cqhci-crypto.h" 14 /* Map from blk-crypto modes to CQHCI crypto algorithm IDs and key sizes */ 28 return mmc_from_crypto_profile(profile)->cqe_private; in cqhci_host_from_crypto_profile() 33 int slot) in cqhci_crypto_program_key() argument 35 u32 slot_offset = cq_host->crypto_cfg_register + slot * sizeof(*cfg); in cqhci_crypto_program_key() 39 cqhci_writel(cq_host, 0, slot_offset + 16 * sizeof(cfg->reg_val[0])); in cqhci_crypto_program_key() [all …]
|
D | sdhci-pci-o2micro.c | 1 // SPDX-License-Identifier: GPL-2.0-only 11 #include <linux/mmc/host.h> 12 #include <linux/mmc/mmc.h> 18 #include "sdhci-pci.h" 101 mmc_hostname(host->mmc)); in sdhci_o2_wait_card_detect_stable() 137 mmc_hostname(host->mmc)); in sdhci_o2_enable_internal_clock() 155 static int sdhci_o2_get_cd(struct mmc_host *mmc) in sdhci_o2_get_cd() argument 157 struct sdhci_host *host = mmc_priv(mmc); in sdhci_o2_get_cd() 171 pci_read_config_dword(chip->pdev, in o2_pci_set_baseclk() 177 pci_write_config_dword(chip->pdev, in o2_pci_set_baseclk() [all …]
|
D | dw_mmc-k3.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 11 #include <linux/mmc/host.h> 20 #include "dw_mmc-pltfm.h" 106 ret = clk_set_rate(host->ciu_clk, ios->clock); in dw_mci_k3_set_ios() 108 dev_warn(host->dev, "failed to set rate %uHz\n", ios->clock); in dw_mci_k3_set_ios() 110 host->bus_hz = clk_get_rate(host->ciu_clk); in dw_mci_k3_set_ios() 121 priv = devm_kzalloc(host->dev, sizeof(*priv), GFP_KERNEL); in dw_mci_hi6220_parse_dt() 123 return -ENOMEM; in dw_mci_hi6220_parse_dt() 125 priv->reg = syscon_regmap_lookup_by_phandle(host->dev->of_node, in dw_mci_hi6220_parse_dt() 126 "hisilicon,peripheral-syscon"); in dw_mci_hi6220_parse_dt() [all …]
|
D | dw_mmc.h | 1 /* SPDX-License-Identifier: GPL-2.0-or-later */ 14 #include <linux/mmc/core.h> 17 #include <linux/fault-inject.h> 60 * struct dw_mci - MMC controller state shared between all slots 67 * @mrq: The request currently being processed on @slot, 78 * @dma_64bit_address: Whether DMA supports 64-bit address mode or not. 81 * @dma_ops: Pointer to platform-specific DMA callbacks. 85 * @dms: structure of slave-dma private data. 100 * @bus_hz: The rate of @mck in Hz. This forms the basis for MMC bus 106 * @dev: Device associated with the MMC controller. [all …]
|
D | cavium-thunderx.c | 2 * Driver for MMC and SSD cards for Cavium ThunderX SOCs. 11 #include <linux/dma-mapping.h> 13 #include <linux/mmc/mmc.h> 23 down(&host->mmc_serializer); in thunder_mmc_acquire_bus() 28 up(&host->mmc_serializer); in thunder_mmc_release_bus() 33 writeq(val, host->base + MIO_EMM_INT(host)); in thunder_mmc_int_enable() 34 writeq(val, host->base + MIO_EMM_INT_EN_SET(host)); in thunder_mmc_int_enable() 48 ret = devm_request_irq(&pdev->dev, pci_irq_vector(pdev, i), in thunder_mmc_register_interrupts() 60 struct device_node *node = pdev->dev.of_node; in thunder_mmc_probe() 61 struct device *dev = &pdev->dev; in thunder_mmc_probe() [all …]
|
D | sdhci-of-aspeed.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 10 #include <linux/mmc/host.h> 18 #include "sdhci-pltfm.h" 82 * capbilities of the current slot. 84 * slot | capability | caps_reg | mirror_reg 85 * -----|-------------|----------|------------ 92 int capability, bool enable, u8 slot) in aspeed_sdc_set_slot_capability() argument 98 if (slot > 1) in aspeed_sdc_set_slot_capability() 107 mirror_reg_offset = ((slot + 1) * 0x10) + (cap_reg * 4); in aspeed_sdc_set_slot_capability() 108 writel(cap_val, sdc->regs + mirror_reg_offset); in aspeed_sdc_set_slot_capability() [all …]
|
/linux-6.14.4/Documentation/devicetree/bindings/mmc/ |
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. 10 - compatible : should be one of: 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 [all …]
|
D | mmc-slot.yaml | 1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 3 --- 4 $id: http://devicetree.org/schemas/mmc/mmc-slot.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 7 title: MMC slot properties 10 - Ulf Hansson <[email protected]> 13 These properties defines slot properties for MMC controlers that 17 $ref: mmc-controller-common.yaml# 21 pattern: "^slot(@.*)?$" 24 const: mmc-slot [all …]
|
D | mmc-spi-slot.yaml | 1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 3 --- 4 $id: http://devicetree.org/schemas/mmc/mmc-spi-slot.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 7 title: MMC/SD/SDIO slot directly connected to a SPI bus 10 - Ulf Hansson <[email protected]> 13 - $ref: mmc-controller.yaml 14 - $ref: /schemas/spi/spi-peripheral-props.yaml 17 The extra properties used by an mmc connected via SPI. 21 const: mmc-spi-slot [all …]
|
D | amlogic,meson-mx-sdio.yaml | 1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 3 --- 4 $id: http://devicetree.org/schemas/mmc/amlogic,meson-mx-sdio.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 7 title: Amlogic Meson6, Meson8 and Meson8b SDIO/MMC controller 10 The highspeed MMC host controller on Amlogic SoCs provides an interface 11 for MMC, SD, SDIO and SDHC types of memory cards. 17 to be controlled. Only one slot can be accessed at a time. 20 - Neil Armstrong <[email protected]> 25 - enum: [all …]
|
D | atmel-hsmci.txt | 3 This controller on atmel products provides an interface for MMC, SD and SDIO 7 by mmc.txt and the properties used by the atmel-mci driver. 12 - compatible: should be "atmel,hsmci" 13 - #address-cells: should be one. The cell is the slot id. 14 - #size-cells: should be zero. 15 - at least one slot node 16 - clock-names: tuple listing input clock names. 18 - clocks: phandles to input clocks. 20 The node contains child nodes for each slot that the platform uses 24 mmc0: mmc@f0008000 { [all …]
|
/linux-6.14.4/include/linux/platform_data/ |
D | mmc-omap.h | 1 /* SPDX-License-Identifier: GPL-2.0-only */ 3 * MMC definitions for OMAP2 13 /* back-link to device */ 20 * maximum frequency on the MMC bus */ 23 /* initialize board-specific MMC functionality, can be NULL if 42 * need to OR'd all capabilities (ref. linux/mmc/host.h) 44 u8 wires; /* Used for the MMC driver on omap1 and 2420 */ 45 u32 caps; /* Used for the MMC driver on 2430 and later */ 46 u32 pm_caps; /* PM capabilities of the mmc */ 50 * that board-specific code handled it before common init logic. [all …]
|
/linux-6.14.4/arch/arm/mach-omap2/ |
D | board-n8x0.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * linux/arch/arm/mach-omap2/board-n8x0.c 5 * Copyright (C) 2005-2009 Nokia Corporation 8 * Modified from mach-omap2/board-generic.c 22 #include <linux/mmc/host.h> 23 #include <linux/platform_data/spi-omap2-mcspi.h> 24 #include <linux/platform_data/mmc-omap.h> 28 #include <asm/mach-types.h> 31 #include "mmc.h" 32 #include "usb-tusb6010.h" [all …]
|
/linux-6.14.4/drivers/mmc/core/ |
D | slot-gpio.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * Generic GPIO card-detect helper 12 #include <linux/mmc/host.h> 13 #include <linux/mmc/slot-gpio.h> 17 #include "slot-gpio.h" 33 struct mmc_gpio *ctx = host->slot.handler_priv; in mmc_gpio_cd_irqt() 35 host->trigger_card_event = true; in mmc_gpio_cd_irqt() 36 mmc_detect_change(host, msecs_to_jiffies(ctx->cd_debounce_delay_ms)); in mmc_gpio_cd_irqt() 43 const char *devname = dev_name(host->parent); in mmc_gpio_alloc() 46 ctx = devm_kzalloc(host->parent, sizeof(*ctx), GFP_KERNEL); in mmc_gpio_alloc() [all …]
|