diff options
author | Nicolas Ferre <nicolas.ferre@atmel.com> | 2011-07-01 06:25:24 -0400 |
---|---|---|
committer | Arnd Bergmann <arnd@arndb.de> | 2011-07-04 17:22:25 -0400 |
commit | 64393b3ae4e3cc86e2d622f682d736ec973364b6 (patch) | |
tree | c00b503c0c33dcfaa4ec2fab73608c3db9053d6c | |
parent | c5efefac659870744f6e203e28abd095ac0f590b (diff) |
AT91: Change nand buswidth logic to match hardware default configuration
The recently modified nand buswitth configuration is not aligned with
board reality: the double footprint on boards is always populated with 8bits
buswidth nand flashes.
So we have to consider that without particular configuration the 8bits
buswidth is selected by default.
Moreover, the previous logic was always using !board_have_nand_8bit(), we
change it to a simpler: board_have_nand_16bit().
Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com>
Tested-by: Ludovic Desroches <ludovic.desroches@atmel.com>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
-rw-r--r-- | arch/arm/mach-at91/board-cap9adk.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-at91/board-sam9260ek.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-at91/board-sam9261ek.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-at91/board-sam9263ek.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-at91/board-sam9g20ek.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-at91/board-sam9m10g45ek.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-at91/include/mach/system_rev.h | 10 |
7 files changed, 11 insertions, 11 deletions
diff --git a/arch/arm/mach-at91/board-cap9adk.c b/arch/arm/mach-at91/board-cap9adk.c index 1904fdf87613..cdb65d483250 100644 --- a/arch/arm/mach-at91/board-cap9adk.c +++ b/arch/arm/mach-at91/board-cap9adk.c | |||
@@ -215,7 +215,7 @@ static void __init cap9adk_add_device_nand(void) | |||
215 | csa = at91_sys_read(AT91_MATRIX_EBICSA); | 215 | csa = at91_sys_read(AT91_MATRIX_EBICSA); |
216 | at91_sys_write(AT91_MATRIX_EBICSA, csa | AT91_MATRIX_EBI_VDDIOMSEL_3_3V); | 216 | at91_sys_write(AT91_MATRIX_EBICSA, csa | AT91_MATRIX_EBI_VDDIOMSEL_3_3V); |
217 | 217 | ||
218 | cap9adk_nand_data.bus_width_16 = !board_have_nand_8bit(); | 218 | cap9adk_nand_data.bus_width_16 = board_have_nand_16bit(); |
219 | /* setup bus-width (8 or 16) */ | 219 | /* setup bus-width (8 or 16) */ |
220 | if (cap9adk_nand_data.bus_width_16) | 220 | if (cap9adk_nand_data.bus_width_16) |
221 | cap9adk_nand_smc_config.mode |= AT91_SMC_DBW_16; | 221 | cap9adk_nand_smc_config.mode |= AT91_SMC_DBW_16; |
diff --git a/arch/arm/mach-at91/board-sam9260ek.c b/arch/arm/mach-at91/board-sam9260ek.c index d600dc123227..5c240743c5b7 100644 --- a/arch/arm/mach-at91/board-sam9260ek.c +++ b/arch/arm/mach-at91/board-sam9260ek.c | |||
@@ -214,7 +214,7 @@ static struct sam9_smc_config __initdata ek_nand_smc_config = { | |||
214 | 214 | ||
215 | static void __init ek_add_device_nand(void) | 215 | static void __init ek_add_device_nand(void) |
216 | { | 216 | { |
217 | ek_nand_data.bus_width_16 = !board_have_nand_8bit(); | 217 | ek_nand_data.bus_width_16 = board_have_nand_16bit(); |
218 | /* setup bus-width (8 or 16) */ | 218 | /* setup bus-width (8 or 16) */ |
219 | if (ek_nand_data.bus_width_16) | 219 | if (ek_nand_data.bus_width_16) |
220 | ek_nand_smc_config.mode |= AT91_SMC_DBW_16; | 220 | ek_nand_smc_config.mode |= AT91_SMC_DBW_16; |
diff --git a/arch/arm/mach-at91/board-sam9261ek.c b/arch/arm/mach-at91/board-sam9261ek.c index f897f84d43dc..b60c22b6e241 100644 --- a/arch/arm/mach-at91/board-sam9261ek.c +++ b/arch/arm/mach-at91/board-sam9261ek.c | |||
@@ -220,7 +220,7 @@ static struct sam9_smc_config __initdata ek_nand_smc_config = { | |||
220 | 220 | ||
221 | static void __init ek_add_device_nand(void) | 221 | static void __init ek_add_device_nand(void) |
222 | { | 222 | { |
223 | ek_nand_data.bus_width_16 = !board_have_nand_8bit(); | 223 | ek_nand_data.bus_width_16 = board_have_nand_16bit(); |
224 | /* setup bus-width (8 or 16) */ | 224 | /* setup bus-width (8 or 16) */ |
225 | if (ek_nand_data.bus_width_16) | 225 | if (ek_nand_data.bus_width_16) |
226 | ek_nand_smc_config.mode |= AT91_SMC_DBW_16; | 226 | ek_nand_smc_config.mode |= AT91_SMC_DBW_16; |
diff --git a/arch/arm/mach-at91/board-sam9263ek.c b/arch/arm/mach-at91/board-sam9263ek.c index 605b26f40a4c..9bbdc92ea194 100644 --- a/arch/arm/mach-at91/board-sam9263ek.c +++ b/arch/arm/mach-at91/board-sam9263ek.c | |||
@@ -221,7 +221,7 @@ static struct sam9_smc_config __initdata ek_nand_smc_config = { | |||
221 | 221 | ||
222 | static void __init ek_add_device_nand(void) | 222 | static void __init ek_add_device_nand(void) |
223 | { | 223 | { |
224 | ek_nand_data.bus_width_16 = !board_have_nand_8bit(); | 224 | ek_nand_data.bus_width_16 = board_have_nand_16bit(); |
225 | /* setup bus-width (8 or 16) */ | 225 | /* setup bus-width (8 or 16) */ |
226 | if (ek_nand_data.bus_width_16) | 226 | if (ek_nand_data.bus_width_16) |
227 | ek_nand_smc_config.mode |= AT91_SMC_DBW_16; | 227 | ek_nand_smc_config.mode |= AT91_SMC_DBW_16; |
diff --git a/arch/arm/mach-at91/board-sam9g20ek.c b/arch/arm/mach-at91/board-sam9g20ek.c index 7624cf0d006b..1325a50101a8 100644 --- a/arch/arm/mach-at91/board-sam9g20ek.c +++ b/arch/arm/mach-at91/board-sam9g20ek.c | |||
@@ -198,7 +198,7 @@ static struct sam9_smc_config __initdata ek_nand_smc_config = { | |||
198 | 198 | ||
199 | static void __init ek_add_device_nand(void) | 199 | static void __init ek_add_device_nand(void) |
200 | { | 200 | { |
201 | ek_nand_data.bus_width_16 = !board_have_nand_8bit(); | 201 | ek_nand_data.bus_width_16 = board_have_nand_16bit(); |
202 | /* setup bus-width (8 or 16) */ | 202 | /* setup bus-width (8 or 16) */ |
203 | if (ek_nand_data.bus_width_16) | 203 | if (ek_nand_data.bus_width_16) |
204 | ek_nand_smc_config.mode |= AT91_SMC_DBW_16; | 204 | ek_nand_smc_config.mode |= AT91_SMC_DBW_16; |
diff --git a/arch/arm/mach-at91/board-sam9m10g45ek.c b/arch/arm/mach-at91/board-sam9m10g45ek.c index 063c95d0e8f0..33eaa135f248 100644 --- a/arch/arm/mach-at91/board-sam9m10g45ek.c +++ b/arch/arm/mach-at91/board-sam9m10g45ek.c | |||
@@ -178,7 +178,7 @@ static struct sam9_smc_config __initdata ek_nand_smc_config = { | |||
178 | 178 | ||
179 | static void __init ek_add_device_nand(void) | 179 | static void __init ek_add_device_nand(void) |
180 | { | 180 | { |
181 | ek_nand_data.bus_width_16 = !board_have_nand_8bit(); | 181 | ek_nand_data.bus_width_16 = board_have_nand_16bit(); |
182 | /* setup bus-width (8 or 16) */ | 182 | /* setup bus-width (8 or 16) */ |
183 | if (ek_nand_data.bus_width_16) | 183 | if (ek_nand_data.bus_width_16) |
184 | ek_nand_smc_config.mode |= AT91_SMC_DBW_16; | 184 | ek_nand_smc_config.mode |= AT91_SMC_DBW_16; |
diff --git a/arch/arm/mach-at91/include/mach/system_rev.h b/arch/arm/mach-at91/include/mach/system_rev.h index b855ee75f72c..8f4866045b41 100644 --- a/arch/arm/mach-at91/include/mach/system_rev.h +++ b/arch/arm/mach-at91/include/mach/system_rev.h | |||
@@ -13,13 +13,13 @@ | |||
13 | * the 16-31 bit are reserved for at91 generic information | 13 | * the 16-31 bit are reserved for at91 generic information |
14 | * | 14 | * |
15 | * bit 31: | 15 | * bit 31: |
16 | * 0 => nand 16 bit | 16 | * 0 => nand 8 bit |
17 | * 1 => nand 8 bit | 17 | * 1 => nand 16 bit |
18 | */ | 18 | */ |
19 | #define BOARD_HAVE_NAND_8BIT (1 << 31) | 19 | #define BOARD_HAVE_NAND_16BIT (1 << 31) |
20 | static int inline board_have_nand_8bit(void) | 20 | static inline int board_have_nand_16bit(void) |
21 | { | 21 | { |
22 | return system_rev & BOARD_HAVE_NAND_8BIT; | 22 | return system_rev & BOARD_HAVE_NAND_16BIT; |
23 | } | 23 | } |
24 | 24 | ||
25 | #endif /* __ARCH_SYSTEM_REV_H__ */ | 25 | #endif /* __ARCH_SYSTEM_REV_H__ */ |