summaryrefslogtreecommitdiff
path: root/board
diff options
context:
space:
mode:
authorSudhakar Rajashekhara <sudhakar.raj@ti.com>2010-01-15 13:48:40 +0530
committerSudhakar Rajashekhara <sudhakar.raj@ti.com>2010-01-15 14:57:11 +0530
commitf5736b879889ed798bded7fc24fecc5d4520b42b (patch)
tree1ba830b16af8b5bd4961fed334b2af05072229fc /board
parenta3294b69bb1aa22a56839efdd57e38a5d9957b2c (diff)
da830: Add support for NAND boot mode
Signed-off-by: Sudhakar Rajashekhara <sudhakar.raj@ti.com>
Diffstat (limited to 'board')
-rw-r--r--board/davinci/da830evm/da830evm.c64
1 files changed, 64 insertions, 0 deletions
diff --git a/board/davinci/da830evm/da830evm.c b/board/davinci/da830evm/da830evm.c
index f8529b736d..97d2d9764b 100644
--- a/board/davinci/da830evm/da830evm.c
+++ b/board/davinci/da830evm/da830evm.c
@@ -36,6 +36,8 @@
#include <i2c.h>
#include <asm/arch/hardware.h>
#include <asm/io.h>
+#include <nand.h>
+#include <asm/arch/nand_defs.h>
#include "../common/misc.h"
DECLARE_GLOBAL_DATA_PTR;
@@ -80,6 +82,54 @@ const struct pinmux_config i2c_pins[] = {
{ pinmux[8], 2, 4 }
};
+#ifdef CONFIG_USE_NAND
+const struct pinmux_config aemif_pins[] = {
+ { pinmux[13], 1, 6 },
+ { pinmux[13], 1, 7 },
+ { pinmux[14], 1, 0 },
+ { pinmux[14], 1, 1 },
+ { pinmux[14], 1, 2 },
+ { pinmux[14], 1, 3 },
+ { pinmux[14], 1, 4 },
+ { pinmux[14], 1, 5 },
+ { pinmux[14], 1, 6 },
+ { pinmux[14], 1, 7 },
+ { pinmux[15], 1, 0 },
+ { pinmux[15], 1, 1 },
+ { pinmux[15], 1, 2 },
+ { pinmux[15], 1, 3 },
+ { pinmux[15], 1, 4 },
+ { pinmux[15], 1, 5 },
+ { pinmux[15], 1, 6 },
+ { pinmux[15], 1, 7 },
+ { pinmux[16], 1, 0 },
+ { pinmux[16], 1, 1 },
+ { pinmux[16], 1, 2 },
+ { pinmux[16], 1, 3 },
+ { pinmux[16], 1, 4 },
+ { pinmux[16], 1, 5 },
+ { pinmux[16], 1, 6 },
+ { pinmux[16], 1, 7 },
+ { pinmux[17], 1, 0 },
+ { pinmux[17], 1, 1 },
+ { pinmux[17], 1, 2 },
+ { pinmux[17], 1, 3 },
+ { pinmux[17], 1, 4 },
+ { pinmux[17], 1, 5 },
+ { pinmux[17], 1, 6 },
+ { pinmux[17], 1, 7 },
+ { pinmux[18], 1, 0 },
+ { pinmux[18], 1, 1 },
+ { pinmux[18], 1, 2 },
+ { pinmux[18], 1, 3 },
+ { pinmux[18], 1, 4 },
+ { pinmux[18], 1, 5 },
+ { pinmux[18], 1, 6 },
+ { pinmux[18], 1, 7 },
+ { pinmux[10], 1, 0 }
+};
+#endif
+
int board_init(void)
{
#ifndef CONFIG_USE_IRQ
@@ -138,6 +188,11 @@ int board_init(void)
return 1;
#endif
+#ifdef CONFIG_USE_NAND
+ if (davinci_configure_pin_mux(aemif_pins, ARRAY_SIZE(aemif_pins)) != 0)
+ return 1;
+#endif
+
/* enable the console UART */
writel((DAVINCI_UART_PWREMU_MGMT_FREE | DAVINCI_UART_PWREMU_MGMT_URRST |
DAVINCI_UART_PWREMU_MGMT_UTRST),
@@ -161,3 +216,12 @@ int misc_init_r(void)
printf("Ethernet switch start failed!\n");
}
}
+
+#ifdef CONFIG_NAND_DAVINCI
+int board_nand_init(struct nand_chip *nand)
+{
+ davinci_nand_init(nand);
+
+ return 0;
+}
+#endif