mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-24 21:54:01 +00:00
mmc: fsl_esdhc: fix probe issue without CONFIG_BLK enabled
u-boot is trying to make CONFIG_BLK as a hard requirement for DM_MMC. But now it's still not. config BLK bool "Support block devices" depends on DM default y if DM_MMC When fsl_esdhc driver was reworked for DM_MMC support, DM_MMC without CONFIG_BLK enabled wasn't considered. This patch is to fix probe issue without CONFIG_BLK enabled. Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com> Signed-off-by: Yinbo Zhu <yinbo.zhu@nxp.com> Reviewed-by: Prabhakar Kushwaha <prabhakar.kushwaha@nxp.com>
This commit is contained in:
parent
087bfe67ac
commit
66fa035b55
1 changed files with 29 additions and 0 deletions
|
@ -1,6 +1,7 @@
|
|||
// SPDX-License-Identifier: GPL-2.0+
|
||||
/*
|
||||
* Copyright 2007, 2010-2011 Freescale Semiconductor, Inc
|
||||
* Copyright 2019 NXP Semiconductors
|
||||
* Andy Fleming
|
||||
*
|
||||
* Based vaguely on the pxa mmc code:
|
||||
|
@ -25,6 +26,10 @@
|
|||
#include <asm-generic/gpio.h>
|
||||
#include <dm/pinctrl.h>
|
||||
|
||||
#if !CONFIG_IS_ENABLED(BLK)
|
||||
#include "mmc_private.h"
|
||||
#endif
|
||||
|
||||
DECLARE_GLOBAL_DATA_PTR;
|
||||
|
||||
#define SDHCI_IRQ_EN_BITS (IRQSTATEN_CC | IRQSTATEN_TC | \
|
||||
|
@ -34,6 +39,7 @@ DECLARE_GLOBAL_DATA_PTR;
|
|||
IRQSTATEN_DEBE | IRQSTATEN_BRR | IRQSTATEN_BWR | \
|
||||
IRQSTATEN_DINT)
|
||||
#define MAX_TUNING_LOOP 40
|
||||
#define ESDHC_DRIVER_STAGE_VALUE 0xffffffff
|
||||
|
||||
struct fsl_esdhc {
|
||||
uint dsaddr; /* SDMA system address register */
|
||||
|
@ -1457,6 +1463,9 @@ static int fsl_esdhc_probe(struct udevice *dev)
|
|||
fdt_addr_t addr;
|
||||
unsigned int val;
|
||||
struct mmc *mmc;
|
||||
#if !CONFIG_IS_ENABLED(BLK)
|
||||
struct blk_desc *bdesc;
|
||||
#endif
|
||||
int ret;
|
||||
|
||||
addr = dev_read_addr(dev);
|
||||
|
@ -1593,6 +1602,26 @@ static int fsl_esdhc_probe(struct udevice *dev)
|
|||
mmc = &plat->mmc;
|
||||
mmc->cfg = &plat->cfg;
|
||||
mmc->dev = dev;
|
||||
#if !CONFIG_IS_ENABLED(BLK)
|
||||
mmc->priv = priv;
|
||||
|
||||
/* Setup dsr related values */
|
||||
mmc->dsr_imp = 0;
|
||||
mmc->dsr = ESDHC_DRIVER_STAGE_VALUE;
|
||||
/* Setup the universal parts of the block interface just once */
|
||||
bdesc = mmc_get_blk_desc(mmc);
|
||||
bdesc->if_type = IF_TYPE_MMC;
|
||||
bdesc->removable = 1;
|
||||
bdesc->devnum = mmc_get_next_devnum();
|
||||
bdesc->block_read = mmc_bread;
|
||||
bdesc->block_write = mmc_bwrite;
|
||||
bdesc->block_erase = mmc_berase;
|
||||
|
||||
/* setup initial part type */
|
||||
bdesc->part_type = mmc->cfg->part_type;
|
||||
mmc_list_add(mmc);
|
||||
#endif
|
||||
|
||||
upriv->mmc = mmc;
|
||||
|
||||
return esdhc_init_common(priv, mmc);
|
||||
|
|
Loading…
Reference in a new issue