diff --git a/drivers/mmc/mmc.c b/drivers/mmc/mmc.c
index 72e8ce6..b704d8b 100644
--- a/drivers/mmc/mmc.c
+++ b/drivers/mmc/mmc.c
@@ -759,6 +759,8 @@ retry_scr:
 			break;
 		case 2:
 			mmc->version = SD_VERSION_2;
+			if ((mmc->scr[0] >> 15) & 0x1)
+				mmc->version = SD_VERSION_3;
 			break;
 		default:
 			mmc->version = SD_VERSION_1_0;
diff --git a/include/mmc.h b/include/mmc.h
index a13e2bd..7c8f325 100644
--- a/include/mmc.h
+++ b/include/mmc.h
@@ -30,6 +30,7 @@
 #include <linux/compiler.h>
 
 #define SD_VERSION_SD	0x20000
+#define SD_VERSION_3	(SD_VERSION_SD | 0x30)
 #define SD_VERSION_2	(SD_VERSION_SD | 0x20)
 #define SD_VERSION_1_0	(SD_VERSION_SD | 0x10)
 #define SD_VERSION_1_10	(SD_VERSION_SD | 0x1a)
