mirror of
https://github.com/Fishwaldo/u-boot.git
synced 2025-04-01 12:01:31 +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+
|
// SPDX-License-Identifier: GPL-2.0+
|
||||||
/*
|
/*
|
||||||
* Copyright 2007, 2010-2011 Freescale Semiconductor, Inc
|
* Copyright 2007, 2010-2011 Freescale Semiconductor, Inc
|
||||||
|
* Copyright 2019 NXP Semiconductors
|
||||||
* Andy Fleming
|
* Andy Fleming
|
||||||
*
|
*
|
||||||
* Based vaguely on the pxa mmc code:
|
* Based vaguely on the pxa mmc code:
|
||||||
|
@ -25,6 +26,10 @@
|
||||||
#include <asm-generic/gpio.h>
|
#include <asm-generic/gpio.h>
|
||||||
#include <dm/pinctrl.h>
|
#include <dm/pinctrl.h>
|
||||||
|
|
||||||
|
#if !CONFIG_IS_ENABLED(BLK)
|
||||||
|
#include "mmc_private.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
DECLARE_GLOBAL_DATA_PTR;
|
DECLARE_GLOBAL_DATA_PTR;
|
||||||
|
|
||||||
#define SDHCI_IRQ_EN_BITS (IRQSTATEN_CC | IRQSTATEN_TC | \
|
#define SDHCI_IRQ_EN_BITS (IRQSTATEN_CC | IRQSTATEN_TC | \
|
||||||
|
@ -34,6 +39,7 @@ DECLARE_GLOBAL_DATA_PTR;
|
||||||
IRQSTATEN_DEBE | IRQSTATEN_BRR | IRQSTATEN_BWR | \
|
IRQSTATEN_DEBE | IRQSTATEN_BRR | IRQSTATEN_BWR | \
|
||||||
IRQSTATEN_DINT)
|
IRQSTATEN_DINT)
|
||||||
#define MAX_TUNING_LOOP 40
|
#define MAX_TUNING_LOOP 40
|
||||||
|
#define ESDHC_DRIVER_STAGE_VALUE 0xffffffff
|
||||||
|
|
||||||
struct fsl_esdhc {
|
struct fsl_esdhc {
|
||||||
uint dsaddr; /* SDMA system address register */
|
uint dsaddr; /* SDMA system address register */
|
||||||
|
@ -1457,6 +1463,9 @@ static int fsl_esdhc_probe(struct udevice *dev)
|
||||||
fdt_addr_t addr;
|
fdt_addr_t addr;
|
||||||
unsigned int val;
|
unsigned int val;
|
||||||
struct mmc *mmc;
|
struct mmc *mmc;
|
||||||
|
#if !CONFIG_IS_ENABLED(BLK)
|
||||||
|
struct blk_desc *bdesc;
|
||||||
|
#endif
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
addr = dev_read_addr(dev);
|
addr = dev_read_addr(dev);
|
||||||
|
@ -1593,6 +1602,26 @@ static int fsl_esdhc_probe(struct udevice *dev)
|
||||||
mmc = &plat->mmc;
|
mmc = &plat->mmc;
|
||||||
mmc->cfg = &plat->cfg;
|
mmc->cfg = &plat->cfg;
|
||||||
mmc->dev = dev;
|
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;
|
upriv->mmc = mmc;
|
||||||
|
|
||||||
return esdhc_init_common(priv, mmc);
|
return esdhc_init_common(priv, mmc);
|
||||||
|
|
Loading…
Add table
Reference in a new issue