diff --git a/drivers/mmc/nds32_mmc.c b/drivers/mmc/nds32_mmc.c
index 6d3c8572e503650f8c88134b09f7ca41e0ad9595..ec43e9d68825ca1e758bec7dee3b4a276714787d 100644
--- a/drivers/mmc/nds32_mmc.c
+++ b/drivers/mmc/nds32_mmc.c
@@ -103,6 +103,11 @@ static int nds32_mmc_probe(struct udevice *dev)
 	if (ret < 0)
 		return ret;
 #endif
+
+	if (dev_read_bool(dev, "cap-mmc-highspeed") || \
+		  dev_read_bool(dev, "cap-sd-highspeed"))
+		chip->caps |= MMC_MODE_HS | MMC_MODE_HS_52MHz;
+
 	ftsdc_setup_cfg(&plat->cfg, dev->name, chip->buswidth, chip->caps,
 			priv->minmax[1] , priv->minmax[0]);
 	chip->mmc = &plat->mmc;