/** * @brief Deactivates the SDC peripheral. * * @param[in] sdcp pointer to the @p SDCDriver object * * @notapi */ void sdc_lld_stop(SDCDriver *sdcp) { if (sdcp->state != BLK_STOP) { /* SDIO deactivation.*/ sdcp->sdmmc->POWER = 0; sdcp->sdmmc->CLKCR = 0; sdcp->sdmmc->DCTRL = 0; sdcp->sdmmc->DTIMER = 0; /* DMA stream released.*/ dmaStreamRelease(sdcp->dma); /* Clock deactivation.*/ #if STM32_SDC_USE_SDMMC1 if (&SDCD1 == sdcp) { rccDisableSDMMC1(FALSE); } #endif #if STM32_SDC_USE_SDMMC2 if (&SDCD2 == sdcp) { rccDisableSDMMC2(FALSE); } #endif } }
/** * @brief Deactivates the SDC peripheral. * * @param[in] sdcp pointer to the @p SDCDriver object * * @notapi */ void sdc_lld_stop(SDCDriver *sdcp) { if (sdcp->state != BLK_STOP) { /* SDIO deactivation.*/ sdcp->sdmmc->POWER = 0; sdcp->sdmmc->CLKCR = 0; sdcp->sdmmc->DCTRL = 0; sdcp->sdmmc->DTIMER = 0; /* Clock deactivation.*/ nvicDisableVector(STM32_SDMMC1_NUMBER); dmaStreamRelease(sdcp->dma); rccDisableSDMMC1(FALSE); } }