diff options
author | patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> | 2009-11-18 23:12:23 +0000 |
---|---|---|
committer | patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> | 2009-11-18 23:12:23 +0000 |
commit | 64369191be1b7b07bf257020b93e55c02c3f28ac (patch) | |
tree | 1770a8669d3c89e475c363a642a8fd9e10aba07b /nuttx/drivers/mmcsd | |
parent | bd877246167febc5e567036e54961a87199f2084 (diff) | |
download | px4-nuttx-64369191be1b7b07bf257020b93e55c02c3f28ac.tar.gz px4-nuttx-64369191be1b7b07bf257020b93e55c02c3f28ac.tar.bz2 px4-nuttx-64369191be1b7b07bf257020b93e55c02c3f28ac.zip |
Correct identifies v1.x SD card
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2273 42af7a65-404d-4744-a932-0658087f49c3
Diffstat (limited to 'nuttx/drivers/mmcsd')
-rw-r--r-- | nuttx/drivers/mmcsd/mmcsd_sdio.c | 19 |
1 files changed, 4 insertions, 15 deletions
diff --git a/nuttx/drivers/mmcsd/mmcsd_sdio.c b/nuttx/drivers/mmcsd/mmcsd_sdio.c index 293dcfd14..3e8d4262b 100644 --- a/nuttx/drivers/mmcsd/mmcsd_sdio.c +++ b/nuttx/drivers/mmcsd/mmcsd_sdio.c @@ -84,12 +84,6 @@ #define IS_EMPTY(priv) (priv->type == MMCSD_CARDTYPE_UNKNOWN) -/* Transfer mode */ - -#define MMCSDMODE_POLLED 0 -#define MMCSDMODE_INTERRUPT 1 -#define MMCSDMODE_DMA 2 - /**************************************************************************** * Private Types ****************************************************************************/ @@ -355,6 +349,7 @@ static int mmcsd_recvR1(FAR struct mmcsd_state_s *priv, uint32 cmd) * indication for later use. */ + fvdbg("ERROR: R1=%08x\n", r1); priv->locked = ((r1 & MMCSD_R1_CARDISLOCKED) != 0); ret = -EIO; } @@ -2298,7 +2293,6 @@ static int mmcsd_cardidentify(FAR struct mmcsd_state_s *priv) /* Assume failure to identify the card */ priv->type = MMCSD_CARDTYPE_UNKNOWN; - priv->mode = MMCSDMODE_POLLED; /* Check if there is a card present in the slot. This is normally a matter is * of GPIO sensing. @@ -2310,11 +2304,6 @@ static int mmcsd_cardidentify(FAR struct mmcsd_state_s *priv) return -ENODEV; } - /* Initialize device state structure */ - - priv->type = MMCSD_CARDTYPE_SDV1; - priv->mode = MMCSDMODE_POLLED; - /* Set ID mode clocking (<400KHz) */ SDIO_CLOCK(priv->dev, CLOCK_IDMODE); @@ -2381,7 +2370,7 @@ static int mmcsd_cardidentify(FAR struct mmcsd_state_s *priv) if (priv->type != MMCSD_CARDTYPE_MMC) #endif { - /* Send CMD55 */ + /* Send CMD55 with argument = 0 */ mmcsd_sendcmdpoll(priv, SD_CMD55, 0); ret = mmcsd_recvR1(priv, SD_CMD55); @@ -2399,7 +2388,7 @@ static int mmcsd_cardidentify(FAR struct mmcsd_state_s *priv) /* Send ACMD41 */ mmcsd_sendcmdpoll(priv, SD_ACMD41, MMCSD_ACMD41_VOLTAGEWINDOW|sdcapacity); - ret = SDIO_RECVR3(priv->dev, SD_CMD55, &response); + ret = SDIO_RECVR3(priv->dev, SD_ACMD41, &response); if (ret != OK) { /* If the error is a timeout, then it is probably an MMC card, @@ -2582,7 +2571,7 @@ static int mmcsd_probe(FAR struct mmcsd_state_s *priv) ret = mmcsd_cardidentify(priv); if (ret != OK) { - fdbg("ERROR: Failed to initialize card: %d\n"); + fdbg("ERROR: Failed to initialize card: %d\n", ret); SDIO_CALLBACKENABLE(priv->dev, SDIOMEDIA_INSERTED); } else |