Additional patches from Petteri Aimonen for FAT, STM32 SPI, and AT25

git-svn-id: http://svn.code.sf.net/p/nuttx/code/trunk@5593 42af7a65-404d-4744-a932-0658087f49c3
This commit is contained in:
patacongo
2013-02-01 15:32:39 +00:00
parent 04a4ef84f0
commit a6d4497461
9 changed files with 97 additions and 31 deletions
+7 -3
View File
@@ -1,7 +1,7 @@
/****************************************************************************
* drivers/mmcsd/mmcsd_spi.c
*
* Copyright (C) 2008-2010, 2011-2012 Gregory Nutt. All rights reserved.
* Copyright (C) 2008-2010, 2011-2013 Gregory Nutt. All rights reserved.
* Author: Gregory Nutt <gnutt@nuttx.org>
*
* Redistribution and use in source and binary forms, with or without
@@ -409,10 +409,14 @@ static uint32_t mmcsd_sendcmd(FAR struct mmcsd_slot_s *slot,
int ret;
int i;
/* Wait until the card is not busy */
/* Wait until the card is not busy. Some SD cards will not enter the IDLE
* state until CMD0 is sent for the first time, switching the card to SPI
* mode. Having a pull-up resistor on MISO may avoid this problem, but
* this check makes it work also without the pull-up.
*/
ret = mmcsd_waitready(slot);
if (ret != OK)
if (ret != OK && cmd != &g_cmd0)
{
return ret;
}
+9 -7
View File
@@ -691,14 +691,16 @@ FAR struct mtd_dev_s *at25_initialize(FAR struct spi_dev_s *dev)
kfree(priv);
priv = NULL;
}
/* Unprotect all sectors */
else
{
/* Unprotect all sectors */
at25_writeenable(priv);
SPI_SELECT(priv->dev, SPIDEV_FLASH, true);
(void)SPI_SEND(priv->dev, AT25_WRSR);
(void)SPI_SEND(priv->dev, AT25_SR_UNPROT);
SPI_SELECT(priv->dev, SPIDEV_FLASH, false);
at25_writeenable(priv);
SPI_SELECT(priv->dev, SPIDEV_FLASH, true);
(void)SPI_SEND(priv->dev, AT25_WRSR);
(void)SPI_SEND(priv->dev, AT25_SR_UNPROT);
SPI_SELECT(priv->dev, SPIDEV_FLASH, false);
}
}
/* Return the implementation-specific state structure as the MTD device */