diff --git a/drivers/mtd_sdmmc/mtd_sdmmc.c b/drivers/mtd_sdmmc/mtd_sdmmc.c index bd70e366bb..790d4e615e 100644 --- a/drivers/mtd_sdmmc/mtd_sdmmc.c +++ b/drivers/mtd_sdmmc/mtd_sdmmc.c @@ -41,8 +41,7 @@ static int mtd_sdmmc_init(mtd_dev_t *dev) /* get the SDMMC device descriptor from SDMMC peripheral index */ mtd_sd->sdmmc = sdmmc_get_dev(mtd_sd->sdmmc_idx); - if ((mtd_sd->sdmmc->init_done == true) || - (sdmmc_card_init(mtd_sd->sdmmc) == 0)) { + if (sdmmc_card_init(mtd_sd->sdmmc) == 0) { /* erasing whole sectors is handled internally by the card so you can delete single blocks (i.e. pages) */ dev->pages_per_sector = 1; diff --git a/drivers/sdmmc/sdmmc.c b/drivers/sdmmc/sdmmc.c index e5b910faf0..6b392e43b7 100644 --- a/drivers/sdmmc/sdmmc.c +++ b/drivers/sdmmc/sdmmc.c @@ -338,6 +338,8 @@ int sdmmc_card_init(sdmmc_dev_t *dev) assert(dev); assert(dev->driver); + dev->init_done = false; + /* use driver's card_init function if it defines its own */ if (dev->driver->card_init) { return dev->driver->card_init(dev);