Skip to content

Commit 8418557

Browse files
Josua-SRUlf Hansson
authored andcommitted
mmc: sdhci-esdhc-imx: Update esdhc sysctl dtocv bitmask
NXP ESDHC supports setting data timeout using uSDHCx_SYS_CTRL register DTOCV bits (bits 16-19). Currently the driver accesses those bits by 32-bit write using SDHCI_TIMEOUT_CONTROL (0x2E) defined in drivers/mmc/host/sdhci.h. This is offset by two bytes relative to uSDHCx_SYS_CTRL (0x2C). The driver also defines ESDHC_SYS_CTRL_DTOCV_MASK as first 4 bits, which is correct relative to SDHCI_TIMEOUT_CONTROL but not relative to uSDHCx_SYS_CTRL. The definition carrying control register in its name is therefore inconsistent. Update the bitmask definition for bits 16-19 to be correct relative to control register base. Update the esdhc_set_timeout function to set timeout value at control register base, not timeout offset. This solves a purely cosmetic problem. Signed-off-by: Josua Mayer <josua@solid-run.com> Reviewed-by: Haibo Chen <haibo.chen@nxp.com> Acked-by: Adrian Hunter <adrian.hunter@intel.com> Message-ID: <20241101-imx-emmc-reset-v3-2-184965eed476@solid-run.com> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
1 parent 8ba9d45 commit 8418557

1 file changed

Lines changed: 3 additions & 3 deletions

File tree

drivers/mmc/host/sdhci-esdhc-imx.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
#include "sdhci-esdhc.h"
3131
#include "cqhci.h"
3232

33-
#define ESDHC_SYS_CTRL_DTOCV_MASK 0x0f
33+
#define ESDHC_SYS_CTRL_DTOCV_MASK GENMASK(19, 16)
3434
#define ESDHC_SYS_CTRL_IPP_RST_N BIT(23)
3535
#define ESDHC_CTRL_D3CD 0x08
3636
#define ESDHC_BURST_LEN_EN_INCR (1 << 27)
@@ -1391,8 +1391,8 @@ static void esdhc_set_timeout(struct sdhci_host *host, struct mmc_command *cmd)
13911391

13921392
/* use maximum timeout counter */
13931393
esdhc_clrset_le(host, ESDHC_SYS_CTRL_DTOCV_MASK,
1394-
esdhc_is_usdhc(imx_data) ? 0xF : 0xE,
1395-
SDHCI_TIMEOUT_CONTROL);
1394+
esdhc_is_usdhc(imx_data) ? 0xF0000 : 0xE0000,
1395+
ESDHC_SYSTEM_CONTROL);
13961396
}
13971397

13981398
static u32 esdhc_cqhci_irq(struct sdhci_host *host, u32 intmask)

0 commit comments

Comments
 (0)