@@ -315,6 +315,12 @@ int mmc_of_parse(struct mmc_host *host)
host->caps2 |= MMC_CAP2_HS400_1_2V | MMC_CAP2_HS200_1_2V_SDR;
if (of_property_read_bool(np, "mmc-hs400-enhanced-strobe"))
host->caps2 |= MMC_CAP2_HS400_ES;
+ if (of_property_read_bool(np, "no-sdio"))
+ host->caps2 |= MMC_CAP2_NO_SDIO;
+ if (of_property_read_bool(np, "no-sd"))
+ host->caps2 |= MMC_CAP2_NO_SD;
+ if (of_property_read_bool(np, "no-mmc"))
+ host->caps2 |= MMC_CAP2_NO_MMC;
host->dsr_req = !of_property_read_u32(np, "dsr", &host->dsr);
if (host->dsr_req && (host->dsr & ~0xffff)) {
The reason for why we expose these to dt is that most of the controllers could support all card typs including sd, sdio and MMC card, but for the specific boards, (e)MMC or sdio are non-removable devices, so it's impossible that these slot will be used for other card types. Also for a certain SD slot, it seems reasonable that we couldn't solder MMC devices or SDIO devices. So let's expose these caps to dt for the specific boards to imporve the behaviour of initialization. Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com> --- drivers/mmc/core/host.c | 6 ++++++ 1 file changed, 6 insertions(+)