summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorPatrick Turley <patrick.turley@freescale.com>2009-11-10 15:21:15 -0600
committerJustin Waters <justin.waters@timesys.com>2010-03-25 14:00:52 -0400
commit77ccae02e6ab4b80bf5f17eeba05c70c55f0355f (patch)
tree53e5d405b6a68cb4e9c1b519130a3e184aa24950 /arch
parent83e8321c833a40db6f715b340c331a88ff690ff8 (diff)
ENGR00116517 [MX233_BSP] Port ThreadX SDK NAND Flash device identification
Added the device identification and timing database. Adjusted the GPMI NAND Flash driver to use this information. Signed-off-by: Patrick Turley <patrick.turley@freescale.com>
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/mach-stmp378x/include/mach/regs-gpmi.h11
-rw-r--r--arch/arm/mach-stmp378x/stmp378x_devb.c2
-rw-r--r--arch/arm/plat-stmp3xxx/include/mach/gpmi.h7
3 files changed, 20 insertions, 0 deletions
diff --git a/arch/arm/mach-stmp378x/include/mach/regs-gpmi.h b/arch/arm/mach-stmp378x/include/mach/regs-gpmi.h
index 16b8e063a142..b53547f0b8e5 100644
--- a/arch/arm/mach-stmp378x/include/mach/regs-gpmi.h
+++ b/arch/arm/mach-stmp378x/include/mach/regs-gpmi.h
@@ -3,6 +3,7 @@
*
* Copyright 2008-2009 Freescale Semiconductor, Inc. All Rights Reserved.
* Copyright 2008 Embedded Alley Solutions, Inc All Rights Reserved.
+ * Copyright 2009 Freescale Semiconductor, Inc. All Rights Reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -211,8 +212,18 @@
#define BM_GPMI_CTRL1_CE1_SEL 0x00200000
#define BM_GPMI_CTRL1_CE0_SEL 0x00100000
#define BM_GPMI_CTRL1_GANGED_RDYBUSY 0x00080000
+#define BM_GPMI_CTRL1_GPMI_MODE 0x00000001
+#define BP_GPMI_CTRL1_GPMI_MODE 0
+#define BM_GPMI_CTRL1_ATA_IRQRDY_POLARITY 0x00000004
+#define BM_GPMI_CTRL1_DEV_RESET 0x00000008
+#define BM_GPMI_CTRL1_TIMEOUT_IRQ 0x00000200
+#define BM_GPMI_CTRL1_DEV_IRQ 0x00000400
+#define BM_GPMI_CTRL1_RDN_DELAY 0x0000F000
+#define BP_GPMI_CTRL1_RDN_DELAY 12
#define BM_GPMI_CTRL1_BCH_MODE 0x00040000
+#define BP_GPMI_CTRL1_DLL_ENABLE 17
#define BM_GPMI_CTRL1_DLL_ENABLE 0x00020000
+#define BP_GPMI_CTRL1_HALF_PERIOD 16
#define BM_GPMI_CTRL1_HALF_PERIOD 0x00010000
#define BP_GPMI_CTRL1_RDN_DELAY 12
#define BM_GPMI_CTRL1_RDN_DELAY 0x0000F000
diff --git a/arch/arm/mach-stmp378x/stmp378x_devb.c b/arch/arm/mach-stmp378x/stmp378x_devb.c
index abfd5163f5d9..56a97435f148 100644
--- a/arch/arm/mach-stmp378x/stmp378x_devb.c
+++ b/arch/arm/mach-stmp378x/stmp378x_devb.c
@@ -217,6 +217,8 @@ static const char *gpmi_partition_source_types[] = { "cmdlinepart", NULL };
static struct gpmi_platform_data gpmi_data = {
.io_uA = 70000,
+ .min_prop_delay_in_ns = 5,
+ .max_prop_delay_in_ns = 9,
.pinmux_handler = gpmi_pinmux_handler,
.boot_area_size_in_bytes = 20 * SZ_1M,
.partitions = 0,
diff --git a/arch/arm/plat-stmp3xxx/include/mach/gpmi.h b/arch/arm/plat-stmp3xxx/include/mach/gpmi.h
index c0cb85c13b82..21a7647fc8e4 100644
--- a/arch/arm/plat-stmp3xxx/include/mach/gpmi.h
+++ b/arch/arm/plat-stmp3xxx/include/mach/gpmi.h
@@ -16,6 +16,10 @@ extern void gpmi_pinmux_free(char *);
* that can't be expressed as resources.
*
* @io_uA: The current limit, in uA.
+ * @min_prop_delay_in_ns: Minimum propagation delay of GPMI signals to and
+ * from the NAND Flash device, in nanoseconds.
+ * @max_prop_delay_in_ns: Maximum propagation delay of GPMI signals to and
+ * from the NAND Flash device, in nanoseconds.
* @pinmux_handler: A pointer to a function the driver will call to
* request or release the pins it needs. Pass true
* to request pins, and false to release them.
@@ -49,6 +53,9 @@ struct gpmi_platform_data {
int io_uA;
+ unsigned min_prop_delay_in_ns;
+ unsigned max_prop_delay_in_ns;
+
int (*pinmux_handler)(bool request);
uint32_t boot_area_size_in_bytes;