summaryrefslogtreecommitdiff
path: root/include/linux/mmc/host.h
diff options
context:
space:
mode:
authorShawn Lin <shawn.lin@rock-chips.com>2016-05-26 09:56:22 +0800
committerVijay Viswanath <vviswana@codeaurora.org>2018-03-29 15:14:30 +0530
commit34f009cf75adc03c0ff8394092ff2b93271feab6 (patch)
tree1605bc6c8522a092241665a1ef7e8b5ed1e80830 /include/linux/mmc/host.h
parent9896df099ca71093fce1625b705c79986416649a (diff)
mmc: core: implement enhanced strobe support
Controllers use data strobe line to latch data from devices under hs400 mode, but not for cmd line. So since emmc 5.1, JEDEC introduces enhanced strobe mode for latching cmd response from emmc devices to host controllers. This new feature is optional, so it depends both on device's cap and host's cap to decide whether to use it or not. Change-Id: I1ca2bff37ae697f5c502975d1dc54d534151a3cd Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com> Reviewed-by: Jaehoon Chung <jh80.chung@samsung.com> Tested-by: Douglas Anderson <dianders@chromium.org> Tested-by: Jaehoon Chung <jh80.chung@samsung.com> Acked-by: Adrian Hunter <adrian.hunter@intel.com> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org> Git-commit: 81ac2af65793ecfbd79875d45043ff4adc0982b8 Git-repo: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git [vviswana@codeaurora.org: Adjusted patch for internal driver] Signed-off-by: Vijay Viswanath <vviswana@codeaurora.org>
Diffstat (limited to 'include/linux/mmc/host.h')
-rw-r--r--include/linux/mmc/host.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/include/linux/mmc/host.h b/include/linux/mmc/host.h
index 34da10bff4e1..0abfe539c326 100644
--- a/include/linux/mmc/host.h
+++ b/include/linux/mmc/host.h
@@ -84,6 +84,8 @@ struct mmc_ios {
#define MMC_SET_DRIVER_TYPE_A 1
#define MMC_SET_DRIVER_TYPE_C 2
#define MMC_SET_DRIVER_TYPE_D 3
+
+ bool enhanced_strobe; /* hs400es selection */
};
/* states to represent load on the host */
@@ -825,6 +827,11 @@ static inline bool mmc_card_hs400(struct mmc_card *card)
return card->host->ios.timing == MMC_TIMING_MMC_HS400;
}
+static inline bool mmc_card_hs400es(struct mmc_card *card)
+{
+ return card->host->ios.enhanced_strobe;
+}
+
void mmc_retune_enable(struct mmc_host *host);
void mmc_retune_disable(struct mmc_host *host);
void mmc_retune_timer_stop(struct mmc_host *host);