summaryrefslogtreecommitdiff
path: root/ports/stm32/sdio.c
diff options
context:
space:
mode:
Diffstat (limited to 'ports/stm32/sdio.c')
-rw-r--r--ports/stm32/sdio.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/ports/stm32/sdio.c b/ports/stm32/sdio.c
index 87f550e3a..3ebd4947f 100644
--- a/ports/stm32/sdio.c
+++ b/ports/stm32/sdio.c
@@ -93,6 +93,21 @@ void sdio_deinit(void) {
#endif
}
+void sdio_reenable(void) {
+ if (__HAL_RCC_SDMMC1_IS_CLK_DISABLED()) {
+ __HAL_RCC_SDMMC1_CLK_ENABLE(); // enable SDIO peripheral
+ sdio_enable_high_speed_4bit();
+ }
+}
+
+void sdio_enable_irq(bool enable) {
+ if (enable) {
+ SDMMC1->MASK |= SDMMC_MASK_SDIOITIE;
+ } else {
+ SDMMC1->MASK &= ~SDMMC_MASK_SDIOITIE;
+ }
+}
+
void sdio_enable_high_speed_4bit(void) {
SDMMC_TypeDef *SDIO = SDMMC1;
SDIO->POWER = 0; // power off