diff options
author | Sekhar Nori <nsekhar@ti.com> | 2010-08-09 06:16:40 -0400 |
---|---|---|
committer | Kevin Hilman <khilman@deeprootsystems.com> | 2010-09-24 10:40:27 -0400 |
commit | 0b3fc7bb88243371a2bd4a4990fb62a0b722efe7 (patch) | |
tree | 45f6de584f5fca7030f3d4ed338e4df83c86ee3a /arch | |
parent | 18a8505cc130448c8c0a29a46573b46697bf0e42 (diff) |
davinci: dm6467t evm: setup NAND flash timing
Setup NAND flash timing on DM6467T EVM.
Without the timing setup, the NAND flash on DM6467T
RevC EVM reports a number of random bad blocks because
of read errors.
Also, with this, copying a 100M file on RevB EVM takes
~35 sec against 1 minute 30 seconds earlier.
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
Acked-by: Kevin Hilman <khilman@deeprootsystems.com>
Signed-off-by: Kevin Hilman <khilman@deeprootsystems.com>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/mach-davinci/board-dm646x-evm.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/arch/arm/mach-davinci/board-dm646x-evm.c b/arch/arm/mach-davinci/board-dm646x-evm.c index 4502f346b2b0..5a29955b2f5c 100644 --- a/arch/arm/mach-davinci/board-dm646x-evm.c +++ b/arch/arm/mach-davinci/board-dm646x-evm.c | |||
@@ -42,6 +42,7 @@ | |||
42 | #include <mach/nand.h> | 42 | #include <mach/nand.h> |
43 | #include <mach/clock.h> | 43 | #include <mach/clock.h> |
44 | #include <mach/cdce949.h> | 44 | #include <mach/cdce949.h> |
45 | #include <mach/aemif.h> | ||
45 | 46 | ||
46 | #include "clock.h" | 47 | #include "clock.h" |
47 | 48 | ||
@@ -71,6 +72,16 @@ static struct mtd_partition davinci_nand_partitions[] = { | |||
71 | } | 72 | } |
72 | }; | 73 | }; |
73 | 74 | ||
75 | static struct davinci_aemif_timing dm6467tevm_nandflash_timing = { | ||
76 | .wsetup = 29, | ||
77 | .wstrobe = 24, | ||
78 | .whold = 14, | ||
79 | .rsetup = 19, | ||
80 | .rstrobe = 33, | ||
81 | .rhold = 0, | ||
82 | .ta = 29, | ||
83 | }; | ||
84 | |||
74 | static struct davinci_nand_pdata davinci_nand_data = { | 85 | static struct davinci_nand_pdata davinci_nand_data = { |
75 | .mask_cle = 0x80000, | 86 | .mask_cle = 0x80000, |
76 | .mask_ale = 0x40000, | 87 | .mask_ale = 0x40000, |
@@ -763,6 +774,9 @@ static __init void evm_init(void) | |||
763 | dm646x_init_mcasp0(&dm646x_evm_snd_data[0]); | 774 | dm646x_init_mcasp0(&dm646x_evm_snd_data[0]); |
764 | dm646x_init_mcasp1(&dm646x_evm_snd_data[1]); | 775 | dm646x_init_mcasp1(&dm646x_evm_snd_data[1]); |
765 | 776 | ||
777 | if (machine_is_davinci_dm6467tevm()) | ||
778 | davinci_nand_data.timing = &dm6467tevm_nandflash_timing; | ||
779 | |||
766 | platform_device_register(&davinci_nand_device); | 780 | platform_device_register(&davinci_nand_device); |
767 | 781 | ||
768 | dm646x_init_edma(dm646x_edma_rsv); | 782 | dm646x_init_edma(dm646x_edma_rsv); |