Skip to content

Commit d49d92a

Browse files
wensstorulf
authored andcommitted
mmc: sunxi: Disable HS-DDR mode for H5 eMMC controller by default
Some H5 boards seem to not have proper trace lengths for eMMC to be able to use the default setting for the delay chains under HS-DDR mode. These include the Bananapi M2+ H5 and NanoPi NEO Core2. However the Libre Computer ALL-H3-CC-H5 works just fine. For the H5 (at least for now), default to not enabling HS-DDR modes in the driver, and expect the device tree to signal HS-DDR capability on boards that work. Reported-by: Chris Blake <chrisrblake93@gmail.com> Fixes: 07bafc1 ("mmc: sunxi: Use new timing mode for A64 eMMC controller") Cc: <stable@vger.kernel.org> Acked-by: Maxime Ripard <maxime.ripard@bootlin.com> Signed-off-by: Chen-Yu Tsai <wens@csie.org> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
1 parent 8834f56 commit d49d92a

File tree

1 file changed

+10
-1
lines changed

1 file changed

+10
-1
lines changed

drivers/mmc/host/sunxi-mmc.c

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1399,7 +1399,16 @@ static int sunxi_mmc_probe(struct platform_device *pdev)
13991399
mmc->caps |= MMC_CAP_MMC_HIGHSPEED | MMC_CAP_SD_HIGHSPEED |
14001400
MMC_CAP_ERASE | MMC_CAP_SDIO_IRQ;
14011401

1402-
if (host->cfg->clk_delays || host->use_new_timings)
1402+
/*
1403+
* Some H5 devices do not have signal traces precise enough to
1404+
* use HS DDR mode for their eMMC chips.
1405+
*
1406+
* We still enable HS DDR modes for all the other controller
1407+
* variants that support them.
1408+
*/
1409+
if ((host->cfg->clk_delays || host->use_new_timings) &&
1410+
!of_device_is_compatible(pdev->dev.of_node,
1411+
"allwinner,sun50i-h5-emmc"))
14031412
mmc->caps |= MMC_CAP_1_8V_DDR | MMC_CAP_3_3V_DDR;
14041413

14051414
ret = mmc_of_parse(mmc);

0 commit comments

Comments
 (0)