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,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…
	
		Reference in New Issue