From bdf556fd368d2a2b77fb5e6ee5f4c5c172afba47 Mon Sep 17 00:00:00 2001 From: CTCaer Date: Wed, 27 Aug 2025 15:08:11 +0300 Subject: [PATCH] bdk: storage: small mmc refactoring - Correct some Response Type names - And use _def for mmc defines similarly to sd_def --- bdk/bdk.h | 4 ++-- bdk/storage/{mmc.h => mmc_def.h} | 0 bdk/storage/sdmmc.c | 10 +++++----- bdk/storage/sdmmc_driver.c | 18 +++++++++--------- bdk/storage/sdmmc_driver.h | 4 ++-- 5 files changed, 18 insertions(+), 18 deletions(-) rename bdk/storage/{mmc.h => mmc_def.h} (100%) diff --git a/bdk/bdk.h b/bdk/bdk.h index 918063ca..02bc4b38 100644 --- a/bdk/bdk.h +++ b/bdk/bdk.h @@ -24,7 +24,7 @@ #include #include #include -#include +#include #include #include #include @@ -58,7 +58,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/bdk/storage/mmc.h b/bdk/storage/mmc_def.h similarity index 100% rename from bdk/storage/mmc.h rename to bdk/storage/mmc_def.h diff --git a/bdk/storage/sdmmc.c b/bdk/storage/sdmmc.c index 747c28d0..0dd994f6 100644 --- a/bdk/storage/sdmmc.c +++ b/bdk/storage/sdmmc.c @@ -22,7 +22,7 @@ #include #include #include -#include +#include #include #include #include @@ -971,7 +971,7 @@ static int _sd_storage_send_if_cond(sdmmc_storage_t *storage, bool *is_sdsc) { sdmmc_cmd_t cmdbuf; u16 vhd_pattern = SD_VHS_27_36 | 0xAA; - sdmmc_init_cmd(&cmdbuf, SD_SEND_IF_COND, vhd_pattern, SDMMC_RSP_TYPE_5, 0); + sdmmc_init_cmd(&cmdbuf, SD_SEND_IF_COND, vhd_pattern, SDMMC_RSP_TYPE_7, 0); if (!sdmmc_execute_cmd(storage->sdmmc, &cmdbuf, NULL, NULL)) { // The SD Card is version 1.X (SDSC) if there is no response. @@ -986,7 +986,7 @@ static int _sd_storage_send_if_cond(sdmmc_storage_t *storage, bool *is_sdsc) // For Card version >= 2.0, parse results. u32 resp = 0; - sdmmc_get_cached_rsp(storage->sdmmc, &resp, SDMMC_RSP_TYPE_5); + sdmmc_get_cached_rsp(storage->sdmmc, &resp, SDMMC_RSP_TYPE_7); // Check if VHD was accepted and pattern was properly returned. if ((resp & 0xFFF) == vhd_pattern) @@ -1069,7 +1069,7 @@ static int _sd_storage_get_op_cond(sdmmc_storage_t *storage, bool is_sdsc, int b static int _sd_storage_get_rca(sdmmc_storage_t *storage) { sdmmc_cmd_t cmdbuf; - sdmmc_init_cmd(&cmdbuf, SD_SEND_RELATIVE_ADDR, 0, SDMMC_RSP_TYPE_4, 0); + sdmmc_init_cmd(&cmdbuf, SD_SEND_RELATIVE_ADDR, 0, SDMMC_RSP_TYPE_6, 0); u32 timeout = get_tmr_ms() + 1500; @@ -1079,7 +1079,7 @@ static int _sd_storage_get_rca(sdmmc_storage_t *storage) break; u32 resp = 0; - if (!sdmmc_get_cached_rsp(storage->sdmmc, &resp, SDMMC_RSP_TYPE_4)) + if (!sdmmc_get_cached_rsp(storage->sdmmc, &resp, SDMMC_RSP_TYPE_6)) break; if (resp >> 16) diff --git a/bdk/storage/sdmmc_driver.c b/bdk/storage/sdmmc_driver.c index b6e3c8e5..f8fa562f 100644 --- a/bdk/storage/sdmmc_driver.c +++ b/bdk/storage/sdmmc_driver.c @@ -17,7 +17,7 @@ #include -#include +#include #include #include #include @@ -115,7 +115,7 @@ static int _sdmmc_config_tap_val(sdmmc_t *sdmmc, u32 type) u32 tap_val = 0; if (type == SDHCI_TIMING_MMC_HS400) - sdmmc->regs->vencapover = (sdmmc->regs->vencapover & 0xFFFFC0FF) | (dqs_trim_val << 8); + sdmmc->regs->vencapover = (sdmmc->regs->vencapover & ~0x3F00) | (dqs_trim_val << 8); sdmmc->regs->ventunctl0 &= ~SDHCI_TEGRA_TUNING_TAP_HW_UPDATED; @@ -129,7 +129,7 @@ static int _sdmmc_config_tap_val(sdmmc_t *sdmmc, u32 type) else tap_val = sdmmc->t210b01 ? 11 : tap_values_t210[sdmmc->id]; - sdmmc->regs->venclkctl = (sdmmc->regs->venclkctl & 0xFF00FFFF) | (tap_val << 16); + sdmmc->regs->venclkctl = (sdmmc->regs->venclkctl & ~0xFF0000) | (tap_val << 16); return 1; } @@ -437,8 +437,8 @@ static int _sdmmc_cache_rsp(sdmmc_t *sdmmc, u32 *rsp, u32 type) { case SDMMC_RSP_TYPE_1: case SDMMC_RSP_TYPE_3: - case SDMMC_RSP_TYPE_4: - case SDMMC_RSP_TYPE_5: + case SDMMC_RSP_TYPE_6: + case SDMMC_RSP_TYPE_7: rsp[0] = sdmmc->regs->rspreg[0]; break; @@ -470,8 +470,8 @@ int sdmmc_get_cached_rsp(sdmmc_t *sdmmc, u32 *rsp, u32 type) { case SDMMC_RSP_TYPE_1: case SDMMC_RSP_TYPE_3: - case SDMMC_RSP_TYPE_4: - case SDMMC_RSP_TYPE_5: + case SDMMC_RSP_TYPE_6: + case SDMMC_RSP_TYPE_7: rsp[0] = sdmmc->rsp[0]; break; @@ -560,8 +560,8 @@ static int _sdmmc_send_cmd(sdmmc_t *sdmmc, const sdmmc_cmd_t *cmd, bool is_data_ break; case SDMMC_RSP_TYPE_1: - case SDMMC_RSP_TYPE_4: - case SDMMC_RSP_TYPE_5: + case SDMMC_RSP_TYPE_6: + case SDMMC_RSP_TYPE_7: if (cmd->check_busy) cmdflags = SDHCI_CMD_RESP_LEN48_BUSY | SDHCI_CMD_INDEX | SDHCI_CMD_CRC; else diff --git a/bdk/storage/sdmmc_driver.h b/bdk/storage/sdmmc_driver.h index fe09c5a0..1ce5ffb8 100644 --- a/bdk/storage/sdmmc_driver.h +++ b/bdk/storage/sdmmc_driver.h @@ -37,8 +37,8 @@ #define SDMMC_RSP_TYPE_1 1 #define SDMMC_RSP_TYPE_2 2 #define SDMMC_RSP_TYPE_3 3 -#define SDMMC_RSP_TYPE_4 4 -#define SDMMC_RSP_TYPE_5 5 +#define SDMMC_RSP_TYPE_6 4 +#define SDMMC_RSP_TYPE_7 5 /*! SDMMC bus widths. */ #define SDMMC_BUS_WIDTH_1 0