|
@@ -1,6 +1,8 @@
|
|
|
/*
|
|
|
* linux/drivers/mmc/host/tmio_mmc_pio.c
|
|
|
*
|
|
|
+ * Copyright (C) 2016 Sang Engineering, Wolfram Sang
|
|
|
+ * Copyright (C) 2015-16 Renesas Electronics Corporation
|
|
|
* Copyright (C) 2011 Guennadi Liakhovetski
|
|
|
* Copyright (C) 2007 Ian Molton
|
|
|
* Copyright (C) 2004 Ian Molton
|
|
@@ -159,19 +161,20 @@ static void tmio_mmc_set_clock(struct tmio_mmc_host *host,
|
|
|
|
|
|
if (new_clock) {
|
|
|
for (clock = host->mmc->f_min, clk = 0x80000080;
|
|
|
- new_clock >= (clock<<1); clk >>= 1)
|
|
|
+ new_clock >= (clock << 1);
|
|
|
+ clk >>= 1)
|
|
|
clock <<= 1;
|
|
|
|
|
|
/* 1/1 clock is option */
|
|
|
if ((host->pdata->flags & TMIO_MMC_CLK_ACTUAL) &&
|
|
|
- ((clk >> 22) & 0x1))
|
|
|
+ ((clk >> 22) & 0x1))
|
|
|
clk |= 0xff;
|
|
|
}
|
|
|
|
|
|
if (host->set_clk_div)
|
|
|
- host->set_clk_div(host->pdev, (clk>>22) & 1);
|
|
|
+ host->set_clk_div(host->pdev, (clk >> 22) & 1);
|
|
|
|
|
|
- sd_ctrl_write16(host, CTL_SD_CARD_CLK_CTL, clk & 0x1ff);
|
|
|
+ sd_ctrl_write16(host, CTL_SD_CARD_CLK_CTL, clk & CLK_CTL_DIV_MASK);
|
|
|
if (!(host->pdata->flags & TMIO_MMC_FAST_CLK_CHG))
|
|
|
msleep(10);
|
|
|
}
|
|
@@ -183,14 +186,14 @@ static void tmio_mmc_clk_stop(struct tmio_mmc_host *host)
|
|
|
msleep(10);
|
|
|
}
|
|
|
|
|
|
- sd_ctrl_write16(host, CTL_SD_CARD_CLK_CTL, ~0x0100 &
|
|
|
+ sd_ctrl_write16(host, CTL_SD_CARD_CLK_CTL, ~CLK_CTL_SCLKEN &
|
|
|
sd_ctrl_read16(host, CTL_SD_CARD_CLK_CTL));
|
|
|
msleep(host->pdata->flags & TMIO_MMC_FAST_CLK_CHG ? 5 : 10);
|
|
|
}
|
|
|
|
|
|
static void tmio_mmc_clk_start(struct tmio_mmc_host *host)
|
|
|
{
|
|
|
- sd_ctrl_write16(host, CTL_SD_CARD_CLK_CTL, 0x0100 |
|
|
|
+ sd_ctrl_write16(host, CTL_SD_CARD_CLK_CTL, CLK_CTL_SCLKEN |
|
|
|
sd_ctrl_read16(host, CTL_SD_CARD_CLK_CTL));
|
|
|
msleep(host->pdata->flags & TMIO_MMC_FAST_CLK_CHG ? 1 : 10);
|
|
|
|