diff --git a/drivers/mmc/stm32_sdmmc2.c b/drivers/mmc/stm32_sdmmc2.c
index 3e578359e02aadeef4cff05f7a5742eaf91843b1..f5b21dd097d6ed50ce3194903682d414abb9f13b 100644
--- a/drivers/mmc/stm32_sdmmc2.c
+++ b/drivers/mmc/stm32_sdmmc2.c
@@ -72,7 +72,10 @@ struct stm32_sdmmc2_ctx {
 #define SDMMC_CLKCR_HWFC_EN		BIT(17)
 #define SDMMC_CLKCR_DDR			BIT(18)
 #define SDMMC_CLKCR_BUSSPEED		BIT(19)
-#define SDMMC_CLKCR_SELCLKRX		GENMASK(21, 20)
+#define SDMMC_CLKCR_SELCLKRX_MASK	GENMASK(21, 20)
+#define SDMMC_CLKCR_SELCLKRX_CK		0
+#define SDMMC_CLKCR_SELCLKRX_CKIN	BIT(20)
+#define SDMMC_CLKCR_SELCLKRX_FBCK	BIT(21)
 
 /* SDMMC_CMD register */
 #define SDMMC_CMD_CMDINDEX		GENMASK(5, 0)
@@ -535,6 +538,8 @@ static int stm32_sdmmc2_probe(struct udevice *dev)
 		priv->clk_reg_msk |= SDMMC_CLKCR_NEGEDGE;
 	if (dev_read_bool(dev, "st,dirpol"))
 		priv->pwr_reg_msk |= SDMMC_POWER_DIRPOL;
+	if (dev_read_bool(dev, "st,pin-ckin"))
+		priv->clk_reg_msk |= SDMMC_CLKCR_SELCLKRX_CKIN;
 
 	ret = clk_get_by_index(dev, 0, &priv->clk);
 	if (ret)