Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5d2714cd authored by Venkat Gopalakrishnan's avatar Venkat Gopalakrishnan
Browse files

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: default avatarVenkat Gopalakrishnan <venkatg@codeaurora.org>
parent 5f2cd81f
Loading
Loading
Loading
Loading
+7 −2
Original line number Diff line number Diff line
@@ -1181,7 +1181,12 @@ static int mmc_select_hs400(struct mmc_card *card)
	mmc_set_timing(host, MMC_TIMING_MMC_HS400);
	mmc_set_bus_speed(card);

	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);
@@ -1192,7 +1197,7 @@ static int mmc_select_hs400(struct mmc_card *card)
				mmc_hostname(host));
	}

	return 0;
	return err;
}

/*
+1 −0
Original line number Diff line number Diff line
@@ -157,6 +157,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)(unsigned int max_dtr, int host_drv, int card_drv);
	void	(*hw_reset)(struct mmc_host *host);
	void	(*card_event)(struct mmc_host *host);