[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20221108082533.21384-3-hayashi.kunihiko@socionext.com>
Date: Tue, 8 Nov 2022 17:25:31 +0900
From: Kunihiko Hayashi <hayashi.kunihiko@...ionext.com>
To: Adrian Hunter <adrian.hunter@...el.com>,
Ulf Hansson <ulf.hansson@...aro.org>
Cc: Jassi Brar <jaswinder.singh@...aro.org>,
Ard Biesheuvel <ard.biesheuvel@...aro.org>,
linux-mmc@...r.kernel.org, linux-kernel@...r.kernel.org,
Kunihiko Hayashi <hayashi.kunihiko@...ionext.com>
Subject: [PATCH 2/4] mmc: f-sdh30: Add support for non-removable media
To use F_SDH30 for non-removable meda like eMMC,
need to enable FORCE_CARD_INSERT bit to skip the delay for detection.
Signed-off-by: Kunihiko Hayashi <hayashi.kunihiko@...ionext.com>
---
drivers/mmc/host/sdhci_f_sdh30.c | 7 +++++++
drivers/mmc/host/sdhci_f_sdh30.h | 3 +++
2 files changed, 10 insertions(+)
diff --git a/drivers/mmc/host/sdhci_f_sdh30.c b/drivers/mmc/host/sdhci_f_sdh30.c
index 7f4553b28180..e7617a08276d 100644
--- a/drivers/mmc/host/sdhci_f_sdh30.c
+++ b/drivers/mmc/host/sdhci_f_sdh30.c
@@ -76,6 +76,13 @@ static void sdhci_f_sdh30_reset(struct sdhci_host *host, u8 mask)
ctl |= F_SDH30_CMD_DAT_DELAY;
sdhci_writel(host, ctl, F_SDH30_ESD_CONTROL);
}
+
+ if ((host->mmc->caps & MMC_CAP_NONREMOVABLE) &&
+ !(sdhci_readl(host, SDHCI_PRESENT_STATE) & SDHCI_CARD_PRESENT)) {
+ ctl = sdhci_readl(host, F_SDH30_TEST);
+ ctl |= F_SDH30_FORCE_CARD_INSERT;
+ sdhci_writel(host, ctl, F_SDH30_TEST);
+ }
}
static const struct sdhci_ops sdhci_f_sdh30_ops = {
diff --git a/drivers/mmc/host/sdhci_f_sdh30.h b/drivers/mmc/host/sdhci_f_sdh30.h
index fc1ad28f7ca9..7c3c66291d42 100644
--- a/drivers/mmc/host/sdhci_f_sdh30.h
+++ b/drivers/mmc/host/sdhci_f_sdh30.h
@@ -29,4 +29,7 @@
#define F_SDH30_CMD_DAT_DELAY BIT(9)
#define F_SDH30_EMMC_HS200 BIT(24)
+#define F_SDH30_TEST 0x158
+#define F_SDH30_FORCE_CARD_INSERT BIT(6)
+
#define F_SDH30_MIN_CLOCK 400000
--
2.25.1
Powered by blists - more mailing lists