From dd9cac5ffa29031b1175bb750e587a20362f5276 Mon Sep 17 00:00:00 2001 From: gdisirio Date: Sat, 30 Apr 2011 18:46:09 +0000 Subject: git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@2907 35acf78f-673a-0410-8e92-d51de3d6d3f4 --- os/hal/include/sdc.h | 2 ++ os/hal/platforms/STM32/sdc_lld.c | 6 ++++++ os/hal/src/sdc.c | 2 ++ testhal/STM32/SDIO/main.c | 1 + 4 files changed, 11 insertions(+) diff --git a/os/hal/include/sdc.h b/os/hal/include/sdc.h index d578e65b4..860bbbbda 100644 --- a/os/hal/include/sdc.h +++ b/os/hal/include/sdc.h @@ -35,6 +35,8 @@ /* Driver constants. */ /*===========================================================================*/ +#define SDC_CMD_GO_IDLE_STATE 0 + /*===========================================================================*/ /* Driver pre-compile time settings. */ /*===========================================================================*/ diff --git a/os/hal/platforms/STM32/sdc_lld.c b/os/hal/platforms/STM32/sdc_lld.c index 25c7b6897..8517a040d 100644 --- a/os/hal/platforms/STM32/sdc_lld.c +++ b/os/hal/platforms/STM32/sdc_lld.c @@ -194,6 +194,12 @@ void sdc_lld_set_bus_mode(SDCDriver *sdcp, sdcbusmode_t mode) { */ void sdc_lld_send_cmd_none(SDCDriver *sdcp, uint8_t cmd, uint32_t arg) { + (void)sdcp; + SDIO->ARG = arg; + SDIO->CMD = (uint32_t)cmd | SDIO_CMD_CPSMEN; + while ((SDIO->STA & SDIO_STA_CMDSENT) == 0) + ; + SDIO->ICR = 0xFFFFFFFF; } /** diff --git a/os/hal/src/sdc.c b/os/hal/src/sdc.c index 701071b8b..b64dcf9c5 100644 --- a/os/hal/src/sdc.c +++ b/os/hal/src/sdc.c @@ -137,6 +137,8 @@ bool_t sdcConnect(SDCDriver *sdcp) { sdc_lld_start_clk(sdcp); + sdc_lld_send_cmd_none(sdcp, SDC_CMD_GO_IDLE_STATE, 0); + sdcp->state = SDC_ACTIVE; return FALSE; } diff --git a/testhal/STM32/SDIO/main.c b/testhal/STM32/SDIO/main.c index 3194921f4..44a294655 100644 --- a/testhal/STM32/SDIO/main.c +++ b/testhal/STM32/SDIO/main.c @@ -47,6 +47,7 @@ int main(void) { * Initializes the SDIO drivers. */ sdcStart(&SDCD1, &sdccfg); + sdcConnect(&SDCD1); /* * Normal main() thread activity. -- cgit v1.2.3