aboutsummaryrefslogtreecommitdiffstats
path: root/package/boot/uboot-layerscape/patches/0033-mmc-fsl_esdhc-support-two-esdhc-host-controllers.patch
blob: 9cc171cbc5b4cc526a8837737ba5af3cb4d98a3b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
From 2daf451df50209e7626c2bf424d50ff23055784a Mon Sep 17 00:00:00 2001
From: Yangbo Lu <yangbo.lu@nxp.com>
Date: Wed, 18 May 2016 10:52:38 +0800
Subject: [PATCH 33/93] mmc: fsl_esdhc: support two esdhc host controllers

This patch is to support two esdhc host controllers with
the macro CONFIG_FSL_ESDHC_TWO_CONTROLLERS_SUPPORT.

Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
---
 drivers/mmc/fsl_esdhc.c |   15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/drivers/mmc/fsl_esdhc.c b/drivers/mmc/fsl_esdhc.c
index 7cc61a0..cacf879 100644
--- a/drivers/mmc/fsl_esdhc.c
+++ b/drivers/mmc/fsl_esdhc.c
@@ -748,11 +748,26 @@ int fsl_esdhc_initialize(bd_t *bis, struct fsl_esdhc_cfg *cfg)
 int fsl_esdhc_mmc_init(bd_t *bis)
 {
 	struct fsl_esdhc_cfg *cfg;
+#ifdef CONFIG_FSL_ESDHC_TWO_CONTROLLERS_SUPPORT
+	struct fsl_esdhc_cfg *cfg_1;
+#endif
 
 	cfg = calloc(sizeof(struct fsl_esdhc_cfg), 1);
 	cfg->esdhc_base = CONFIG_SYS_FSL_ESDHC_ADDR;
 	cfg->sdhc_clk = gd->arch.sdhc_clk;
+#ifdef CONFIG_FSL_ESDHC_TWO_CONTROLLERS_SUPPORT
+	cfg_1 = calloc(sizeof(struct fsl_esdhc_cfg), 1);
+	cfg_1->esdhc_base = CONFIG_SYS_FSL_ESDHC_1_ADDR;
+	cfg_1->sdhc_clk = gd->arch.sdhc_clk;
+
+	if (fsl_esdhc_initialize(bis, cfg))
+		return -1;
+	if (fsl_esdhc_initialize(bis, cfg_1))
+		return -1;
+	return 0;
+#else
 	return fsl_esdhc_initialize(bis, cfg);
+#endif
 }
 
 #ifdef CONFIG_FSL_ESDHC_ADAPTER_IDENT
-- 
1.7.9.5