aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm
diff options
context:
space:
mode:
authorAlberto Panizzo <maramaopercheseimorto@gmail.com>2010-03-23 14:49:35 -0400
committerSascha Hauer <s.hauer@pengutronix.de>2010-03-25 03:43:03 -0400
commita1b67b957ea3b9138ed8239796cb48d8b1bf66b0 (patch)
tree8c72347ea0f570bd6486adf745c6f2075cd16331 /arch/arm
parent11a332adfeacee2634f73ad21b55aad5cc7fd54a (diff)
MXC: mach-mx31_3ds: Add support for on board NAND Flash.
Since the using of Bad Block Table is not constantly a good behave I had made it configurable. Signed-off-by: Alberto Panizzo <maramaopercheseimorto@gmail.com> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'arch/arm')
-rw-r--r--arch/arm/mach-mx3/Kconfig9
-rw-r--r--arch/arm/mach-mx3/mach-mx31_3ds.c13
2 files changed, 22 insertions, 0 deletions
diff --git a/arch/arm/mach-mx3/Kconfig b/arch/arm/mach-mx3/Kconfig
index 3872af1cf2c..9a2911e004a 100644
--- a/arch/arm/mach-mx3/Kconfig
+++ b/arch/arm/mach-mx3/Kconfig
@@ -62,6 +62,15 @@ config MACH_MX31_3DS
62 Include support for MX31PDK (3DS) platform. This includes specific 62 Include support for MX31PDK (3DS) platform. This includes specific
63 configurations for the board and its peripherals. 63 configurations for the board and its peripherals.
64 64
65config MACH_MX31_3DS_MXC_NAND_USE_BBT
66 bool "Make the MXC NAND driver use the in flash Bad Block Table"
67 depends on MACH_MX31_3DS
68 depends on MTD_NAND_MXC
69 help
70 Enable this if you want that the MXC NAND driver uses the in flash
71 Bad Block Table to know what blocks are bad instead of scanning the
72 entire flash looking for bad block markers.
73
65config MACH_MX31MOBOARD 74config MACH_MX31MOBOARD
66 bool "Support mx31moboard platforms (EPFL Mobots group)" 75 bool "Support mx31moboard platforms (EPFL Mobots group)"
67 select ARCH_MX31 76 select ARCH_MX31
diff --git a/arch/arm/mach-mx3/mach-mx31_3ds.c b/arch/arm/mach-mx3/mach-mx31_3ds.c
index 4a94c3c4948..bf1f54a31c4 100644
--- a/arch/arm/mach-mx3/mach-mx31_3ds.c
+++ b/arch/arm/mach-mx3/mach-mx31_3ds.c
@@ -34,6 +34,7 @@
34#include <mach/board-mx31_3ds.h> 34#include <mach/board-mx31_3ds.h>
35#include <mach/imx-uart.h> 35#include <mach/imx-uart.h>
36#include <mach/iomux-mx3.h> 36#include <mach/iomux-mx3.h>
37#include <mach/mxc_nand.h>
37#include "devices.h" 38#include "devices.h"
38 39
39/*! 40/*!
@@ -53,6 +54,17 @@ static int mx31_3ds_pins[] = {
53 IOMUX_MODE(MX31_PIN_GPIO1_1, IOMUX_CONFIG_GPIO), 54 IOMUX_MODE(MX31_PIN_GPIO1_1, IOMUX_CONFIG_GPIO),
54}; 55};
55 56
57/*
58 * NAND Flash
59 */
60static struct mxc_nand_platform_data imx31_3ds_nand_flash_pdata = {
61 .width = 1,
62 .hw_ecc = 1,
63#ifdef MACH_MX31_3DS_MXC_NAND_USE_BBT
64 .flash_bbt = 1,
65#endif
66};
67
56static struct imxuart_platform_data uart_pdata = { 68static struct imxuart_platform_data uart_pdata = {
57 .flags = IMXUART_HAVE_RTSCTS, 69 .flags = IMXUART_HAVE_RTSCTS,
58}; 70};
@@ -236,6 +248,7 @@ static void __init mxc_board_init(void)
236 "mx31_3ds"); 248 "mx31_3ds");
237 249
238 mxc_register_device(&mxc_uart_device0, &uart_pdata); 250 mxc_register_device(&mxc_uart_device0, &uart_pdata);
251 mxc_register_device(&mxc_nand_device, &imx31_3ds_nand_flash_pdata);
239 252
240 if (!mx31_3ds_init_expio()) 253 if (!mx31_3ds_init_expio())
241 platform_device_register(&smsc911x_device); 254 platform_device_register(&smsc911x_device);