dm: mmc: Allow disabling driver model in SPL
At present if U-Boot proper uses driver model for MMC, then SPL has to also. While this is desirable, it places a significant barrier to moving to driver model in some cases. For example, with a space-constrained SPL it may be necessary to enable CONFIG_SPL_OF_PLATDATA which involves adjusting some drivers. Add new SPL versions of the options for DM_MMC, DM_MMC_OPS and BLK. By default these follow their non-SPL versions, but this can be changed by boards which need it. Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
committed by
Jaehoon Chung
parent
745a94f352
commit
c4d660d4d0
@@ -53,7 +53,7 @@ struct blk_desc *mmc_get_blk_desc(struct mmc *mmc)
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifndef CONFIG_DM_MMC_OPS
|
||||
#if !CONFIG_IS_ENABLED(DM_MMC_OPS)
|
||||
__weak int board_mmc_getwp(struct mmc *mmc)
|
||||
{
|
||||
return -1;
|
||||
@@ -149,7 +149,7 @@ void mmc_trace_state(struct mmc *mmc, struct mmc_cmd *cmd)
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifndef CONFIG_DM_MMC_OPS
|
||||
#if !CONFIG_IS_ENABLED(DM_MMC_OPS)
|
||||
int mmc_send_cmd(struct mmc *mmc, struct mmc_cmd *cmd, struct mmc_data *data)
|
||||
{
|
||||
int ret;
|
||||
@@ -261,14 +261,14 @@ static int mmc_read_blocks(struct mmc *mmc, void *dst, lbaint_t start,
|
||||
return blkcnt;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_BLK
|
||||
#if CONFIG_IS_ENABLED(BLK)
|
||||
ulong mmc_bread(struct udevice *dev, lbaint_t start, lbaint_t blkcnt, void *dst)
|
||||
#else
|
||||
ulong mmc_bread(struct blk_desc *block_dev, lbaint_t start, lbaint_t blkcnt,
|
||||
void *dst)
|
||||
#endif
|
||||
{
|
||||
#ifdef CONFIG_BLK
|
||||
#if CONFIG_IS_ENABLED(BLK)
|
||||
struct blk_desc *block_dev = dev_get_uclass_platdata(dev);
|
||||
#endif
|
||||
int dev_num = block_dev->devnum;
|
||||
@@ -839,7 +839,7 @@ int mmc_hwpart_config(struct mmc *mmc,
|
||||
return 0;
|
||||
}
|
||||
|
||||
#ifndef CONFIG_DM_MMC_OPS
|
||||
#if !CONFIG_IS_ENABLED(DM_MMC_OPS)
|
||||
int mmc_getcd(struct mmc *mmc)
|
||||
{
|
||||
int cd;
|
||||
@@ -1075,7 +1075,7 @@ static const u8 multipliers[] = {
|
||||
80,
|
||||
};
|
||||
|
||||
#ifndef CONFIG_DM_MMC_OPS
|
||||
#if !CONFIG_IS_ENABLED(DM_MMC_OPS)
|
||||
static void mmc_set_ios(struct mmc *mmc)
|
||||
{
|
||||
if (mmc->cfg->ops->set_ios)
|
||||
@@ -1608,7 +1608,7 @@ static int mmc_send_if_cond(struct mmc *mmc)
|
||||
return 0;
|
||||
}
|
||||
|
||||
#ifndef CONFIG_DM_MMC
|
||||
#if !CONFIG_IS_ENABLED(DM_MMC)
|
||||
/* board-specific MMC power initializations. */
|
||||
__weak void board_mmc_power_init(void)
|
||||
{
|
||||
@@ -1617,7 +1617,7 @@ __weak void board_mmc_power_init(void)
|
||||
|
||||
static int mmc_power_init(struct mmc *mmc)
|
||||
{
|
||||
#if defined(CONFIG_DM_MMC)
|
||||
#if CONFIG_IS_ENABLED(DM_MMC)
|
||||
#if defined(CONFIG_DM_REGULATOR) && !defined(CONFIG_SPL_BUILD)
|
||||
struct udevice *vmmc_supply;
|
||||
int ret;
|
||||
@@ -1652,7 +1652,7 @@ int mmc_start_init(struct mmc *mmc)
|
||||
|
||||
/* we pretend there's no card when init is NULL */
|
||||
no_card = mmc_getcd(mmc) == 0;
|
||||
#ifndef CONFIG_DM_MMC_OPS
|
||||
#if !CONFIG_IS_ENABLED(DM_MMC_OPS)
|
||||
no_card = no_card || (mmc->cfg->ops->init == NULL);
|
||||
#endif
|
||||
if (no_card) {
|
||||
@@ -1673,7 +1673,7 @@ int mmc_start_init(struct mmc *mmc)
|
||||
if (err)
|
||||
return err;
|
||||
|
||||
#ifdef CONFIG_DM_MMC_OPS
|
||||
#if CONFIG_IS_ENABLED(DM_MMC_OPS)
|
||||
/* The device has already been probed ready for use */
|
||||
#else
|
||||
/* made sure it's not NULL earlier */
|
||||
@@ -1739,7 +1739,7 @@ int mmc_init(struct mmc *mmc)
|
||||
{
|
||||
int err = 0;
|
||||
__maybe_unused unsigned start;
|
||||
#ifdef CONFIG_DM_MMC
|
||||
#if CONFIG_IS_ENABLED(DM_MMC)
|
||||
struct mmc_uclass_priv *upriv = dev_get_uclass_priv(mmc->dev);
|
||||
|
||||
upriv->mmc = mmc;
|
||||
@@ -1783,12 +1783,12 @@ void mmc_set_preinit(struct mmc *mmc, int preinit)
|
||||
mmc->preinit = preinit;
|
||||
}
|
||||
|
||||
#if defined(CONFIG_DM_MMC) && defined(CONFIG_SPL_BUILD)
|
||||
#if CONFIG_IS_ENABLED(DM_MMC) && defined(CONFIG_SPL_BUILD)
|
||||
static int mmc_probe(bd_t *bis)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
#elif defined(CONFIG_DM_MMC)
|
||||
#elif CONFIG_IS_ENABLED(DM_MMC)
|
||||
static int mmc_probe(bd_t *bis)
|
||||
{
|
||||
int ret, i;
|
||||
@@ -1835,7 +1835,7 @@ int mmc_initialize(bd_t *bis)
|
||||
return 0;
|
||||
initialized = 1;
|
||||
|
||||
#ifndef CONFIG_BLK
|
||||
#if !CONFIG_IS_ENABLED(BLK)
|
||||
#if !CONFIG_IS_ENABLED(MMC_TINY)
|
||||
mmc_list_init();
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user