* [U-Boot] [PATCH] fsl_esdhc: Fix esdhc disabled problem on some platforms
@ 2010-12-28 6:40 Chenhui Zhao
2010-12-28 15:54 ` Anton Vorontsov
0 siblings, 1 reply; 2+ messages in thread
From: Chenhui Zhao @ 2010-12-28 6:40 UTC (permalink / raw)
To: u-boot
Some platform's esdhc pins don't share with other function.
The eSDHC shouldn't be disabled, even if "esdhc" isn't defined
in hwconfig env variable.
Use CONFIG_FSL_ESDHC_PIN_MUX to fix this problem.
The problem was introduced by this commit:
commit b33433a63fe08c9e723ea15a7c7c7143bf527c6d
Author: Anton Vorontsov <avorontsov@ru.mvista.com>
Date: Wed Jun 10 00:25:29 2009 +0400
fsl_esdhc: Add device tree fixups
Signed-off-by: Chenhui Zhao <b26998@freescale.com>
Signed-off-by: Li Yang <leoli@freescale.com>
---
drivers/mmc/fsl_esdhc.c | 2 ++
include/configs/MPC837XEMDS.h | 1 +
include/configs/MPC837XERDB.h | 1 +
include/configs/MPC8569MDS.h | 1 +
4 files changed, 5 insertions(+), 0 deletions(-)
diff --git a/drivers/mmc/fsl_esdhc.c b/drivers/mmc/fsl_esdhc.c
index cd78714..4c8caa9 100644
--- a/drivers/mmc/fsl_esdhc.c
+++ b/drivers/mmc/fsl_esdhc.c
@@ -527,10 +527,12 @@ void fdt_fixup_esdhc(void *blob, bd_t *bd)
const char *compat = "fsl,esdhc";
const char *status = "okay";
+#ifdef CONFIG_FSL_ESDHC_PIN_MUX
if (!hwconfig("esdhc")) {
status = "disabled";
goto out;
}
+#endif
do_fixup_by_compat_u32(blob, compat, "clock-frequency",
gd->sdhc_clk, 1);
diff --git a/include/configs/MPC837XEMDS.h b/include/configs/MPC837XEMDS.h
index c237991..abccfd6 100644
--- a/include/configs/MPC837XEMDS.h
+++ b/include/configs/MPC837XEMDS.h
@@ -509,6 +509,7 @@ extern int board_pci_host_broken(void);
#ifdef CONFIG_MMC
#define CONFIG_FSL_ESDHC
+#define CONFIG_FSL_ESDHC_PIN_MUX
#define CONFIG_SYS_FSL_ESDHC_ADDR CONFIG_SYS_MPC83xx_ESDHC_ADDR
#define CONFIG_CMD_MMC
#define CONFIG_GENERIC_MMC
diff --git a/include/configs/MPC837XERDB.h b/include/configs/MPC837XERDB.h
index 385c7c3..ea3056b 100644
--- a/include/configs/MPC837XERDB.h
+++ b/include/configs/MPC837XERDB.h
@@ -517,6 +517,7 @@
#ifdef CONFIG_MMC
#define CONFIG_FSL_ESDHC
+#define CONFIG_FSL_ESDHC_PIN_MUX
#define CONFIG_SYS_FSL_ESDHC_ADDR CONFIG_SYS_MPC83xx_ESDHC_ADDR
#define CONFIG_CMD_MMC
#define CONFIG_GENERIC_MMC
diff --git a/include/configs/MPC8569MDS.h b/include/configs/MPC8569MDS.h
index 9620fd0..f4a3c2f 100644
--- a/include/configs/MPC8569MDS.h
+++ b/include/configs/MPC8569MDS.h
@@ -561,6 +561,7 @@ extern unsigned long get_clock_freq(void);
#ifdef CONFIG_MMC
#define CONFIG_FSL_ESDHC
+#define CONFIG_FSL_ESDHC_PIN_MUX
#define CONFIG_SYS_FSL_ESDHC_ADDR CONFIG_SYS_MPC85xx_ESDHC_ADDR
#define CONFIG_CMD_MMC
#define CONFIG_GENERIC_MMC
--
1.6.4.1
^ permalink raw reply related [flat|nested] 2+ messages in thread* [U-Boot] [PATCH] fsl_esdhc: Fix esdhc disabled problem on some platforms
2010-12-28 6:40 [U-Boot] [PATCH] fsl_esdhc: Fix esdhc disabled problem on some platforms Chenhui Zhao
@ 2010-12-28 15:54 ` Anton Vorontsov
0 siblings, 0 replies; 2+ messages in thread
From: Anton Vorontsov @ 2010-12-28 15:54 UTC (permalink / raw)
To: u-boot
On Tue, Dec 28, 2010 at 02:40:30PM +0800, Chenhui Zhao wrote:
> Some platform's esdhc pins don't share with other function.
> The eSDHC shouldn't be disabled, even if "esdhc" isn't defined
> in hwconfig env variable.
>
> Use CONFIG_FSL_ESDHC_PIN_MUX to fix this problem.
>
> The problem was introduced by this commit:
I would not say 'the problem was introduced'. ;-) Back in 2009
all platforms w/ eSDHC were using muxed eSDHC pins, so disabling
eSDHC was a sane choice.
Anyway, the patch looks mostly OK. One comment below though.
> commit b33433a63fe08c9e723ea15a7c7c7143bf527c6d
> Author: Anton Vorontsov <avorontsov@ru.mvista.com>
> Date: Wed Jun 10 00:25:29 2009 +0400
>
> fsl_esdhc: Add device tree fixups
>
> Signed-off-by: Chenhui Zhao <b26998@freescale.com>
> Signed-off-by: Li Yang <leoli@freescale.com>
> ---
> drivers/mmc/fsl_esdhc.c | 2 ++
> include/configs/MPC837XEMDS.h | 1 +
> include/configs/MPC837XERDB.h | 1 +
> include/configs/MPC8569MDS.h | 1 +
> 4 files changed, 5 insertions(+), 0 deletions(-)
>
> diff --git a/drivers/mmc/fsl_esdhc.c b/drivers/mmc/fsl_esdhc.c
> index cd78714..4c8caa9 100644
> --- a/drivers/mmc/fsl_esdhc.c
> +++ b/drivers/mmc/fsl_esdhc.c
> @@ -527,10 +527,12 @@ void fdt_fixup_esdhc(void *blob, bd_t *bd)
> const char *compat = "fsl,esdhc";
> const char *status = "okay";
>
> +#ifdef CONFIG_FSL_ESDHC_PIN_MUX
> if (!hwconfig("esdhc")) {
> status = "disabled";
> goto out;
Wouldn't gcc complain about unused "out" label?
> }
> +#endif
>
> do_fixup_by_compat_u32(blob, compat, "clock-frequency",
> gd->sdhc_clk, 1);
Thanks,
--
Anton Vorontsov
Email: cbouatmailru at gmail.com
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2010-12-28 15:54 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-12-28 6:40 [U-Boot] [PATCH] fsl_esdhc: Fix esdhc disabled problem on some platforms Chenhui Zhao
2010-12-28 15:54 ` Anton Vorontsov
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox