diff --git a/libraries/SD_MMC/src/SD_MMC.cpp b/libraries/SD_MMC/src/SD_MMC.cpp index 12ab2b565eb..a76377d321d 100644 --- a/libraries/SD_MMC/src/SD_MMC.cpp +++ b/libraries/SD_MMC/src/SD_MMC.cpp @@ -246,6 +246,10 @@ bool SDMMCFS::begin(const char *mountpoint, bool mode1bit, bool format_if_mount_ .width = 4, .flags = 0, }; +#ifdef SOC_SDMMC_UHS_I_SUPPORTED + host.flags &= ~SDMMC_HOST_FLAG_DDR; + slot_config.flags = SDMMC_SLOT_FLAG_UHS1; +#endif #else host.slot = SDMMC_HOST_SLOT_1; #endif diff --git a/libraries/SD_MMC/src/SD_MMC.h b/libraries/SD_MMC/src/SD_MMC.h index 7192d466b89..e20c6ccfaa9 100644 --- a/libraries/SD_MMC/src/SD_MMC.h +++ b/libraries/SD_MMC/src/SD_MMC.h @@ -30,8 +30,12 @@ // you can define BOARD_MAX_SDMMC_FREQ with lower value (Ex. SDMMC_FREQ_DEFAULT) // in pins_arduino.h for your board variant. #ifndef BOARD_MAX_SDMMC_FREQ +#ifdef SOC_SDMMC_UHS_I_SUPPORTED +#define BOARD_MAX_SDMMC_FREQ SDMMC_FREQ_SDR50 +#else #define BOARD_MAX_SDMMC_FREQ SDMMC_FREQ_HIGHSPEED #endif +#endif namespace fs {