]> cloudbase.mooo.com Git - z180-stamp.git/blobdiff - avr/mmc.c
Don't expose mmc status flag 'STAT_FAST'. (Module private implemantation detail)
[z180-stamp.git] / avr / mmc.c
index 12f58f3020e47f5186f678595ef6601fc571ab7e..7c4da2451ec48370fb66e2538ead48909ed7e079 100644 (file)
--- a/avr/mmc.c
+++ b/avr/mmc.c
@@ -131,11 +131,12 @@ void deselect(BYTE drv)
        SPI_OFF();
 
        if (drv == 0) {
-#ifndef SD_CD_0
-               // SD_CS_0 = 1;
+#ifdef SD_CS_0_IN
+               SD_CS_0_DDR = 0;
+               SD_CS_0 = 0;
 #endif
        } else {
-#ifndef SD_CD_1
+#ifdef SD_CS_1_IN
                SD_CS_1_DDR = 0;
                SD_CS_1 = 0;
 #endif
@@ -151,10 +152,14 @@ static
 int select(BYTE drv)   /* 1:Successful, 0:Timeout */
 {
        //debug("*** enter select()\n");
-       if (drv == 0)
+       if (drv == 0) {
+#ifdef SD_CS_0_IN
+               SD_CS_0 = 1;
+               SD_CS_0_DDR = 1;
+#endif
                SD_CS_0 = 0;
-       else {
-#ifndef SD_CD_1
+       else {
+#ifdef SD_CS_1_IN
                SD_CS_1 = 1;
                SD_CS_1_DDR = 1;
 #endif
@@ -445,7 +450,7 @@ DSTATUS disk_initialize (
        if (drv >= MAX_DRV)
                return STA_NOINIT; /* Supports only single drive */
        if (socket[drv].stat & STA_NODISK)
-               return socket[drv].stat; /* No card in the socket */
+               return socket[drv].stat & STAT_MASK; /* No card in the socket */
 
        power_on(drv); /* Force socket power on */
        socket[drv].stat &= ~STA_FAST;
@@ -500,7 +505,7 @@ DSTATUS disk_initialize (
                power_off(drv);
        }
 
-       return socket[drv].stat;
+       return socket[drv].stat & STAT_MASK;
 }
 
 /*-----------------------------------------------------------------------*/
@@ -513,7 +518,7 @@ DSTATUS disk_status (
 {
        if (drv >= MAX_DRV)
                return STA_NOINIT;
-       return socket[drv].stat;
+       return socket[drv].stat & STAT_MASK;
 }
 
 /*-----------------------------------------------------------------------*/