mmc: Add host ops for enhanced strobe
Some hosts may need additional steps to get HS400 functional in enhanced strobe mode. Add host ops to facilitate that. Change-Id: I9663830e7ccedf8bf7970d0724a4c7ce212073fd Signed-off-by: Venkat Gopalakrishnan <venkatg@codeaurora.org> [subhashj@codeaurora.org: fixed trivial merge conflicts] Signed-off-by: Subhash Jadavani <subhashj@codeaurora.org>
This commit is contained in:
parent
57a1c4c67e
commit
506b393bf6
2 changed files with 8 additions and 2 deletions
|
@ -1245,7 +1245,12 @@ static int mmc_select_hs400(struct mmc_card *card)
|
|||
goto out_err;
|
||||
}
|
||||
|
||||
if ((host->caps2 & MMC_CAP2_HS400_POST_TUNING) && host->ops->execute_tuning) {
|
||||
if (host->ops->enhanced_strobe) {
|
||||
mmc_host_clk_hold(host);
|
||||
err = host->ops->enhanced_strobe(host);
|
||||
mmc_host_clk_release(host);
|
||||
} else if ((host->caps2 & MMC_CAP2_HS400_POST_TUNING) &&
|
||||
host->ops->execute_tuning) {
|
||||
mmc_host_clk_hold(host);
|
||||
err = host->ops->execute_tuning(host,
|
||||
MMC_SEND_TUNING_BLOCK_HS200);
|
||||
|
@ -1609,7 +1614,7 @@ static int mmc_scale_high(struct mmc_host *host)
|
|||
return err;
|
||||
}
|
||||
|
||||
return 0;
|
||||
return err;
|
||||
}
|
||||
|
||||
static int mmc_set_clock_bus_speed(struct mmc_card *card, unsigned long freq)
|
||||
|
|
|
@ -158,6 +158,7 @@ struct mmc_host_ops {
|
|||
|
||||
/* Prepare HS400 target operating frequency depending host driver */
|
||||
int (*prepare_hs400_tuning)(struct mmc_host *host, struct mmc_ios *ios);
|
||||
int (*enhanced_strobe)(struct mmc_host *host);
|
||||
int (*select_drive_strength)(struct mmc_card *card,
|
||||
unsigned int max_dtr, int host_drv,
|
||||
int card_drv, int *drv_type);
|
||||
|
|
Loading…
Add table
Reference in a new issue