summaryrefslogtreecommitdiffstats
path: root/include/linux
diff options
context:
space:
mode:
authorWolfgang Grandegger <wg@grandegger.com>2009-02-11 18:38:23 +0100
committerScott Wood <scottwood@freescale.com>2009-03-23 15:53:40 -0500
commit33846df28fa1f4cf96a96c18142d48d813caa892 (patch)
tree12db31d9d2321af9c1a4e728eb070d4b4c372e1c /include/linux
parent06e9f7df054d26d7f49c56bf9a6844b193ad6313 (diff)
downloadbootable_bootloader_goldelico_gta04-33846df28fa1f4cf96a96c18142d48d813caa892.zip
bootable_bootloader_goldelico_gta04-33846df28fa1f4cf96a96c18142d48d813caa892.tar.gz
bootable_bootloader_goldelico_gta04-33846df28fa1f4cf96a96c18142d48d813caa892.tar.bz2
Add wait flags to support board/chip specific delays
The NAND flash on the TQM8548_BE modules requires a short delay after running the UPM pattern like the MPC8360ERDK board does. The TQM8548_BE requires a further short delay after writing out a buffer. Normally the R/B pin should be checked, but it's not connected on the TQM8548_BE. The corresponding Linux FSL UPM driver uses similar delay points at the same locations. To manage these extra delays in a more general way, I introduced the "wait_flags" field allowing the board-specific driver to specify various types of extra delay. Signed-off-by: Wolfgang Grandegger <wg@grandegger.com> Signed-off-by: Scott Wood <scottwood@freescale.com>
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/mtd/fsl_upm.h6
1 files changed, 5 insertions, 1 deletions
diff --git a/include/linux/mtd/fsl_upm.h b/include/linux/mtd/fsl_upm.h
index 10f5ddd..5d7156f 100644
--- a/include/linux/mtd/fsl_upm.h
+++ b/include/linux/mtd/fsl_upm.h
@@ -15,6 +15,10 @@
#include <linux/mtd/nand.h>
+#define FSL_UPM_WAIT_RUN_PATTERN 0x1
+#define FSL_UPM_WAIT_WRITE_BYTE 0x2
+#define FSL_UPM_WAIT_WRITE_BUFFER 0x4
+
struct fsl_upm {
void __iomem *mdr;
void __iomem *mxmr;
@@ -29,7 +33,7 @@ struct fsl_upm_nand {
int upm_cmd_offset;
int upm_addr_offset;
int upm_mar_chip_offset;
- int wait_pattern;
+ int wait_flags;
int (*dev_ready)(int chip_nr);
int chip_delay;
int chip_offset;