diff options
author | Yangbo Lu <yangbo.lu@nxp.com> | 2020-09-01 16:57:59 +0800 |
---|---|---|
committer | Peng Fan <peng.fan@nxp.com> | 2020-10-12 15:45:39 +0800 |
commit | 390f9bddb9c84f75649024b41b8cf2a766379ce0 (patch) | |
tree | 53bf31a4cf9cbcb2cc76f8a444d699311dce3563 /drivers/mmc/mmc-uclass.c | |
parent | 726561a9412abe50875b7791feab94f411d76199 (diff) | |
download | u-boot-390f9bddb9c84f75649024b41b8cf2a766379ce0.tar.gz |
mmc: add a reinit() API
For DM_MMC, the controller re-initialization is needed to
clear old configuration for mmc rescan.
Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
Reviewed-by: Jaehoon Chung <jh80.chung@samsung.com>
Diffstat (limited to 'drivers/mmc/mmc-uclass.c')
-rw-r--r-- | drivers/mmc/mmc-uclass.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/drivers/mmc/mmc-uclass.c b/drivers/mmc/mmc-uclass.c index 90690c8d1e..b90e1ee30d 100644 --- a/drivers/mmc/mmc-uclass.c +++ b/drivers/mmc/mmc-uclass.c @@ -171,6 +171,21 @@ int mmc_deferred_probe(struct mmc *mmc) return dm_mmc_deferred_probe(mmc->dev); } +int dm_mmc_reinit(struct udevice *dev) +{ + struct dm_mmc_ops *ops = mmc_get_ops(dev); + + if (ops->reinit) + return ops->reinit(dev); + + return 0; +} + +int mmc_reinit(struct mmc *mmc) +{ + return dm_mmc_reinit(mmc->dev); +} + int mmc_of_parse(struct udevice *dev, struct mmc_config *cfg) { int val; |