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
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
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;
power_off(drv);
}
- return socket[drv].stat;
+ return socket[drv].stat & STAT_MASK;
}
/*-----------------------------------------------------------------------*/
{
if (drv >= MAX_DRV)
return STA_NOINIT;
- return socket[drv].stat;
+ return socket[drv].stat & STAT_MASK;
}
/*-----------------------------------------------------------------------*/