summaryrefslogtreecommitdiff
path: root/drivers/mmc/exynos_dw_mmc.c
diff options
context:
space:
mode:
authorTom Rini <trini@ti.com>2013-12-10 09:33:13 -0500
committerTom Rini <trini@ti.com>2013-12-10 09:33:13 -0500
commite1e3de79515b95712a41f52c86a0181530f2fc03 (patch)
treee41ab8c6797adcfde2f468d8ced1768c61f66bda /drivers/mmc/exynos_dw_mmc.c
parent76a8265b4f54d1b9cd2b70efb46dcdeaa5d20bfb (diff)
parentadebb98ba12008021e75a2881deb424db0184770 (diff)
downloadu-boot-imx-e1e3de79515b95712a41f52c86a0181530f2fc03.zip
u-boot-imx-e1e3de79515b95712a41f52c86a0181530f2fc03.tar.gz
u-boot-imx-e1e3de79515b95712a41f52c86a0181530f2fc03.tar.bz2
Merge branch 'master' of git://git.denx.de/u-boot-mmc
Diffstat (limited to 'drivers/mmc/exynos_dw_mmc.c')
-rw-r--r--drivers/mmc/exynos_dw_mmc.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/drivers/mmc/exynos_dw_mmc.c b/drivers/mmc/exynos_dw_mmc.c
index a0f1511..b3e5c5e 100644
--- a/drivers/mmc/exynos_dw_mmc.c
+++ b/drivers/mmc/exynos_dw_mmc.c
@@ -34,6 +34,19 @@ unsigned int exynos_dwmci_get_clk(int dev_index)
return get_mmc_clk(dev_index);
}
+static void exynos_dwmci_board_init(struct dwmci_host *host)
+{
+ if (host->quirks & DWMCI_QUIRK_DISABLE_SMU) {
+ dwmci_writel(host, EMMCP_MPSBEGIN0, 0);
+ dwmci_writel(host, EMMCP_SEND0, 0);
+ dwmci_writel(host, EMMCP_CTRL0,
+ MPSCTRL_SECURE_READ_BIT |
+ MPSCTRL_SECURE_WRITE_BIT |
+ MPSCTRL_NON_SECURE_READ_BIT |
+ MPSCTRL_NON_SECURE_WRITE_BIT | MPSCTRL_VALID);
+ }
+}
+
/*
* This function adds the mmc channel to be registered with mmc core.
* index - mmc channel number.
@@ -65,6 +78,7 @@ int exynos_dwmci_add_port(int index, u32 regbase, int bus_width, u32 clksel)
#ifdef CONFIG_EXYNOS5420
host->quirks = DWMCI_QUIRK_DISABLE_SMU;
#endif
+ host->board_init = exynos_dwmci_board_init;
if (clksel) {
host->clksel_val = clksel;