mmc: sdhci-s3c: add default controller configuration
The default controller configuration which was previously setup by platform helper functions is moved into the driver. Cc: Ben Dooks <ben-linux@fluff.org> Signed-off-by: Thomas Abraham <thomas.abraham@linaro.org> Acked-by: Kukjin Kim <kgene.kim@samsung.com> Signed-off-by: Chris Ball <cjb@laptop.org>
This commit is contained in:
parent
041beb1d53
commit
6fe47179a0
|
@ -203,17 +203,23 @@ static void sdhci_s3c_set_clock(struct sdhci_host *host, unsigned int clock)
|
||||||
writel(ctrl, host->ioaddr + S3C_SDHCI_CONTROL2);
|
writel(ctrl, host->ioaddr + S3C_SDHCI_CONTROL2);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* reconfigure the hardware for new clock rate */
|
/* reprogram default hardware configuration */
|
||||||
|
writel(S3C64XX_SDHCI_CONTROL4_DRIVE_9mA,
|
||||||
|
host->ioaddr + S3C64XX_SDHCI_CONTROL4);
|
||||||
|
|
||||||
{
|
ctrl = readl(host->ioaddr + S3C_SDHCI_CONTROL2);
|
||||||
struct mmc_ios ios;
|
ctrl |= (S3C64XX_SDHCI_CTRL2_ENSTAASYNCCLR |
|
||||||
|
S3C64XX_SDHCI_CTRL2_ENCMDCNFMSK |
|
||||||
|
S3C_SDHCI_CTRL2_ENFBCLKRX |
|
||||||
|
S3C_SDHCI_CTRL2_DFCNT_NONE |
|
||||||
|
S3C_SDHCI_CTRL2_ENCLKOUTHOLD);
|
||||||
|
writel(ctrl, host->ioaddr + S3C_SDHCI_CONTROL2);
|
||||||
|
|
||||||
ios.clock = clock;
|
/* reconfigure the controller for new clock rate */
|
||||||
|
ctrl = (S3C_SDHCI_CTRL3_FCSEL1 | S3C_SDHCI_CTRL3_FCSEL0);
|
||||||
if (ourhost->pdata->cfg_card)
|
if (clock < 25 * 1000000)
|
||||||
(ourhost->pdata->cfg_card)(ourhost->pdev, host->ioaddr,
|
ctrl |= (S3C_SDHCI_CTRL3_FCSEL3 | S3C_SDHCI_CTRL3_FCSEL2);
|
||||||
&ios, NULL);
|
writel(ctrl, host->ioaddr + S3C_SDHCI_CONTROL3);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in New Issue