diff --git a/drivers/mmc/core/core.c b/drivers/mmc/core/core.c
index f396d1bb4ac47955982a69f77e5aa5fc90052e9e..79ba3a5bbf17cf8a6e79f03aa930a71ca8bffe8f 100644
--- a/drivers/mmc/core/core.c
+++ b/drivers/mmc/core/core.c
@@ -800,6 +800,10 @@ void mmc_set_data_timeout(struct mmc_data *data, const struct mmc_card *card)
 			data->timeout_ns = limit_us * 1000;
 			data->timeout_clks = 0;
 		}
+
+		/* assign limit value if invalid */
+		if (timeout_us == 0)
+			data->timeout_ns = limit_us * 1000;
 	}
 
 	/*