[U-Boot] [PATCH v3 1/2] mmc: Board-specific MMC power initializations
Paul Kocialkowski
contact at paulk.fr
Sat Nov 1 11:52:17 CET 2014
Some devices may use non-standard combinations of regulators to power MMC:
this allows these devices to provide a board-specific MMC power init function
to set everything up in their own way.
Signed-off-by: Paul Kocialkowski <contact at paulk.fr>
---
drivers/mmc/mmc.c | 8 ++++++++
include/mmc.h | 1 +
2 files changed, 9 insertions(+)
diff --git a/drivers/mmc/mmc.c b/drivers/mmc/mmc.c
index 44a4feb..125f347 100644
--- a/drivers/mmc/mmc.c
+++ b/drivers/mmc/mmc.c
@@ -1277,6 +1277,12 @@ block_dev_desc_t *mmc_get_dev(int dev)
}
#endif
+/* board-specific MMC power initializations. */
+__weak int board_mmc_power_init(void)
+{
+ return -1;
+}
+
int mmc_start_init(struct mmc *mmc)
{
int err;
@@ -1293,6 +1299,8 @@ int mmc_start_init(struct mmc *mmc)
if (mmc->has_init)
return 0;
+ board_mmc_power_init();
+
/* made sure it's not NULL earlier */
err = mmc->cfg->ops->init(mmc);
diff --git a/include/mmc.h b/include/mmc.h
index d74a190..aaea644 100644
--- a/include/mmc.h
+++ b/include/mmc.h
@@ -385,6 +385,7 @@ struct mmc *mmc_spi_init(uint bus, uint cs, uint speed, uint mode);
int mmc_legacy_init(int verbose);
#endif
+int board_mmc_power_init(void);
int board_mmc_init(bd_t *bis);
int cpu_mmc_init(bd_t *bis);
int mmc_get_env_addr(struct mmc *mmc, int copy, u32 *env_addr);
--
1.9.1
More information about the U-Boot
mailing list