mmc: Add a function to dump the mmc capabilities
authorJean-Jacques Hiblot <jjhiblot@ti.com>
Thu, 21 Sep 2017 14:29:54 +0000 (16:29 +0200)
committerJaehoon Chung <jh80.chung@samsung.com>
Fri, 12 Jan 2018 09:11:03 +0000 (18:11 +0900)
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>
drivers/mmc/mmc.c
include/mmc.h

index 4bfc6bf441aef9255aa543225b389e8dac4522df..ae829143966af92fc4bcccbd231fa6b4ef69190c 100644 (file)
@@ -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;
index 76bd57ae4297c99fadad437789a04667e4817994..dd83f14b6cd3e8f9283a757d0b37df2d3aa3b8f2 100644 (file)
@@ -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