diff options
author | Jean-Jacques Hiblot <jjhiblot@ti.com> | 2017-09-21 16:29:54 +0200 |
---|---|---|
committer | Jaehoon Chung <jh80.chung@samsung.com> | 2018-01-12 18:11:03 +0900 |
commit | 4c9d2aaa7ea720ff8c304dd8621afa3ed085486e (patch) | |
tree | 5ab0d6691e9d7a49cdba312604baf4a92475b323 | |
parent | 35f9e196f9573af4091076c19aaa6d5afeb91338 (diff) | |
download | u-boot-4c9d2aaa7ea720ff8c304dd8621afa3ed085486e.tar.gz |
mmc: Add a function to dump the mmc capabilities
This adds a simple helper function to display information (bus width and
mode) based on a capability mask. Useful for debug.
Signed-off-by: Jean-Jacques Hiblot <jjhiblot@ti.com>
-rw-r--r-- | drivers/mmc/mmc.c | 24 | ||||
-rw-r--r-- | include/mmc.h | 1 |
2 files changed, 25 insertions, 0 deletions
diff --git a/drivers/mmc/mmc.c b/drivers/mmc/mmc.c index 4bfc6bf441..ae82914396 100644 --- a/drivers/mmc/mmc.c +++ b/drivers/mmc/mmc.c @@ -1136,6 +1136,30 @@ static void mmc_set_bus_width(struct mmc *mmc, uint width) mmc_set_ios(mmc); } +#if CONFIG_IS_ENABLED(MMC_VERBOSE) || defined(DEBUG) +/* + * helper function to display the capabilities in a human + * friendly manner. The capabilities include bus width and + * supported modes. + */ +void mmc_dump_capabilities(const char *text, uint caps) +{ + enum bus_mode mode; + + printf("%s: widths [", text); + if (caps & MMC_MODE_8BIT) + printf("8, "); + if (caps & MMC_MODE_4BIT) + printf("4, "); + printf("1] modes ["); + + for (mode = MMC_LEGACY; mode < MMC_MODES_END; mode++) + if (MMC_CAP(mode) & caps) + printf("%s, ", mmc_mode_name(mode)); + printf("\b\b]\n"); +} +#endif + static int sd_select_bus_freq_width(struct mmc *mmc) { int err; diff --git a/include/mmc.h b/include/mmc.h index 76bd57ae42..dd83f14b6c 100644 --- a/include/mmc.h +++ b/include/mmc.h @@ -426,6 +426,7 @@ enum bus_mode { }; const char *mmc_mode_name(enum bus_mode mode); +void mmc_dump_capabilities(const char *text, uint caps); /* * With CONFIG_DM_MMC enabled, struct mmc can be accessed from the MMC device |