mirror of
https://github.com/espressif/esp-idf.git
synced 2025-08-05 13:44:32 +02:00
sdmmc: also set card->real_freq_khz for probing frequency
This commit is contained in:
@@ -195,20 +195,21 @@ esp_err_t sdmmc_init_host_bus_width(sdmmc_card_t* card)
|
|||||||
|
|
||||||
esp_err_t sdmmc_init_host_frequency(sdmmc_card_t* card)
|
esp_err_t sdmmc_init_host_frequency(sdmmc_card_t* card)
|
||||||
{
|
{
|
||||||
|
esp_err_t err;
|
||||||
assert(card->max_freq_khz <= card->host.max_freq_khz);
|
assert(card->max_freq_khz <= card->host.max_freq_khz);
|
||||||
|
|
||||||
if (card->max_freq_khz > SDMMC_FREQ_PROBING) {
|
if (card->max_freq_khz > SDMMC_FREQ_PROBING) {
|
||||||
esp_err_t err = (*card->host.set_card_clk)(card->host.slot, card->max_freq_khz);
|
err = (*card->host.set_card_clk)(card->host.slot, card->max_freq_khz);
|
||||||
if (err != ESP_OK) {
|
if (err != ESP_OK) {
|
||||||
ESP_LOGE(TAG, "failed to switch bus frequency (0x%x)", err);
|
ESP_LOGE(TAG, "failed to switch bus frequency (0x%x)", err);
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
err = (*card->host.get_real_freq)(card->host.slot, &(card->real_freq_khz));
|
err = (*card->host.get_real_freq)(card->host.slot, &(card->real_freq_khz));
|
||||||
if (err != ESP_OK) {
|
if (err != ESP_OK) {
|
||||||
ESP_LOGE(TAG, "failed to get real working frequency (0x%x)", err);
|
ESP_LOGE(TAG, "failed to get real working frequency (0x%x)", err);
|
||||||
return err;
|
return err;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (card->is_ddr) {
|
if (card->is_ddr) {
|
||||||
@@ -216,7 +217,7 @@ esp_err_t sdmmc_init_host_frequency(sdmmc_card_t* card)
|
|||||||
ESP_LOGE(TAG, "host doesn't support DDR mode or voltage switching");
|
ESP_LOGE(TAG, "host doesn't support DDR mode or voltage switching");
|
||||||
return ESP_ERR_NOT_SUPPORTED;
|
return ESP_ERR_NOT_SUPPORTED;
|
||||||
}
|
}
|
||||||
esp_err_t err = (*card->host.set_bus_ddr_mode)(card->host.slot, true);
|
err = (*card->host.set_bus_ddr_mode)(card->host.slot, true);
|
||||||
if (err != ESP_OK) {
|
if (err != ESP_OK) {
|
||||||
ESP_LOGE(TAG, "failed to switch bus to DDR mode (0x%x)", err);
|
ESP_LOGE(TAG, "failed to switch bus to DDR mode (0x%x)", err);
|
||||||
return err;
|
return err;
|
||||||
|
Reference in New Issue
Block a user