diff options
-rw-r--r-- | os/hal/ports/STM32/LLD/sdc_lld.c | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/os/hal/ports/STM32/LLD/sdc_lld.c b/os/hal/ports/STM32/LLD/sdc_lld.c index a923b498c..3e53b2b0f 100644 --- a/os/hal/ports/STM32/LLD/sdc_lld.c +++ b/os/hal/ports/STM32/LLD/sdc_lld.c @@ -22,10 +22,6 @@ * @{
*/
-/*
- TODO: Try preerase blocks before writing (ACMD23).
- */
-
#include <string.h>
#include "hal.h"
@@ -61,6 +57,15 @@ static union { } u;
#endif /* STM32_SDC_SDIO_UNALIGNED_SUPPORT */
+
+/**
+ * @brief SDIO default configuration.
+ */
+static const SDCConfig sdc_default_cfg = {
+ NULL,
+ SDC_MODE_4BIT
+};
+
/*===========================================================================*/
/* Driver local functions. */
/*===========================================================================*/
@@ -407,6 +412,11 @@ void sdc_lld_init(void) { */
void sdc_lld_start(SDCDriver *sdcp) {
+ /* Checking configuration, using a default if NULL has been passed.*/
+ if (sdcp->config == NULL) {
+ sdcp->config = &sdc_default_cfg;
+ }
+
sdcp->dmamode = STM32_DMA_CR_CHSEL(DMA_CHANNEL) |
STM32_DMA_CR_PL(STM32_SDC_SDIO_DMA_PRIORITY) |
STM32_DMA_CR_PSIZE_WORD |
|