Hello.

Sekhar Nori wrote:

On the DA830, AEMIF and MMC/SD pins are shared. On the EVM, when
the mux_mode signal is low MMC/SD works and when mux_mode signal
is high, NAND works.

When MMC/SD driver is configured in the kernel, do not let NAND
get registered and drive mux_mode high. Instead, print a warning
for user to understand why the platform device for NAND did not
get registered.

Signed-off-by: Sekhar Nori <[email protected]>

[...]

diff --git a/arch/arm/mach-davinci/board-da830-evm.c 
b/arch/arm/mach-davinci/board-da830-evm.c
index 6de058f..4fb0447 100644
--- a/arch/arm/mach-davinci/board-da830-evm.c
+++ b/arch/arm/mach-davinci/board-da830-evm.c
@@ -253,6 +253,12 @@ static const short da830_evm_emif25_pins[] = {
        -1
 };
+#if defined(CONFIG_MMC_DAVINCI) || defined(CONFIG_MMC_DAVINCI_MODULE)
+#define HAS_MMC        1
+#else
+#define HAS_MMC        0
+#endif

   This is not needed. Why not just use #ifdef's directly?

+
 #ifdef CONFIG_DA830_UI_NAND
 static struct mtd_partition da830_evm_nand_partitions[] = {
        /* bootloader (U-Boot, etc) in first sector */
@@ -348,6 +354,13 @@ static inline void da830_evm_init_nand(int mux_mode)
 {
        int ret;
+ if (HAS_MMC) {
+               pr_warning("WARNING: both MMC/SD and NAND are "
+                               "enabled, but they share AEMIF pins.\n"
+                               "\tDisable MMC/SD for NAND support.\n");
+               return;
+       }
+
        ret = da8xx_pinmux_setup(da830_evm_emif25_pins);
        if (ret)
                pr_warning("da830_evm_init: emif25 mux setup failed: %d\n",

WBR, Sergei

_______________________________________________
Davinci-linux-open-source mailing list
[email protected]
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source

Reply via email to