dm: mmc: Drop CONFIG_DM_MMC_OPS

All boards which use DM_MMC have now been converted to use DM_MMC_OPS.
Drop the option and good riddance.

Signed-off-by: Simon Glass <sjg@chromium.org>
master
Simon Glass 7 years ago committed by Jaehoon Chung
parent b9a40c0c0a
commit e7881d85a9
  1. 2
      arch/arm/Kconfig
  2. 40
      drivers/mmc/Kconfig
  3. 8
      drivers/mmc/dw_mmc.c
  4. 8
      drivers/mmc/fsl_esdhc.c
  5. 4
      drivers/mmc/mmc-uclass.c
  6. 12
      drivers/mmc/mmc.c
  7. 2
      drivers/mmc/mmc_legacy.c
  8. 8
      drivers/mmc/sdhci.c
  9. 1
      include/configs/am335x_evm.h
  10. 1
      include/configs/am335x_shc.h
  11. 1
      include/configs/chiliboard.h
  12. 1
      include/configs/omap3_logic.h
  13. 2
      include/dwmmc.h
  14. 6
      include/mmc.h
  15. 2
      include/sdhci.h

@ -726,7 +726,6 @@ config ARCH_ZYNQ
select DM_GPIO select DM_GPIO
select SPL_DM if SPL select SPL_DM if SPL
select DM_MMC select DM_MMC
select DM_MMC_OPS
select DM_SPI select DM_SPI
select DM_SERIAL select DM_SERIAL
select DM_SPI_FLASH select DM_SPI_FLASH
@ -1075,7 +1074,6 @@ config ARCH_ROCKCHIP
select DM_GPIO select DM_GPIO
select DM_I2C select DM_I2C
select DM_MMC select DM_MMC
select DM_MMC_OPS
select DM_SERIAL select DM_SERIAL
select DM_SPI select DM_SPI
select DM_SPI_FLASH select DM_SPI_FLASH

@ -20,16 +20,6 @@ config DM_MMC
appear as block devices in U-Boot and can support filesystems such appear as block devices in U-Boot and can support filesystems such
as EXT4 and FAT. as EXT4 and FAT.
config DM_MMC_OPS
bool "Support MMC controller operations using Driver Model"
depends on DM_MMC
default y if DM_MMC
help
Driver model provides a means of supporting device operations. This
option moves MMC operations under the control of driver model. The
option will be removed as soon as all DM_MMC drivers use it, as it
will the only supported behaviour.
config SPL_DM_MMC config SPL_DM_MMC
bool "Enable MMC controllers using Driver Model in SPL" bool "Enable MMC controllers using Driver Model in SPL"
depends on SPL_DM && DM_MMC depends on SPL_DM && DM_MMC
@ -41,16 +31,6 @@ config SPL_DM_MMC
appear as block devices in U-Boot and can support filesystems such appear as block devices in U-Boot and can support filesystems such
as EXT4 and FAT. as EXT4 and FAT.
config SPL_DM_MMC_OPS
bool "Support MMC controller operations using Driver Model in SPL"
depends on SPL_DM_MMC && DM_MMC_OPS
default y
help
Driver model provides a means of supporting device operations. This
option moves MMC operations under the control of driver model. The
option will be removed as soon as all DM_MMC drivers use it, as it
will the only supported behaviour.
if MMC if MMC
config SPL_MMC_TINY config SPL_MMC_TINY
@ -124,7 +104,7 @@ config MMC_DW_SOCFPGA
config MMC_MESON_GX config MMC_MESON_GX
bool "Meson GX EMMC controller support" bool "Meson GX EMMC controller support"
depends on DM_MMC && BLK && DM_MMC_OPS && ARCH_MESON depends on DM_MMC && BLK && ARCH_MESON
help help
Support for EMMC host controller on Meson GX ARM SoCs platform (S905) Support for EMMC host controller on Meson GX ARM SoCs platform (S905)
@ -155,7 +135,7 @@ config MMC_PCI
config MMC_OMAP_HS config MMC_OMAP_HS
bool "TI OMAP High Speed Multimedia Card Interface support" bool "TI OMAP High Speed Multimedia Card Interface support"
select DM_MMC_OPS if DM_MMC select DM_REGULATOR_PBIAS if DM_MMC && DM_REGULATOR
help help
This selects the TI OMAP High Speed Multimedia card Interface. This selects the TI OMAP High Speed Multimedia card Interface.
If you have an omap2plus board with a Multimedia Card slot, If you have an omap2plus board with a Multimedia Card slot,
@ -184,7 +164,7 @@ config SH_SDHI
config MMC_UNIPHIER config MMC_UNIPHIER
bool "UniPhier SD/MMC Host Controller support" bool "UniPhier SD/MMC Host Controller support"
depends on ARCH_UNIPHIER depends on ARCH_UNIPHIER
depends on BLK && DM_MMC_OPS depends on BLK && DM_MMC
depends on OF_CONTROL depends on OF_CONTROL
help help
This selects support for the SD/MMC Host Controller on UniPhier SoCs. This selects support for the SD/MMC Host Controller on UniPhier SoCs.
@ -192,7 +172,7 @@ config MMC_UNIPHIER
config MMC_SANDBOX config MMC_SANDBOX
bool "Sandbox MMC support" bool "Sandbox MMC support"
depends on SANDBOX depends on SANDBOX
depends on BLK && DM_MMC_OPS && OF_CONTROL depends on BLK && DM_MMC && OF_CONTROL
help help
This select a dummy sandbox MMC driver. At present this does nothing This select a dummy sandbox MMC driver. At present this does nothing
other than allow sandbox to be build with MMC support. This other than allow sandbox to be build with MMC support. This
@ -227,7 +207,7 @@ config MMC_SDHCI_SDMA
config MMC_SDHCI_ATMEL config MMC_SDHCI_ATMEL
bool "Atmel SDHCI controller support" bool "Atmel SDHCI controller support"
depends on ARCH_AT91 depends on ARCH_AT91
depends on DM_MMC && BLK && DM_MMC_OPS && ARCH_AT91 depends on DM_MMC && BLK && ARCH_AT91
depends on MMC_SDHCI depends on MMC_SDHCI
help help
This enables support for the Atmel SDHCI controller, which supports This enables support for the Atmel SDHCI controller, which supports
@ -251,7 +231,7 @@ config MMC_SDHCI_BCM2835
config MMC_SDHCI_CADENCE config MMC_SDHCI_CADENCE
bool "SDHCI support for the Cadence SD/SDIO/eMMC controller" bool "SDHCI support for the Cadence SD/SDIO/eMMC controller"
depends on BLK && DM_MMC_OPS depends on BLK && DM_MMC
depends on MMC_SDHCI depends on MMC_SDHCI
depends on OF_CONTROL depends on OF_CONTROL
help help
@ -273,7 +253,7 @@ config MMC_SDHCI_KONA
config MMC_SDHCI_MSM config MMC_SDHCI_MSM
bool "Qualcomm SDHCI controller" bool "Qualcomm SDHCI controller"
depends on BLK && DM_MMC_OPS depends on BLK && DM_MMC
depends on MMC_SDHCI depends on MMC_SDHCI
help help
Enables support for SDHCI 2.0 controller present on some Qualcomm Enables support for SDHCI 2.0 controller present on some Qualcomm
@ -303,7 +283,7 @@ config MMC_SDHCI_PIC32
config MMC_SDHCI_ROCKCHIP config MMC_SDHCI_ROCKCHIP
bool "Arasan SDHCI controller for Rockchip support" bool "Arasan SDHCI controller for Rockchip support"
depends on ARCH_ROCKCHIP depends on ARCH_ROCKCHIP
depends on DM_MMC && BLK && DM_MMC_OPS depends on DM_MMC && BLK
depends on MMC_SDHCI depends on MMC_SDHCI
help help
Support for Arasan SDHCI host controller on Rockchip ARM SoCs platform Support for Arasan SDHCI host controller on Rockchip ARM SoCs platform
@ -376,7 +356,7 @@ config MMC_SDHCI_TEGRA
config MMC_SDHCI_ZYNQ config MMC_SDHCI_ZYNQ
bool "Arasan SDHCI controller support" bool "Arasan SDHCI controller support"
depends on ARCH_ZYNQ || ARCH_ZYNQMP depends on ARCH_ZYNQ || ARCH_ZYNQMP
depends on DM_MMC && OF_CONTROL && BLK && DM_MMC_OPS depends on DM_MMC && OF_CONTROL && BLK
depends on MMC_SDHCI depends on MMC_SDHCI
help help
Support for Arasan SDHCI host controller on Zynq/ZynqMP ARM SoCs platform Support for Arasan SDHCI host controller on Zynq/ZynqMP ARM SoCs platform
@ -391,7 +371,7 @@ config MMC_SUNXI
config GENERIC_ATMEL_MCI config GENERIC_ATMEL_MCI
bool "Atmel Multimedia Card Interface support" bool "Atmel Multimedia Card Interface support"
depends on DM_MMC && BLK && DM_MMC_OPS && ARCH_AT91 depends on DM_MMC && BLK && ARCH_AT91
help help
This enables support for Atmel High Speed Multimedia Card Interface This enables support for Atmel High Speed Multimedia Card Interface
(HSMCI), which supports the MultiMedia Card (MMC) Specification V4.3, (HSMCI), which supports the MultiMedia Card (MMC) Specification V4.3,

@ -184,7 +184,7 @@ static int dwmci_set_transfer_mode(struct dwmci_host *host,
return mode; return mode;
} }
#ifdef CONFIG_DM_MMC_OPS #ifdef CONFIG_DM_MMC
static int dwmci_send_cmd(struct udevice *dev, struct mmc_cmd *cmd, static int dwmci_send_cmd(struct udevice *dev, struct mmc_cmd *cmd,
struct mmc_data *data) struct mmc_data *data)
{ {
@ -383,7 +383,7 @@ static int dwmci_setup_bus(struct dwmci_host *host, u32 freq)
return 0; return 0;
} }
#ifdef CONFIG_DM_MMC_OPS #ifdef CONFIG_DM_MMC
static int dwmci_set_ios(struct udevice *dev) static int dwmci_set_ios(struct udevice *dev)
{ {
struct mmc *mmc = mmc_get_mmc_dev(dev); struct mmc *mmc = mmc_get_mmc_dev(dev);
@ -466,7 +466,7 @@ static int dwmci_init(struct mmc *mmc)
return 0; return 0;
} }
#ifdef CONFIG_DM_MMC_OPS #ifdef CONFIG_DM_MMC
int dwmci_probe(struct udevice *dev) int dwmci_probe(struct udevice *dev)
{ {
struct mmc *mmc = mmc_get_mmc_dev(dev); struct mmc *mmc = mmc_get_mmc_dev(dev);
@ -491,7 +491,7 @@ void dwmci_setup_cfg(struct mmc_config *cfg, struct dwmci_host *host,
u32 max_clk, u32 min_clk) u32 max_clk, u32 min_clk)
{ {
cfg->name = host->name; cfg->name = host->name;
#ifndef CONFIG_DM_MMC_OPS #ifndef CONFIG_DM_MMC
cfg->ops = &dwmci_ops; cfg->ops = &dwmci_ops;
#endif #endif
cfg->f_min = min_clk; cfg->f_min = min_clk;

@ -726,7 +726,7 @@ static int esdhc_reset(struct fsl_esdhc *regs)
return 0; return 0;
} }
#if !CONFIG_IS_ENABLED(DM_MMC_OPS) #if !CONFIG_IS_ENABLED(DM_MMC)
static int esdhc_getcd(struct mmc *mmc) static int esdhc_getcd(struct mmc *mmc)
{ {
struct fsl_esdhc_priv *priv = mmc->priv; struct fsl_esdhc_priv *priv = mmc->priv;
@ -820,7 +820,7 @@ static int fsl_esdhc_init(struct fsl_esdhc_priv *priv,
voltage_caps |= MMC_VDD_32_33 | MMC_VDD_33_34; voltage_caps |= MMC_VDD_32_33 | MMC_VDD_33_34;
cfg->name = "FSL_SDHC"; cfg->name = "FSL_SDHC";
#if !CONFIG_IS_ENABLED(DM_MMC_OPS) #if !CONFIG_IS_ENABLED(DM_MMC)
cfg->ops = &esdhc_ops; cfg->ops = &esdhc_ops;
#endif #endif
#ifdef CONFIG_SYS_SD_VOLTAGE #ifdef CONFIG_SYS_SD_VOLTAGE
@ -1127,7 +1127,7 @@ static int fsl_esdhc_probe(struct udevice *dev)
return esdhc_init_common(priv, mmc); return esdhc_init_common(priv, mmc);
} }
#if CONFIG_IS_ENABLED(DM_MMC_OPS) #if CONFIG_IS_ENABLED(DM_MMC)
static int fsl_esdhc_get_cd(struct udevice *dev) static int fsl_esdhc_get_cd(struct udevice *dev)
{ {
struct fsl_esdhc_priv *priv = dev_get_priv(dev); struct fsl_esdhc_priv *priv = dev_get_priv(dev);
@ -1184,9 +1184,7 @@ U_BOOT_DRIVER(fsl_esdhc) = {
.name = "fsl-esdhc-mmc", .name = "fsl-esdhc-mmc",
.id = UCLASS_MMC, .id = UCLASS_MMC,
.of_match = fsl_esdhc_ids, .of_match = fsl_esdhc_ids,
#if CONFIG_IS_ENABLED(DM_MMC_OPS)
.ops = &fsl_esdhc_ops, .ops = &fsl_esdhc_ops,
#endif
#if CONFIG_IS_ENABLED(BLK) #if CONFIG_IS_ENABLED(BLK)
.bind = fsl_esdhc_bind, .bind = fsl_esdhc_bind,
#endif #endif

@ -15,7 +15,6 @@
DECLARE_GLOBAL_DATA_PTR; DECLARE_GLOBAL_DATA_PTR;
#if CONFIG_IS_ENABLED(DM_MMC_OPS)
int dm_mmc_send_cmd(struct udevice *dev, struct mmc_cmd *cmd, int dm_mmc_send_cmd(struct udevice *dev, struct mmc_cmd *cmd,
struct mmc_data *data) struct mmc_data *data)
{ {
@ -79,7 +78,6 @@ int mmc_getcd(struct mmc *mmc)
{ {
return dm_mmc_get_cd(mmc->dev); return dm_mmc_get_cd(mmc->dev);
} }
#endif
struct mmc *mmc_get_mmc_dev(struct udevice *dev) struct mmc *mmc_get_mmc_dev(struct udevice *dev)
{ {
@ -198,10 +196,8 @@ int mmc_bind(struct udevice *dev, struct mmc *mmc, const struct mmc_config *cfg)
struct udevice *bdev; struct udevice *bdev;
int ret, devnum = -1; int ret, devnum = -1;
#if CONFIG_IS_ENABLED(DM_MMC_OPS)
if (!mmc_get_ops(dev)) if (!mmc_get_ops(dev))
return -ENOSYS; return -ENOSYS;
#endif
#ifndef CONFIG_SPL_BUILD #ifndef CONFIG_SPL_BUILD
/* Use the fixed index with aliase node's index */ /* Use the fixed index with aliase node's index */
ret = dev_read_alias_seq(dev, &devnum); ret = dev_read_alias_seq(dev, &devnum);

@ -53,7 +53,7 @@ struct blk_desc *mmc_get_blk_desc(struct mmc *mmc)
} }
#endif #endif
#if !CONFIG_IS_ENABLED(DM_MMC_OPS) #if !CONFIG_IS_ENABLED(DM_MMC)
__weak int board_mmc_getwp(struct mmc *mmc) __weak int board_mmc_getwp(struct mmc *mmc)
{ {
return -1; return -1;
@ -149,7 +149,7 @@ void mmc_trace_state(struct mmc *mmc, struct mmc_cmd *cmd)
} }
#endif #endif
#if !CONFIG_IS_ENABLED(DM_MMC_OPS) #if !CONFIG_IS_ENABLED(DM_MMC)
int mmc_send_cmd(struct mmc *mmc, struct mmc_cmd *cmd, struct mmc_data *data) int mmc_send_cmd(struct mmc *mmc, struct mmc_cmd *cmd, struct mmc_data *data)
{ {
int ret; int ret;
@ -839,7 +839,7 @@ int mmc_hwpart_config(struct mmc *mmc,
return 0; return 0;
} }
#if !CONFIG_IS_ENABLED(DM_MMC_OPS) #if !CONFIG_IS_ENABLED(DM_MMC)
int mmc_getcd(struct mmc *mmc) int mmc_getcd(struct mmc *mmc)
{ {
int cd; int cd;
@ -1075,7 +1075,7 @@ static const u8 multipliers[] = {
80, 80,
}; };
#if !CONFIG_IS_ENABLED(DM_MMC_OPS) #if !CONFIG_IS_ENABLED(DM_MMC)
static void mmc_set_ios(struct mmc *mmc) static void mmc_set_ios(struct mmc *mmc)
{ {
if (mmc->cfg->ops->set_ios) if (mmc->cfg->ops->set_ios)
@ -1652,7 +1652,7 @@ int mmc_start_init(struct mmc *mmc)
/* we pretend there's no card when init is NULL */ /* we pretend there's no card when init is NULL */
no_card = mmc_getcd(mmc) == 0; no_card = mmc_getcd(mmc) == 0;
#if !CONFIG_IS_ENABLED(DM_MMC_OPS) #if !CONFIG_IS_ENABLED(DM_MMC)
no_card = no_card || (mmc->cfg->ops->init == NULL); no_card = no_card || (mmc->cfg->ops->init == NULL);
#endif #endif
if (no_card) { if (no_card) {
@ -1673,7 +1673,7 @@ int mmc_start_init(struct mmc *mmc)
if (err) if (err)
return err; return err;
#if CONFIG_IS_ENABLED(DM_MMC_OPS) #if CONFIG_IS_ENABLED(DM_MMC)
/* The device has already been probed ready for use */ /* The device has already been probed ready for use */
#else #else
/* made sure it's not NULL earlier */ /* made sure it's not NULL earlier */

@ -150,7 +150,7 @@ struct mmc *mmc_create(const struct mmc_config *cfg, void *priv)
cfg->f_max == 0 || cfg->b_max == 0) cfg->f_max == 0 || cfg->b_max == 0)
return NULL; return NULL;
#if !CONFIG_IS_ENABLED(DM_MMC_OPS) #if !CONFIG_IS_ENABLED(DM_MMC)
if (cfg->ops == NULL || cfg->ops->send_cmd == NULL) if (cfg->ops == NULL || cfg->ops->send_cmd == NULL)
return NULL; return NULL;
#endif #endif

@ -134,7 +134,7 @@ static int sdhci_transfer_data(struct sdhci_host *host, struct mmc_data *data,
#define SDHCI_CMD_DEFAULT_TIMEOUT 100 #define SDHCI_CMD_DEFAULT_TIMEOUT 100
#define SDHCI_READ_STATUS_TIMEOUT 1000 #define SDHCI_READ_STATUS_TIMEOUT 1000
#ifdef CONFIG_DM_MMC_OPS #ifdef CONFIG_DM_MMC
static int sdhci_send_command(struct udevice *dev, struct mmc_cmd *cmd, static int sdhci_send_command(struct udevice *dev, struct mmc_cmd *cmd,
struct mmc_data *data) struct mmc_data *data)
{ {
@ -422,7 +422,7 @@ static void sdhci_set_power(struct sdhci_host *host, unsigned short power)
sdhci_writeb(host, pwr, SDHCI_POWER_CONTROL); sdhci_writeb(host, pwr, SDHCI_POWER_CONTROL);
} }
#ifdef CONFIG_DM_MMC_OPS #ifdef CONFIG_DM_MMC
static int sdhci_set_ios(struct udevice *dev) static int sdhci_set_ios(struct udevice *dev)
{ {
struct mmc *mmc = mmc_get_mmc_dev(dev); struct mmc *mmc = mmc_get_mmc_dev(dev);
@ -502,7 +502,7 @@ static int sdhci_init(struct mmc *mmc)
return 0; return 0;
} }
#ifdef CONFIG_DM_MMC_OPS #ifdef CONFIG_DM_MMC
int sdhci_probe(struct udevice *dev) int sdhci_probe(struct udevice *dev)
{ {
struct mmc *mmc = mmc_get_mmc_dev(dev); struct mmc *mmc = mmc_get_mmc_dev(dev);
@ -543,7 +543,7 @@ int sdhci_setup_cfg(struct mmc_config *cfg, struct sdhci_host *host,
host->version = sdhci_readw(host, SDHCI_HOST_VERSION); host->version = sdhci_readw(host, SDHCI_HOST_VERSION);
cfg->name = host->name; cfg->name = host->name;
#ifndef CONFIG_DM_MMC_OPS #ifndef CONFIG_DM_MMC
cfg->ops = &sdhci_ops; cfg->ops = &sdhci_ops;
#endif #endif

@ -282,7 +282,6 @@
*/ */
#ifdef CONFIG_SPL_BUILD #ifdef CONFIG_SPL_BUILD
#undef CONFIG_DM_MMC #undef CONFIG_DM_MMC
#undef CONFIG_DM_MMC_OPS
#undef CONFIG_TIMER #undef CONFIG_TIMER
#undef CONFIG_DM_USB #undef CONFIG_DM_USB
#endif #endif

@ -256,7 +256,6 @@
*/ */
#ifdef CONFIG_SPL_BUILD #ifdef CONFIG_SPL_BUILD
#undef CONFIG_DM_MMC #undef CONFIG_DM_MMC
#undef CONFIG_DM_MMC_OPS
#undef CONFIG_TIMER #undef CONFIG_TIMER
#endif #endif

@ -183,7 +183,6 @@
*/ */
#ifdef CONFIG_SPL_BUILD #ifdef CONFIG_SPL_BUILD
#undef CONFIG_DM_MMC #undef CONFIG_DM_MMC
#undef CONFIG_DM_MMC_OPS
#undef CONFIG_TIMER #undef CONFIG_TIMER
#undef CONFIG_DM_USB #undef CONFIG_DM_USB
#endif #endif

@ -23,7 +23,6 @@
* DM support in SPL * DM support in SPL
*/ */
#undef CONFIG_DM_MMC #undef CONFIG_DM_MMC
#undef CONFIG_DM_MMC_OPS
#undef OMAP_HSMMC_USE_GPIO #undef OMAP_HSMMC_USE_GPIO
/* select serial console configuration for SPL */ /* select serial console configuration for SPL */

@ -291,7 +291,7 @@ int dwmci_bind(struct udevice *dev, struct mmc *mmc, struct mmc_config *cfg);
int add_dwmci(struct dwmci_host *host, u32 max_clk, u32 min_clk); int add_dwmci(struct dwmci_host *host, u32 max_clk, u32 min_clk);
#endif /* !CONFIG_BLK */ #endif /* !CONFIG_BLK */
#ifdef CONFIG_DM_MMC_OPS #ifdef CONFIG_DM_MMC
/* Export the operations to drivers */ /* Export the operations to drivers */
int dwmci_probe(struct udevice *dev); int dwmci_probe(struct udevice *dev);
extern const struct dm_mmc_ops dm_dwmci_ops; extern const struct dm_mmc_ops dm_dwmci_ops;

@ -321,7 +321,7 @@ struct mmc_data {
/* forward decl. */ /* forward decl. */
struct mmc; struct mmc;
#if CONFIG_IS_ENABLED(DM_MMC_OPS) #if CONFIG_IS_ENABLED(DM_MMC)
struct dm_mmc_ops { struct dm_mmc_ops {
/** /**
* send_cmd() - Send a command to the MMC device * send_cmd() - Send a command to the MMC device
@ -385,7 +385,7 @@ struct mmc_ops {
struct mmc_config { struct mmc_config {
const char *name; const char *name;
#if !CONFIG_IS_ENABLED(DM_MMC_OPS) #if !CONFIG_IS_ENABLED(DM_MMC)
const struct mmc_ops *ops; const struct mmc_ops *ops;
#endif #endif
uint host_caps; uint host_caps;
@ -519,7 +519,7 @@ int mmc_switch_part(struct mmc *mmc, unsigned int part_num);
int mmc_hwpart_config(struct mmc *mmc, const struct mmc_hwpart_conf *conf, int mmc_hwpart_config(struct mmc *mmc, const struct mmc_hwpart_conf *conf,
enum mmc_hwpart_conf_mode mode); enum mmc_hwpart_conf_mode mode);
#if !CONFIG_IS_ENABLED(DM_MMC_OPS) #if !CONFIG_IS_ENABLED(DM_MMC)
int mmc_getcd(struct mmc *mmc); int mmc_getcd(struct mmc *mmc);
int board_mmc_getcd(struct mmc *mmc); int board_mmc_getcd(struct mmc *mmc);
int mmc_getwp(struct mmc *mmc); int mmc_getwp(struct mmc *mmc);

@ -410,7 +410,7 @@ int sdhci_bind(struct udevice *dev, struct mmc *mmc, struct mmc_config *cfg);
int add_sdhci(struct sdhci_host *host, u32 f_max, u32 f_min); int add_sdhci(struct sdhci_host *host, u32 f_max, u32 f_min);
#endif /* !CONFIG_BLK */ #endif /* !CONFIG_BLK */
#ifdef CONFIG_DM_MMC_OPS #ifdef CONFIG_DM_MMC
/* Export the operations to drivers */ /* Export the operations to drivers */
int sdhci_probe(struct udevice *dev); int sdhci_probe(struct udevice *dev);
extern const struct dm_mmc_ops sdhci_ops; extern const struct dm_mmc_ops sdhci_ops;

Loading…
Cancel
Save