Merge "mmc: core: implement enhanced strobe support"
This commit is contained in:
commit
d6dbc41649
3 changed files with 11 additions and 1 deletions
|
@ -373,12 +373,13 @@ int mmc_add_card(struct mmc_card *card)
|
|||
mmc_card_ddr52(card) ? "DDR " : "",
|
||||
type);
|
||||
} else {
|
||||
pr_info("%s: new %s%s%s%s%s card at address %04x\n",
|
||||
pr_info("%s: new %s%s%s%s%s%s card at address %04x\n",
|
||||
mmc_hostname(card->host),
|
||||
mmc_card_uhs(card) ? "ultra high speed " :
|
||||
(mmc_card_hs(card) ? "high speed " : ""),
|
||||
mmc_card_hs400(card) ? "HS400 " :
|
||||
(mmc_card_hs200(card) ? "HS200 " : ""),
|
||||
mmc_card_hs400es(card) ? "Enhanced strobe " : "",
|
||||
mmc_card_ddr52(card) ? "DDR " : "",
|
||||
uhs_bus_speed_mode, type, card->rca);
|
||||
}
|
||||
|
|
|
@ -1275,6 +1275,8 @@ static int mmc_select_hs400(struct mmc_card *card)
|
|||
if (card->ext_csd.strobe_support && host->ops->enhanced_strobe) {
|
||||
mmc_host_clk_hold(host);
|
||||
err = host->ops->enhanced_strobe(host);
|
||||
if (!err)
|
||||
host->ios.enhanced_strobe = true;
|
||||
mmc_host_clk_release(host);
|
||||
} else if ((host->caps2 & MMC_CAP2_HS400_POST_TUNING) &&
|
||||
host->ops->execute_tuning) {
|
||||
|
|
|
@ -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 */
|
||||
|
@ -827,6 +829,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);
|
||||
|
|
Loading…
Add table
Reference in a new issue