Commit cc14eec0 authored by Yinbo Zhu's avatar Yinbo Zhu Committed by Ulf Hansson
Browse files

mmc: core: Add ->hs400_prepare_ddr() callback



Some eMMC controllers need specific settings for HS400 mode before the
speed mode can be switched to DDR mode, during the HS400 initialization
sequence. For that reason, let's introduce a new host callback,
->hs400_prepare_ddr() and invoked it just before switching to DDR mode.

Signed-off-by: default avatarYinbo Zhu <yinbo.zhu@nxp.com>
Signed-off-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
parent 52b5f5cf
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -1181,6 +1181,9 @@ static int mmc_select_hs400(struct mmc_card *card)
	if (err)
		goto out_err;

	if (host->ops->hs400_prepare_ddr)
		host->ops->hs400_prepare_ddr(host);

	/* Switch card to DDR */
	err = mmc_switch(card, EXT_CSD_CMD_SET_NORMAL,
			 EXT_CSD_BUS_WIDTH,
+3 −0
Original line number Diff line number Diff line
@@ -147,6 +147,9 @@ struct mmc_host_ops {
	/* Prepare HS400 target operating frequency depending host driver */
	int	(*prepare_hs400_tuning)(struct mmc_host *host, struct mmc_ios *ios);

	/* Prepare switch to DDR during the HS400 init sequence */
	int	(*hs400_prepare_ddr)(struct mmc_host *host);

	/* Prepare for switching from HS400 to HS200 */
	void	(*hs400_downgrade)(struct mmc_host *host);