diff options
author | Wolfgang Grandegger <wg@grandegger.com> | 2009-02-11 18:38:22 +0100 |
---|---|---|
committer | Scott Wood <scottwood@freescale.com> | 2009-03-23 15:53:39 -0500 |
commit | 06e9f7df054d26d7f49c56bf9a6844b193ad6313 (patch) | |
tree | 8ceb149af283db4061e695415e0f1d4f3abe0df2 | |
parent | e93c1c169d49eda7babad9c781f541e2e34f0ff0 (diff) | |
download | u-boot-imx-06e9f7df054d26d7f49c56bf9a6844b193ad6313.zip u-boot-imx-06e9f7df054d26d7f49c56bf9a6844b193ad6313.tar.gz u-boot-imx-06e9f7df054d26d7f49c56bf9a6844b193ad6313.tar.bz2 |
Add support for TQM-specific chip select logic to FSL-UPM
For the NAND chips on the TQM8548 modules, a special chip-select logic is
used. It uses dedicated address lines to be set via UPM machine address
register (mar). This patch adds such support to the FSL-UPM driver.
Signed-off-by: Wolfgang Grandegger <wg@grandegger.com>
Signed-off-by: Scott Wood <scottwood@freescale.com>
-rw-r--r-- | drivers/mtd/nand/fsl_upm.c | 5 | ||||
-rw-r--r-- | include/linux/mtd/fsl_upm.h | 1 |
2 files changed, 5 insertions, 1 deletions
diff --git a/drivers/mtd/nand/fsl_upm.c b/drivers/mtd/nand/fsl_upm.c index 73abbba..e7e746b 100644 --- a/drivers/mtd/nand/fsl_upm.c +++ b/drivers/mtd/nand/fsl_upm.c @@ -90,8 +90,11 @@ static void fun_cmd_ctrl(struct mtd_info *mtd, int cmd, unsigned int ctrl) mar = cmd << (32 - fun->width); io_addr = fun->upm.io_addr; #if CONFIG_SYS_NAND_MAX_CHIPS > 1 - if (fun->chip_nr > 0) + if (fun->chip_nr > 0) { io_addr += fun->chip_offset * fun->chip_nr; + if (fun->upm_mar_chip_offset) + mar |= fun->upm_mar_chip_offset * fun->chip_nr; + } #endif fsl_upm_run_pattern(&fun->upm, fun->width, io_addr, mar); diff --git a/include/linux/mtd/fsl_upm.h b/include/linux/mtd/fsl_upm.h index ada11c1..10f5ddd 100644 --- a/include/linux/mtd/fsl_upm.h +++ b/include/linux/mtd/fsl_upm.h @@ -28,6 +28,7 @@ struct fsl_upm_nand { int width; int upm_cmd_offset; int upm_addr_offset; + int upm_mar_chip_offset; int wait_pattern; int (*dev_ready)(int chip_nr); int chip_delay; |