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:
Venkat Gopalakrishnan 2015-06-10 17:20:00 -07:00 committed by Subhash Jadavani
parent 57a1c4c67e
commit 506b393bf6
2 changed files with 8 additions and 2 deletions

View file

@ -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)

View file

@ -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);