libsdhcdrivers: Add CSD version macros To improve readability and to avoid future errors CSD version is now abstracted with macros.
diff --git a/libsdhcdrivers/src/mmc.c b/libsdhcdrivers/src/mmc.c index 98156ba..50f2789 100644 --- a/libsdhcdrivers/src/mmc.c +++ b/libsdhcdrivers/src/mmc.c
@@ -26,6 +26,9 @@ #define D(...) do{}while(0) #endif +#define CSD_VERSION_1 0 +#define CSD_VERSION_2_AND_3 1 + struct mmc_completion_token { struct mmc_card *card; mmc_cb cb; @@ -108,13 +111,13 @@ csd->structure = CSD_BITS(126, 2); - if (csd->structure == 0) { + if (csd->structure == CSD_VERSION_1) { printf("CSD Version 1.0\n"); csd->c_size = CSD_BITS(62, 12); csd->c_size_mult = CSD_BITS(47, 3); csd->read_bl_len = CSD_BITS(80, 4); csd->tran_speed = CSD_BITS(96, 8); - } else if (csd->structure == 1) { + } else if (csd->structure == CSD_VERSION_2_AND_3) { printf("CSD Version 2.0\n"); csd->c_size = CSD_BITS(48, 22); csd->c_size_mult = 0; @@ -543,10 +546,10 @@ return -1; } - if (csd.structure == 0) { + if (csd.structure == CSD_VERSION_1) { capacity = (csd.c_size + 1) * (1U << (csd.c_size_mult + 2)); capacity *= (1U << csd.read_bl_len); - } else if (csd.structure == 1) { + } else if (csd.structure == CSD_VERSION_2_AND_3) { capacity = (csd.c_size + 1) * 512 * 1024; } else { return -1;