mtd: nand: omap_elm: use macros for register definitions

This patch adds macros for following parameters of ELM Hardware engine
 - ELM_MAX_CHANNELS: ELM can process 8 data streams simultaneously
 - ELM_MAX_ERRORS: ELM can detect upto 16 ECC error when using BCH16 scheme

Signed-off-by: Pekon Gupta <pekon@ti.com>
Reviewed-by: Stefan Roese <sr@denx.de>
This commit is contained in:
pekon gupta 2014-04-11 12:55:31 +05:30 committed by Tom Rini
parent 41bbe4dd49
commit 0439d752c5

View file

@ -24,6 +24,9 @@
#define ELM_LOCATION_STATUS_ECC_CORRECTABLE_MASK (0x100) #define ELM_LOCATION_STATUS_ECC_CORRECTABLE_MASK (0x100)
#define ELM_LOCATION_STATUS_ECC_NB_ERRORS_MASK (0x1F) #define ELM_LOCATION_STATUS_ECC_NB_ERRORS_MASK (0x1F)
#define ELM_MAX_CHANNELS 8
#define ELM_MAX_ERROR_COUNT 16
#ifndef __ASSEMBLY__ #ifndef __ASSEMBLY__
enum bch_level { enum bch_level {
@ -43,7 +46,7 @@ struct syndrome {
struct location { struct location {
u32 location_status; /* 0x800 */ u32 location_status; /* 0x800 */
u8 res1[124]; /* 0x804 */ u8 res1[124]; /* 0x804 */
u32 error_location_x[16]; /* 0x880.... */ u32 error_location_x[ELM_MAX_ERROR_COUNT]; /* 0x880, 0x980, .. */
u8 res2[64]; /* 0x8c0 */ u8 res2[64]; /* 0x8c0 */
}; };
@ -63,9 +66,9 @@ struct elm {
u8 res2[92]; /* 0x024 */ u8 res2[92]; /* 0x024 */
u32 page_ctrl; /* 0x080 */ u32 page_ctrl; /* 0x080 */
u8 res3[892]; /* 0x084 */ u8 res3[892]; /* 0x084 */
struct syndrome syndrome_fragments[8]; /* 0x400 */ struct syndrome syndrome_fragments[ELM_MAX_CHANNELS]; /* 0x400,0x420 */
u8 res4[512]; /* 0x600 */ u8 res4[512]; /* 0x600 */
struct location error_location[8]; /* 0x800 */ struct location error_location[ELM_MAX_CHANNELS]; /* 0x800,0x900 ... */
}; };
int elm_check_error(u8 *syndrome, enum bch_level bch_type, u32 *error_count, int elm_check_error(u8 *syndrome, enum bch_level bch_type, u32 *error_count,