summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorSandeep Paulraj <s-paulraj@ti.com>2009-04-11 11:41:59 +0530
committerJustin Waters <justin.waters@timesys.com>2009-09-09 14:03:24 -0400
commitf8a9d21c544a872f8890c6458ddbe8601359785e (patch)
treefa91f36838abfaae9fe1d64b908a1c31df8eaf39 /include
parent46a109d456aae2bccb21e615276bc1340dba7e99 (diff)
U-Boot: DA830: Add NAND 4-bit ECC support
Diffstat (limited to 'include')
-rw-r--r--include/asm-arm/arch-da8xx/emif_defs.h10
-rw-r--r--include/configs/da830_evm.h4
-rw-r--r--include/linux/mtd/nand.h6
3 files changed, 17 insertions, 3 deletions
diff --git a/include/asm-arm/arch-da8xx/emif_defs.h b/include/asm-arm/arch-da8xx/emif_defs.h
index 646fc77469..c91e30c8fc 100644
--- a/include/asm-arm/arch-da8xx/emif_defs.h
+++ b/include/asm-arm/arch-da8xx/emif_defs.h
@@ -55,6 +55,16 @@ typedef struct {
dv_reg NANDF2ECC;
dv_reg NANDF3ECC;
dv_reg NANDF4ECC;
+ u_int8_t RSVD2[60];
+ dv_reg NAND4BITECCLOAD;
+ dv_reg NAND4BITECC1;
+ dv_reg NAND4BITECC2;
+ dv_reg NAND4BITECC3;
+ dv_reg NAND4BITECC4;
+ dv_reg NANDERRADD1;
+ dv_reg NANDERRADD2;
+ dv_reg NANDERRVAL1;
+ dv_reg NANDERRVAL2;
} emif_registers;
typedef emif_registers *emifregs;
diff --git a/include/configs/da830_evm.h b/include/configs/da830_evm.h
index 1e6b94adfb..c4cbe9d58d 100644
--- a/include/configs/da830_evm.h
+++ b/include/configs/da830_evm.h
@@ -128,7 +128,9 @@
#define CONFIG_SYS_NAND_BASE DAVINCI_ASYNC_EMIF_DATA_CE3_BASE
#define CONFIG_CLE_MASK 0x10
#define CONFIG_ALE_MASK 0x8
-#define CONFIG_SYS_NAND_HW_ECC
+#undef CONFIG_SYS_NAND_HW_ECC
+#define CONFIG_SYS_NAND_4BIT_HW_ECC
+#define CFG_DAVINCI_STD_NAND_LAYOUT
#define CONFIG_SYS_NAND_LARGEPAGE
/* Max number of NAND devices */
#define CONFIG_SYS_MAX_NAND_DEVICE 1
diff --git a/include/linux/mtd/nand.h b/include/linux/mtd/nand.h
index 59e64dcb7a..0404b0961a 100644
--- a/include/linux/mtd/nand.h
+++ b/include/linux/mtd/nand.h
@@ -214,6 +214,8 @@ struct page_layout_item {
#define NAND_USE_FLASH_BBT 0x00010000
/* This option skips the bbt scan during initialization. */
#define NAND_SKIP_BBTSCAN 0x00020000
+/* This option uses the bbt method with OOB data adjacent to the data */
+#define NAND_USE_DATA_ADJACENT_OOB 0x00080000
/* This option is defined if the board driver allocates its own buffers
(e.g. because it needs them DMA-coherent */
#define NAND_OWN_BUFFERS 0x00040000
@@ -285,13 +287,13 @@ struct nand_ecc_ctrl {
uint8_t *calc_ecc);
int (*read_page_raw)(struct mtd_info *mtd,
struct nand_chip *chip,
- uint8_t *buf);
+ uint8_t *buf, int page);
void (*write_page_raw)(struct mtd_info *mtd,
struct nand_chip *chip,
const uint8_t *buf);
int (*read_page)(struct mtd_info *mtd,
struct nand_chip *chip,
- uint8_t *buf);
+ uint8_t *buf, int page);
int (*read_subpage)(struct mtd_info *mtd,
struct nand_chip *chip,
uint32_t offs, uint32_t len,