From b333d4c703b30cabcb7d3e5fd4c5a830eadcf8a9 Mon Sep 17 00:00:00 2001 From: Larry Bernstone Date: Mon, 17 Nov 2025 11:59:43 -1000 Subject: [PATCH] feat(sd_mmc): Make UHS-I SDR the default for ESP-P4 SD_MMC --- libraries/SD_MMC/src/SD_MMC.cpp | 4 ++++ libraries/SD_MMC/src/SD_MMC.h | 4 ++++ 2 files changed, 8 insertions(+) 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 {