summaryrefslogtreecommitdiffstats
path: root/drivers/mmc/exynos_dw_mmc.c
diff options
context:
space:
mode:
authorLukasz Majewski <lukma@denx.de>2018-08-01 14:48:59 +0200
committerMinkyu Kang <mk7.kang@samsung.com>2018-08-06 10:53:53 +0900
commit7c350a2a0fe52264d5aa55b9f7823c78dbb222d9 (patch)
tree2a0a27783223b981adc8d26f54ec725d91de800b /drivers/mmc/exynos_dw_mmc.c
parent54a1352a0d35914720924ecdfa09bb7f54e0526e (diff)
downloadu-boot-7c350a2a0fe52264d5aa55b9f7823c78dbb222d9.tar.gz
u-boot-7c350a2a0fe52264d5aa55b9f7823c78dbb222d9.tar.xz
u-boot-7c350a2a0fe52264d5aa55b9f7823c78dbb222d9.zip
ARM: Odroid XU3: Fix the dwmci_exynos *priv data assignment for DM_MMC (sdr_timing)
By convention for DM_MMC the host->priv is used to store struct udevice *dev pointer. Unfortunately, the legacy Exynos DW MMC code uses this field to store pointer to dwmci_exynos_priv_data struct Hence, we do need to get data in other way - namely by using container_of when host pointer is present. In this way the sdr_timing data is properly accessed. Signed-off-by: Lukasz Majewski <lukma@denx.de> Tested-by: Anand Moon <linux.amoon@gmail.com> Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
Diffstat (limited to 'drivers/mmc/exynos_dw_mmc.c')
-rw-r--r--drivers/mmc/exynos_dw_mmc.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/mmc/exynos_dw_mmc.c b/drivers/mmc/exynos_dw_mmc.c
index 49c4f76348..cd0fa4c634 100644
--- a/drivers/mmc/exynos_dw_mmc.c
+++ b/drivers/mmc/exynos_dw_mmc.c
@@ -46,8 +46,12 @@ struct dwmci_exynos_priv_data {
*/
static void exynos_dwmci_clksel(struct dwmci_host *host)
{
+#ifdef CONFIG_DM_MMC
+ struct dwmci_exynos_priv_data *priv =
+ container_of(host, struct dwmci_exynos_priv_data, host);
+#else
struct dwmci_exynos_priv_data *priv = host->priv;
-
+#endif
dwmci_writel(host, DWMCI_CLKSEL, priv->sdr_timing);
}