summaryrefslogtreecommitdiff
path: root/nuttx/drivers/mmcsd/Kconfig
diff options
context:
space:
mode:
authorGregory Nutt <gnutt@nuttx.org>2015-01-08 06:23:42 -0600
committerGregory Nutt <gnutt@nuttx.org>2015-01-08 06:23:42 -0600
commit3cfb3001c68d449f0b59586bca112bf5a2e226fa (patch)
tree6b44391374480c4fd0210992945de74f35b85e64 /nuttx/drivers/mmcsd/Kconfig
parent982650a1b30076732fee025a63ec151fc0f3dcb1 (diff)
downloadnuttx-3cfb3001c68d449f0b59586bca112bf5a2e226fa.tar.gz
nuttx-3cfb3001c68d449f0b59586bca112bf5a2e226fa.tar.bz2
nuttx-3cfb3001c68d449f0b59586bca112bf5a2e226fa.zip
MMCSD SDIO: Add support for a new SDWAIT_WRCOMPLETE condition. The previous logic used a busy-wait loop to pool the card R1 start to determine when the card was ready for the next transfer. That busy-wait can be quite long -- hundreds of milliseconds. And alternative is to look the the SD D0 pin which will change state when the card is no longer busy.
This logic implements a change the avoids the busy-wait poll by reconfiguring the SD D0 pin as a GPIO interrupt, then waiting for the card to becom ready without taking up CPU cycles. This change is conditioned on CONFIG_MMCSD_SDIOWATI_WRCOMPLETE and is currenlty only implemented for the STM32 SDIO driver. From David Sidrane
Diffstat (limited to 'nuttx/drivers/mmcsd/Kconfig')
-rwxr-xr-x[-rw-r--r--]nuttx/drivers/mmcsd/Kconfig17
1 files changed, 17 insertions, 0 deletions
diff --git a/nuttx/drivers/mmcsd/Kconfig b/nuttx/drivers/mmcsd/Kconfig
index 4949cee1f..f78232ebb 100644..100755
--- a/nuttx/drivers/mmcsd/Kconfig
+++ b/nuttx/drivers/mmcsd/Kconfig
@@ -38,6 +38,23 @@ config MMCSD_HAVECARDDETECT
SDIO driver card detection is
100% accurate
+config MMCSD_SDIOWAIT_WRCOMPLETE
+ bool "Use SDIO_D Busy to detect Write Complete"
+ default n
+ ---help---
+ SDIO driver will use SDIO_D Busy signalling to detect Write Complete.
+ This option when selected, will enable the MMCSD driver to use the
+ underlying (stm32_sdio only) drivers implementation of the SD specs
+ SDIO_D Busy signalling to detect Write Complete. This will avoid
+ potentially very long (600Ms+) busy waiting in the MMCSD driver.
+
+ To implement SDIO_D Busy signalling, the underlying driver must
+ be capable of switching the GPIO_SDIO_D0 to be a rising edge sensitive
+ interrupt pin. It must then, condition that pin to detect the rising edge
+ on receipt of SDWAIT_WRCOMPLETE in the SDIO_WAITENABLE call and
+ return it back to regular SDIO mode, when either the ISR fires or pin is
+ found to be high in the SDIO_EVENTWAIT call.
+
config MMCSD_SPI
bool "MMC/SD SPI transfer support"
default y