[U-Boot] [PATCH 05/13] mmc: tmio: Keep generating clock when clock are enabled
Masahiro Yamada
yamada.masahiro at socionext.com
Thu Nov 1 11:46:22 UTC 2018
On Thu, Nov 1, 2018 at 2:21 AM Marek Vasut <marek.vasut at gmail.com> wrote:
>
> The TMIO core has a feature where it can automatically disable clock output
> when the bus is not in use. While this is useful, it also interferes with
> switching the bus to 1.8V and other background tasks of the SD/MMC cards,
> which require clock to be enabled.
>
> This patch respects the mmc->clk_disable and only disables the clock when
> the MMC core requests it. Otherwise the clock are continuously generated
> on the bus.
>
> Signed-off-by: Marek Vasut <marek.vasut+renesas at gmail.com>
> Cc: Masahiro Yamada <yamada.masahiro at socionext.com>
> ---
> drivers/mmc/tmio-common.c | 10 ++++++++--
> 1 file changed, 8 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/mmc/tmio-common.c b/drivers/mmc/tmio-common.c
> index ef06f0aa4b..42eb847edb 100644
> --- a/drivers/mmc/tmio-common.c
> +++ b/drivers/mmc/tmio-common.c
> @@ -603,10 +603,16 @@ static void tmio_sd_set_clk_rate(struct tmio_sd_priv *priv,
> tmio_sd_writel(priv, tmp, TMIO_SD_CLKCTL);
>
> tmp &= ~TMIO_SD_CLKCTL_DIV_MASK;
> - tmp |= val | TMIO_SD_CLKCTL_OFFEN;
Sorry, _OFFEN is Socionext-specific extension.
I believe moving tmio_sd_set_clk_rate to a platform hook
will make our life easier.
> + tmp |= val;
> tmio_sd_writel(priv, tmp, TMIO_SD_CLKCTL);
>
> - tmp |= TMIO_SD_CLKCTL_SCLKEN;
> + if (!mmc->clk_disable) {
> + tmp &= ~TMIO_SD_CLKCTL_OFFEN;
> + tmp |= TMIO_SD_CLKCTL_SCLKEN;
> + } else {
> + tmp |= TMIO_SD_CLKCTL_OFFEN;
> + tmp &= ~TMIO_SD_CLKCTL_SCLKEN;
> + }
> tmio_sd_writel(priv, tmp, TMIO_SD_CLKCTL);
>
> udelay(1000);
> --
> 2.18.0
>
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> https://lists.denx.de/listinfo/u-boot
--
Best Regards
Masahiro Yamada
More information about the U-Boot
mailing list