mmc: tmio: sdhi: Move tap_pos to private data

Move the tap_pos variable, which is the HS200/HS400/SDR104 calibration
offset, into private data, so it can be passed around. This is done in
preparation for the HS400 mode, which needs to adjust this value.

Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com>
Cc: Masahiro Yamada <yamada.masahiro@socionext.com>
This commit is contained in:
Marek Vasut 2018-06-13 08:02:55 +02:00 committed by Marek Vasut
parent d34bd2deda
commit 95ead3d98d
2 changed files with 5 additions and 3 deletions

View file

@ -125,7 +125,6 @@ static int renesas_sdhi_select_tuning(struct tmio_sd_priv *priv,
unsigned int smpcmp) unsigned int smpcmp)
{ {
unsigned long tap_cnt; /* counter of tuning success */ unsigned long tap_cnt; /* counter of tuning success */
unsigned long tap_set; /* tap position */
unsigned long tap_start;/* start position of tuning success */ unsigned long tap_start;/* start position of tuning success */
unsigned long tap_end; /* end position of tuning success */ unsigned long tap_end; /* end position of tuning success */
unsigned long ntap; /* temporary counter of tuning success */ unsigned long ntap; /* temporary counter of tuning success */
@ -209,12 +208,12 @@ static int renesas_sdhi_select_tuning(struct tmio_sd_priv *priv,
select = true; select = true;
if (select) if (select)
tap_set = ((tap_start + tap_end) / 2) % tap_num; priv->tap_set = ((tap_start + tap_end) / 2) % tap_num;
else else
return -EIO; return -EIO;
/* Set SCC */ /* Set SCC */
tmio_sd_writel(priv, tap_set, RENESAS_SDHI_SCC_TAPSET); tmio_sd_writel(priv, priv->tap_set, RENESAS_SDHI_SCC_TAPSET);
/* Enable auto re-tuning */ /* Enable auto re-tuning */
reg = tmio_sd_readl(priv, RENESAS_SDHI_SCC_RVSCNTL); reg = tmio_sd_readl(priv, RENESAS_SDHI_SCC_RVSCNTL);

View file

@ -134,6 +134,9 @@ struct tmio_sd_priv {
#endif #endif
#if CONFIG_IS_ENABLED(CLK) #if CONFIG_IS_ENABLED(CLK)
struct clk clk; struct clk clk;
#endif
#if CONFIG_IS_ENABLED(RENESAS_SDHI)
u8 tap_set;
#endif #endif
ulong (*clk_get_rate)(struct tmio_sd_priv *); ulong (*clk_get_rate)(struct tmio_sd_priv *);
}; };