[PATCH v3 3/3] mmc: sdhci-esdhc-imx: consolidate imx25/35 data and add Kingston CID
From: Adrián García Casado
Date: Sun Mar 15 2026 - 16:22:56 EST
Consolidate esdhc_imx25 and esdhc_imx35 soc data into a single shared
struct since they share the same flags. This reduces redundancy. Also
add the CID_MANFID_KINGSTON definition to quirks.h for centralized
management.
Signed-off-by: Adrián García Casado <adriangarciacasado42@xxxxxxxxx>
---
drivers/mmc/core/quirks.h | 4 ++++
drivers/mmc/host/sdhci-esdhc-imx.c | 12 ++++--------
2 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/drivers/mmc/core/quirks.h b/drivers/mmc/core/quirks.h
index c417ed34c..d736bb4be 100644
--- a/drivers/mmc/core/quirks.h
+++ b/drivers/mmc/core/quirks.h
@@ -15,6 +15,10 @@
#include "card.h"
+#ifndef CID_MANFID_KINGSTON
+#define CID_MANFID_KINGSTON 0x70
+#endif
+
static const struct mmc_fixup __maybe_unused mmc_sd_fixups[] = {
/*
* Kingston Canvas Go! Plus microSD cards never finish SD cache flush.
diff --git a/drivers/mmc/host/sdhci-esdhc-imx.c b/drivers/mmc/host/sdhci-esdhc-imx.c
index a7a5df673..9cfa26722 100644
--- a/drivers/mmc/host/sdhci-esdhc-imx.c
+++ b/drivers/mmc/host/sdhci-esdhc-imx.c
@@ -256,11 +256,7 @@ struct esdhc_soc_data {
u32 quirks;
};
-static const struct esdhc_soc_data esdhc_imx25_data = {
- .flags = ESDHC_FLAG_ERR004536,
-};
-
-static const struct esdhc_soc_data esdhc_imx35_data = {
+static const struct esdhc_soc_data esdhc_imx25_35_data = {
.flags = ESDHC_FLAG_ERR004536,
};
@@ -391,8 +387,8 @@ struct pltfm_imx_data {
};
static const struct of_device_id imx_esdhc_dt_ids[] = {
- { .compatible = "fsl,imx25-esdhc", .data = &esdhc_imx25_data, },
- { .compatible = "fsl,imx35-esdhc", .data = &esdhc_imx35_data, },
+ { .compatible = "fsl,imx25-esdhc", .data = &esdhc_imx25_35_data, },
+ { .compatible = "fsl,imx35-esdhc", .data = &esdhc_imx25_35_data, },
{ .compatible = "fsl,imx51-esdhc", .data = &esdhc_imx51_data, },
{ .compatible = "fsl,imx53-esdhc", .data = &esdhc_imx53_data, },
{ .compatible = "fsl,imx6sx-usdhc", .data = &usdhc_imx6sx_data, },
@@ -414,7 +410,7 @@ MODULE_DEVICE_TABLE(of, imx_esdhc_dt_ids);
static inline int is_imx25_esdhc(struct pltfm_imx_data *data)
{
- return data->socdata == &esdhc_imx25_data;
+ return data->socdata == &esdhc_imx25_35_data;
}
static inline int is_imx53_esdhc(struct pltfm_imx_data *data)
--
2.47.3