mmc-utils: Report HS400/HS533 support

HS400 is reported in CARD/DEVICE_TYPE EXT CSD field.
Before
Card Type [CARD_TYPE: 0x57]
 HS200 Single Data Rate eMMC @200MHz 1.8VI/O
 ...
After
Card Type [CARD_TYPE: 0x57]
 HS400 Double Data Rate eMMC @200MHz 1.8VI/O
 HS200 Single Data Rate eMMC @200MHz 1.8VI/O
 ...

BUG=chrome-os-partner:39595
TEST=Verify correct output.

Change-Id: I70f258f54d22b2700f9db735549959e5a9f58f6d
Signed-off-by: Gwendal Grignou <gwendal@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/267682
Reviewed-by: Puthikorn Voravootivat <puthik@chromium.org>
diff --git a/mmc_cmds.c b/mmc_cmds.c
index 5ec94c8..8eefba2 100644
--- a/mmc_cmds.c
+++ b/mmc_cmds.c
@@ -990,8 +990,14 @@
 			ext_csd[197]);
 
 	/* DEVICE_TYPE in A45, CARD_TYPE in A441 */
+	printf("Card Type [CARD_TYPE: 0x%02x - %02x]\n",
+	       ext_csd[196], ext_csd[195]);
+	reg = ext_csd[195];
+	if (reg & 0x02) printf(" HS533 Dual Data Rate eMMC @266MHz 1.2VI/O\n");
+	if (reg & 0x01) printf(" HS533 Dual Data Rate eMMC @266MHz 1.8VI/O\n");
 	reg = ext_csd[196];
-	printf("Card Type [CARD_TYPE: 0x%02x]\n", reg);
+	if (reg & 0x80) printf(" HS400 Dual Data Rate eMMC @200MHz 1.2VI/O\n");
+	if (reg & 0x40) printf(" HS400 Dual Data Rate eMMC @200MHz 1.8VI/O\n");
 	if (reg & 0x20) printf(" HS200 Single Data Rate eMMC @200MHz 1.2VI/O\n");
 	if (reg & 0x10) printf(" HS200 Single Data Rate eMMC @200MHz 1.8VI/O\n");
 	if (reg & 0x08) printf(" HS Dual Data Rate eMMC @52MHz 1.2VI/O\n");