sd: enable 4 bit bus width for high speed cards
Enable 4 bit bus width for high speed cards, so that host and card
combinations that cannot use UHS mode will still benefit from the
speed increase of using 4 data lines.
Signed-off-by: Daniel DeGrasse <daniel.degrasse@nxp.com>
diff --git a/subsys/sd/sdmmc.c b/subsys/sd/sdmmc.c
index 8787ba2..f261441 100644
--- a/subsys/sd/sdmmc.c
+++ b/subsys/sd/sdmmc.c
@@ -950,6 +950,14 @@
LOG_ERR("Failed to switch card to HS mode");
return ret;
}
+ if (card->flags & SD_4BITS_WIDTH) {
+ /* Raise bus width to 4 bits */
+ ret = sdmmc_set_bus_width(card, SDHC_BUS_WIDTH4BIT);
+ if (ret) {
+ LOG_ERR("Failed to change card bus width to 4 bits");
+ return ret;
+ }
+ }
return 0;
}