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;