Exemple #1
0
/**
 * @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
  }
}
Exemple #2
0
/**
 * @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);
  }
}