[PATCH v2 01/11] mmc: fsl_esdhc_imx: make BLK as hard requirement of DM_MMC
Jaehoon Chung
jh80.chung at samsung.com
Mon Nov 15 09:35:29 CET 2021
On 11/13/21 4:15 AM, Sean Anderson wrote:
> [ fsl_esdhc commit 41dec2fe99512e941261594f522b2e7d485c314b ]
>
> U-boot prefers DM_MMC + BLK for MMC. Now eSDHC driver has already
> support it, so let's force to use it.
>
> - Drop non-BLK support for DM_MMC introduced by below patch.
> 66fa035 mmc: fsl_esdhc: fix probe issue without CONFIG_BLK enabled
>
> - Support only DM_MMC + BLK (assuming BLK is always enabled for DM_MMC).
>
> - Use DM_MMC instead of BLK for conditional compile.
>
> Signed-off-by: Yangbo Lu <yangbo.lu at nxp.com>
> Signed-off-by: Sean Anderson <sean.anderson at seco.com>
Reviewed-by: Jaehoon Chung <jh80.chung at samsung.com>
Best Regards,
Jaehoon Chung
> ---
>
> (no changes since v1)
>
> drivers/mmc/Kconfig | 2 ++
> drivers/mmc/fsl_esdhc_imx.c | 33 +--------------------------------
> 2 files changed, 3 insertions(+), 32 deletions(-)
>
> diff --git a/drivers/mmc/Kconfig b/drivers/mmc/Kconfig
> index 1569e8c44a..313244682a 100644
> --- a/drivers/mmc/Kconfig
> +++ b/drivers/mmc/Kconfig
> @@ -790,6 +790,7 @@ endif
>
> config FSL_ESDHC
> bool "Freescale/NXP eSDHC controller support"
> + depends on BLK
> help
> This selects support for the eSDHC (Enhanced Secure Digital Host
> Controller) found on numerous Freescale/NXP SoCs.
> @@ -826,6 +827,7 @@ config FSL_ESDHC_VS33_NOT_SUPPORT
>
> config FSL_ESDHC_IMX
> bool "Freescale/NXP i.MX eSDHC controller support"
> + depends on BLK
> help
> This selects support for the i.MX eSDHC (Enhanced Secure Digital Host
> Controller) found on numerous Freescale/NXP SoCs.
> diff --git a/drivers/mmc/fsl_esdhc_imx.c b/drivers/mmc/fsl_esdhc_imx.c
> index aabf39535f..0a7f7e61cb 100644
> --- a/drivers/mmc/fsl_esdhc_imx.c
> +++ b/drivers/mmc/fsl_esdhc_imx.c
> @@ -39,10 +39,6 @@
> #include <dm/ofnode.h>
> #include <linux/iopoll.h>
>
> -#if !CONFIG_IS_ENABLED(BLK)
> -#include "mmc_private.h"
> -#endif
> -
> #ifndef ESDHCI_QUIRK_BROKEN_TIMEOUT_VALUE
> #ifdef CONFIG_FSL_USDHC
> #define ESDHCI_QUIRK_BROKEN_TIMEOUT_VALUE 1
> @@ -58,7 +54,6 @@ 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 */
> @@ -157,7 +152,7 @@ struct fsl_esdhc_priv {
> unsigned int clock;
> unsigned int mode;
> unsigned int bus_width;
> -#if !CONFIG_IS_ENABLED(BLK)
> +#if !CONFIG_IS_ENABLED(DM_MMC)
> struct mmc *mmc;
> #endif
> struct udevice *dev;
> @@ -1506,9 +1501,6 @@ static int fsl_esdhc_probe(struct udevice *dev)
> struct esdhc_soc_data *data =
> (struct esdhc_soc_data *)dev_get_driver_data(dev);
> struct mmc *mmc;
> -#if !CONFIG_IS_ENABLED(BLK)
> - struct blk_desc *bdesc;
> -#endif
> int ret;
>
> #if CONFIG_IS_ENABLED(OF_PLATDATA)
> @@ -1607,25 +1599,6 @@ 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;
>
> @@ -1730,14 +1703,12 @@ static const struct udevice_id fsl_esdhc_ids[] = {
> { /* sentinel */ }
> };
>
> -#if CONFIG_IS_ENABLED(BLK)
> static int fsl_esdhc_bind(struct udevice *dev)
> {
> struct fsl_esdhc_plat *plat = dev_get_plat(dev);
>
> return mmc_bind(dev, &plat->mmc, &plat->cfg);
> }
> -#endif
>
> U_BOOT_DRIVER(fsl_esdhc) = {
> .name = "fsl_esdhc",
> @@ -1745,9 +1716,7 @@ U_BOOT_DRIVER(fsl_esdhc) = {
> .of_match = fsl_esdhc_ids,
> .of_to_plat = fsl_esdhc_of_to_plat,
> .ops = &fsl_esdhc_ops,
> -#if CONFIG_IS_ENABLED(BLK)
> .bind = fsl_esdhc_bind,
> -#endif
> .probe = fsl_esdhc_probe,
> .plat_auto = sizeof(struct fsl_esdhc_plat),
> .priv_auto = sizeof(struct fsl_esdhc_priv),
>
More information about the U-Boot
mailing list