diff options
-rw-r--r-- | arch/arm/mach-at91/Kconfig | 19 | ||||
-rw-r--r-- | arch/arm/mach-at91/board-at572d940hf_ek.c | 7 | ||||
-rw-r--r-- | arch/arm/mach-at91/board-cap9adk.c | 7 | ||||
-rw-r--r-- | arch/arm/mach-at91/board-sam9260ek.c | 7 | ||||
-rw-r--r-- | arch/arm/mach-at91/board-sam9261ek.c | 7 | ||||
-rw-r--r-- | arch/arm/mach-at91/board-sam9263ek.c | 7 | ||||
-rw-r--r-- | arch/arm/mach-at91/board-sam9g20ek.c | 7 | ||||
-rw-r--r-- | arch/arm/mach-at91/board-sam9m10g45ek.c | 7 | ||||
-rw-r--r-- | arch/arm/mach-at91/include/mach/system_rev.h | 25 |
9 files changed, 39 insertions, 54 deletions
diff --git a/arch/arm/mach-at91/Kconfig b/arch/arm/mach-at91/Kconfig index 2d299bf5d72f..8cbc3aae6c64 100644 --- a/arch/arm/mach-at91/Kconfig +++ b/arch/arm/mach-at91/Kconfig | |||
@@ -3,9 +3,6 @@ if ARCH_AT91 | |||
3 | config HAVE_AT91_DATAFLASH_CARD | 3 | config HAVE_AT91_DATAFLASH_CARD |
4 | bool | 4 | bool |
5 | 5 | ||
6 | config HAVE_NAND_ATMEL_BUSWIDTH_16 | ||
7 | bool | ||
8 | |||
9 | config HAVE_AT91_USART3 | 6 | config HAVE_AT91_USART3 |
10 | bool | 7 | bool |
11 | 8 | ||
@@ -209,7 +206,6 @@ comment "AT91SAM9260 / AT91SAM9XE Board Type" | |||
209 | config MACH_AT91SAM9260EK | 206 | config MACH_AT91SAM9260EK |
210 | bool "Atmel AT91SAM9260-EK / AT91SAM9XE Evaluation Kit" | 207 | bool "Atmel AT91SAM9260-EK / AT91SAM9XE Evaluation Kit" |
211 | select HAVE_AT91_DATAFLASH_CARD | 208 | select HAVE_AT91_DATAFLASH_CARD |
212 | select HAVE_NAND_ATMEL_BUSWIDTH_16 | ||
213 | help | 209 | help |
214 | Select this if you are using Atmel's AT91SAM9260-EK or AT91SAM9XE Evaluation Kit | 210 | Select this if you are using Atmel's AT91SAM9260-EK or AT91SAM9XE Evaluation Kit |
215 | <http://www.atmel.com/dyn/products/tools_card.asp?tool_id=3933> | 211 | <http://www.atmel.com/dyn/products/tools_card.asp?tool_id=3933> |
@@ -270,7 +266,6 @@ comment "AT91SAM9261 Board Type" | |||
270 | config MACH_AT91SAM9261EK | 266 | config MACH_AT91SAM9261EK |
271 | bool "Atmel AT91SAM9261-EK Evaluation Kit" | 267 | bool "Atmel AT91SAM9261-EK Evaluation Kit" |
272 | select HAVE_AT91_DATAFLASH_CARD | 268 | select HAVE_AT91_DATAFLASH_CARD |
273 | select HAVE_NAND_ATMEL_BUSWIDTH_16 | ||
274 | help | 269 | help |
275 | Select this if you are using Atmel's AT91SAM9261-EK Evaluation Kit. | 270 | Select this if you are using Atmel's AT91SAM9261-EK Evaluation Kit. |
276 | <http://www.atmel.com/dyn/products/tools_card.asp?tool_id=3820> | 271 | <http://www.atmel.com/dyn/products/tools_card.asp?tool_id=3820> |
@@ -286,7 +281,6 @@ comment "AT91SAM9G10 Board Type" | |||
286 | config MACH_AT91SAM9G10EK | 281 | config MACH_AT91SAM9G10EK |
287 | bool "Atmel AT91SAM9G10-EK Evaluation Kit" | 282 | bool "Atmel AT91SAM9G10-EK Evaluation Kit" |
288 | select HAVE_AT91_DATAFLASH_CARD | 283 | select HAVE_AT91_DATAFLASH_CARD |
289 | select HAVE_NAND_ATMEL_BUSWIDTH_16 | ||
290 | help | 284 | help |
291 | Select this if you are using Atmel's AT91SAM9G10-EK Evaluation Kit. | 285 | Select this if you are using Atmel's AT91SAM9G10-EK Evaluation Kit. |
292 | <http://www.atmel.com/dyn/products/tools_card.asp?tool_id=4588> | 286 | <http://www.atmel.com/dyn/products/tools_card.asp?tool_id=4588> |
@@ -302,7 +296,6 @@ comment "AT91SAM9263 Board Type" | |||
302 | config MACH_AT91SAM9263EK | 296 | config MACH_AT91SAM9263EK |
303 | bool "Atmel AT91SAM9263-EK Evaluation Kit" | 297 | bool "Atmel AT91SAM9263-EK Evaluation Kit" |
304 | select HAVE_AT91_DATAFLASH_CARD | 298 | select HAVE_AT91_DATAFLASH_CARD |
305 | select HAVE_NAND_ATMEL_BUSWIDTH_16 | ||
306 | help | 299 | help |
307 | Select this if you are using Atmel's AT91SAM9263-EK Evaluation Kit. | 300 | Select this if you are using Atmel's AT91SAM9263-EK Evaluation Kit. |
308 | <http://www.atmel.com/dyn/products/tools_card.asp?tool_id=4057> | 301 | <http://www.atmel.com/dyn/products/tools_card.asp?tool_id=4057> |
@@ -343,7 +336,6 @@ comment "AT91SAM9G20 Board Type" | |||
343 | config MACH_AT91SAM9G20EK | 336 | config MACH_AT91SAM9G20EK |
344 | bool "Atmel AT91SAM9G20-EK Evaluation Kit" | 337 | bool "Atmel AT91SAM9G20-EK Evaluation Kit" |
345 | select HAVE_AT91_DATAFLASH_CARD | 338 | select HAVE_AT91_DATAFLASH_CARD |
346 | select HAVE_NAND_ATMEL_BUSWIDTH_16 | ||
347 | help | 339 | help |
348 | Select this if you are using Atmel's AT91SAM9G20-EK Evaluation Kit | 340 | Select this if you are using Atmel's AT91SAM9G20-EK Evaluation Kit |
349 | that embeds only one SD/MMC slot. | 341 | that embeds only one SD/MMC slot. |
@@ -351,7 +343,6 @@ config MACH_AT91SAM9G20EK | |||
351 | config MACH_AT91SAM9G20EK_2MMC | 343 | config MACH_AT91SAM9G20EK_2MMC |
352 | depends on MACH_AT91SAM9G20EK | 344 | depends on MACH_AT91SAM9G20EK |
353 | bool "Atmel AT91SAM9G20-EK Evaluation Kit with 2 SD/MMC Slots" | 345 | bool "Atmel AT91SAM9G20-EK Evaluation Kit with 2 SD/MMC Slots" |
354 | select HAVE_NAND_ATMEL_BUSWIDTH_16 | ||
355 | help | 346 | help |
356 | Select this if you are using an Atmel AT91SAM9G20-EK Evaluation Kit | 347 | Select this if you are using an Atmel AT91SAM9G20-EK Evaluation Kit |
357 | with 2 SD/MMC Slots. This is the case for AT91SAM9G20-EK rev. C and | 348 | with 2 SD/MMC Slots. This is the case for AT91SAM9G20-EK rev. C and |
@@ -416,7 +407,6 @@ comment "AT91SAM9G45 Board Type" | |||
416 | 407 | ||
417 | config MACH_AT91SAM9M10G45EK | 408 | config MACH_AT91SAM9M10G45EK |
418 | bool "Atmel AT91SAM9M10G45-EK Evaluation Kits" | 409 | bool "Atmel AT91SAM9M10G45-EK Evaluation Kits" |
419 | select HAVE_NAND_ATMEL_BUSWIDTH_16 | ||
420 | help | 410 | help |
421 | Select this if you are using Atmel's AT91SAM9G45-EKES Evaluation Kit. | 411 | Select this if you are using Atmel's AT91SAM9G45-EKES Evaluation Kit. |
422 | "ES" at the end of the name means that this board is an | 412 | "ES" at the end of the name means that this board is an |
@@ -433,7 +423,6 @@ comment "AT91CAP9 Board Type" | |||
433 | config MACH_AT91CAP9ADK | 423 | config MACH_AT91CAP9ADK |
434 | bool "Atmel AT91CAP9A-DK Evaluation Kit" | 424 | bool "Atmel AT91CAP9A-DK Evaluation Kit" |
435 | select HAVE_AT91_DATAFLASH_CARD | 425 | select HAVE_AT91_DATAFLASH_CARD |
436 | select HAVE_NAND_ATMEL_BUSWIDTH_16 | ||
437 | help | 426 | help |
438 | Select this if you are using Atmel's AT91CAP9A-DK Evaluation Kit. | 427 | Select this if you are using Atmel's AT91CAP9A-DK Evaluation Kit. |
439 | <http://www.atmel.com/dyn/products/tools_card.asp?tool_id=4138> | 428 | <http://www.atmel.com/dyn/products/tools_card.asp?tool_id=4138> |
@@ -450,7 +439,6 @@ config MACH_AT572D940HFEB | |||
450 | bool "AT572D940HF-EK" | 439 | bool "AT572D940HF-EK" |
451 | depends on ARCH_AT572D940HF | 440 | depends on ARCH_AT572D940HF |
452 | select HAVE_AT91_DATAFLASH_CARD | 441 | select HAVE_AT91_DATAFLASH_CARD |
453 | select HAVE_NAND_ATMEL_BUSWIDTH_16 | ||
454 | help | 442 | help |
455 | Select this if you are using Atmel's AT572D940HF-EK evaluation kit. | 443 | Select this if you are using Atmel's AT572D940HF-EK evaluation kit. |
456 | <http://www.atmel.com/products/diopsis/default.asp> | 444 | <http://www.atmel.com/products/diopsis/default.asp> |
@@ -483,13 +471,6 @@ config MTD_AT91_DATAFLASH_CARD | |||
483 | help | 471 | help |
484 | Enable support for the DataFlash card. | 472 | Enable support for the DataFlash card. |
485 | 473 | ||
486 | config MTD_NAND_ATMEL_BUSWIDTH_16 | ||
487 | bool "Enable 16-bit data bus interface to NAND flash" | ||
488 | depends on HAVE_NAND_ATMEL_BUSWIDTH_16 | ||
489 | help | ||
490 | On AT91SAM926x boards both types of NAND flash can be present | ||
491 | (8 and 16 bit data bus width). | ||
492 | |||
493 | # ---------------------------------------------------------- | 474 | # ---------------------------------------------------------- |
494 | 475 | ||
495 | comment "AT91 Feature Selections" | 476 | comment "AT91 Feature Selections" |
diff --git a/arch/arm/mach-at91/board-at572d940hf_ek.c b/arch/arm/mach-at91/board-at572d940hf_ek.c index 3929f1c9e4e5..096b99f4b1f3 100644 --- a/arch/arm/mach-at91/board-at572d940hf_ek.c +++ b/arch/arm/mach-at91/board-at572d940hf_ek.c | |||
@@ -41,6 +41,7 @@ | |||
41 | #include <mach/board.h> | 41 | #include <mach/board.h> |
42 | #include <mach/gpio.h> | 42 | #include <mach/gpio.h> |
43 | #include <mach/at91sam9_smc.h> | 43 | #include <mach/at91sam9_smc.h> |
44 | #include <mach/system_rev.h> | ||
44 | 45 | ||
45 | #include "sam9_smc.h" | 46 | #include "sam9_smc.h" |
46 | #include "generic.h" | 47 | #include "generic.h" |
@@ -216,11 +217,6 @@ static struct atmel_nand_data __initdata eb_nand_data = { | |||
216 | /* .rdy_pin = AT91_PIN_PC16, */ | 217 | /* .rdy_pin = AT91_PIN_PC16, */ |
217 | .enable_pin = AT91_PIN_PA15, | 218 | .enable_pin = AT91_PIN_PA15, |
218 | .partition_info = nand_partitions, | 219 | .partition_info = nand_partitions, |
219 | #if defined(CONFIG_MTD_NAND_ATMEL_BUSWIDTH_16) | ||
220 | .bus_width_16 = 1, | ||
221 | #else | ||
222 | .bus_width_16 = 0, | ||
223 | #endif | ||
224 | }; | 220 | }; |
225 | 221 | ||
226 | static struct sam9_smc_config __initdata eb_nand_smc_config = { | 222 | static struct sam9_smc_config __initdata eb_nand_smc_config = { |
@@ -243,6 +239,7 @@ static struct sam9_smc_config __initdata eb_nand_smc_config = { | |||
243 | 239 | ||
244 | static void __init eb_add_device_nand(void) | 240 | static void __init eb_add_device_nand(void) |
245 | { | 241 | { |
242 | ek_nand_data.bus_width_16 = !board_have_nand_8bit(); | ||
246 | /* setup bus-width (8 or 16) */ | 243 | /* setup bus-width (8 or 16) */ |
247 | if (eb_nand_data.bus_width_16) | 244 | if (eb_nand_data.bus_width_16) |
248 | eb_nand_smc_config.mode |= AT91_SMC_DBW_16; | 245 | eb_nand_smc_config.mode |= AT91_SMC_DBW_16; |
diff --git a/arch/arm/mach-at91/board-cap9adk.c b/arch/arm/mach-at91/board-cap9adk.c index e7274440ead9..96010d4e15af 100644 --- a/arch/arm/mach-at91/board-cap9adk.c +++ b/arch/arm/mach-at91/board-cap9adk.c | |||
@@ -44,6 +44,7 @@ | |||
44 | #include <mach/gpio.h> | 44 | #include <mach/gpio.h> |
45 | #include <mach/at91cap9_matrix.h> | 45 | #include <mach/at91cap9_matrix.h> |
46 | #include <mach/at91sam9_smc.h> | 46 | #include <mach/at91sam9_smc.h> |
47 | #include <mach/system_rev.h> | ||
47 | 48 | ||
48 | #include "sam9_smc.h" | 49 | #include "sam9_smc.h" |
49 | #include "generic.h" | 50 | #include "generic.h" |
@@ -187,11 +188,6 @@ static struct atmel_nand_data __initdata cap9adk_nand_data = { | |||
187 | // .rdy_pin = ... not connected | 188 | // .rdy_pin = ... not connected |
188 | .enable_pin = AT91_PIN_PD15, | 189 | .enable_pin = AT91_PIN_PD15, |
189 | .partition_info = nand_partitions, | 190 | .partition_info = nand_partitions, |
190 | #if defined(CONFIG_MTD_NAND_ATMEL_BUSWIDTH_16) | ||
191 | .bus_width_16 = 1, | ||
192 | #else | ||
193 | .bus_width_16 = 0, | ||
194 | #endif | ||
195 | }; | 191 | }; |
196 | 192 | ||
197 | static struct sam9_smc_config __initdata cap9adk_nand_smc_config = { | 193 | static struct sam9_smc_config __initdata cap9adk_nand_smc_config = { |
@@ -219,6 +215,7 @@ static void __init cap9adk_add_device_nand(void) | |||
219 | csa = at91_sys_read(AT91_MATRIX_EBICSA); | 215 | csa = at91_sys_read(AT91_MATRIX_EBICSA); |
220 | 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); |
221 | 217 | ||
218 | cap9adk_nand_data.bus_width_16 = !board_have_nand_8bit(); | ||
222 | /* setup bus-width (8 or 16) */ | 219 | /* setup bus-width (8 or 16) */ |
223 | if (cap9adk_nand_data.bus_width_16) | 220 | if (cap9adk_nand_data.bus_width_16) |
224 | 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 de1816e0e1d9..fdfa144cbe76 100644 --- a/arch/arm/mach-at91/board-sam9260ek.c +++ b/arch/arm/mach-at91/board-sam9260ek.c | |||
@@ -44,6 +44,7 @@ | |||
44 | #include <mach/gpio.h> | 44 | #include <mach/gpio.h> |
45 | #include <mach/at91sam9_smc.h> | 45 | #include <mach/at91sam9_smc.h> |
46 | #include <mach/at91_shdwc.h> | 46 | #include <mach/at91_shdwc.h> |
47 | #include <mach/system_rev.h> | ||
47 | 48 | ||
48 | #include "sam9_smc.h" | 49 | #include "sam9_smc.h" |
49 | #include "generic.h" | 50 | #include "generic.h" |
@@ -191,11 +192,6 @@ static struct atmel_nand_data __initdata ek_nand_data = { | |||
191 | .rdy_pin = AT91_PIN_PC13, | 192 | .rdy_pin = AT91_PIN_PC13, |
192 | .enable_pin = AT91_PIN_PC14, | 193 | .enable_pin = AT91_PIN_PC14, |
193 | .partition_info = nand_partitions, | 194 | .partition_info = nand_partitions, |
194 | #if defined(CONFIG_MTD_NAND_ATMEL_BUSWIDTH_16) | ||
195 | .bus_width_16 = 1, | ||
196 | #else | ||
197 | .bus_width_16 = 0, | ||
198 | #endif | ||
199 | }; | 195 | }; |
200 | 196 | ||
201 | static struct sam9_smc_config __initdata ek_nand_smc_config = { | 197 | static struct sam9_smc_config __initdata ek_nand_smc_config = { |
@@ -218,6 +214,7 @@ static struct sam9_smc_config __initdata ek_nand_smc_config = { | |||
218 | 214 | ||
219 | static void __init ek_add_device_nand(void) | 215 | static void __init ek_add_device_nand(void) |
220 | { | 216 | { |
217 | ek_nand_data.bus_width_16 = !board_have_nand_8bit(); | ||
221 | /* setup bus-width (8 or 16) */ | 218 | /* setup bus-width (8 or 16) */ |
222 | if (ek_nand_data.bus_width_16) | 219 | if (ek_nand_data.bus_width_16) |
223 | 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 14acc901e24c..c2773b5f2eee 100644 --- a/arch/arm/mach-at91/board-sam9261ek.c +++ b/arch/arm/mach-at91/board-sam9261ek.c | |||
@@ -48,6 +48,7 @@ | |||
48 | #include <mach/gpio.h> | 48 | #include <mach/gpio.h> |
49 | #include <mach/at91sam9_smc.h> | 49 | #include <mach/at91sam9_smc.h> |
50 | #include <mach/at91_shdwc.h> | 50 | #include <mach/at91_shdwc.h> |
51 | #include <mach/system_rev.h> | ||
51 | 52 | ||
52 | #include "sam9_smc.h" | 53 | #include "sam9_smc.h" |
53 | #include "generic.h" | 54 | #include "generic.h" |
@@ -197,11 +198,6 @@ static struct atmel_nand_data __initdata ek_nand_data = { | |||
197 | .rdy_pin = AT91_PIN_PC15, | 198 | .rdy_pin = AT91_PIN_PC15, |
198 | .enable_pin = AT91_PIN_PC14, | 199 | .enable_pin = AT91_PIN_PC14, |
199 | .partition_info = nand_partitions, | 200 | .partition_info = nand_partitions, |
200 | #if defined(CONFIG_MTD_NAND_ATMEL_BUSWIDTH_16) | ||
201 | .bus_width_16 = 1, | ||
202 | #else | ||
203 | .bus_width_16 = 0, | ||
204 | #endif | ||
205 | }; | 201 | }; |
206 | 202 | ||
207 | static struct sam9_smc_config __initdata ek_nand_smc_config = { | 203 | static struct sam9_smc_config __initdata ek_nand_smc_config = { |
@@ -224,6 +220,7 @@ static struct sam9_smc_config __initdata ek_nand_smc_config = { | |||
224 | 220 | ||
225 | static void __init ek_add_device_nand(void) | 221 | static void __init ek_add_device_nand(void) |
226 | { | 222 | { |
223 | ek_nand_data.bus_width_16 = !board_have_nand_8bit(); | ||
227 | /* setup bus-width (8 or 16) */ | 224 | /* setup bus-width (8 or 16) */ |
228 | if (ek_nand_data.bus_width_16) | 225 | if (ek_nand_data.bus_width_16) |
229 | 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 bfe490df58be..1dabc0ae56c9 100644 --- a/arch/arm/mach-at91/board-sam9263ek.c +++ b/arch/arm/mach-at91/board-sam9263ek.c | |||
@@ -47,6 +47,7 @@ | |||
47 | #include <mach/gpio.h> | 47 | #include <mach/gpio.h> |
48 | #include <mach/at91sam9_smc.h> | 48 | #include <mach/at91sam9_smc.h> |
49 | #include <mach/at91_shdwc.h> | 49 | #include <mach/at91_shdwc.h> |
50 | #include <mach/system_rev.h> | ||
50 | 51 | ||
51 | #include "sam9_smc.h" | 52 | #include "sam9_smc.h" |
52 | #include "generic.h" | 53 | #include "generic.h" |
@@ -198,11 +199,6 @@ static struct atmel_nand_data __initdata ek_nand_data = { | |||
198 | .rdy_pin = AT91_PIN_PA22, | 199 | .rdy_pin = AT91_PIN_PA22, |
199 | .enable_pin = AT91_PIN_PD15, | 200 | .enable_pin = AT91_PIN_PD15, |
200 | .partition_info = nand_partitions, | 201 | .partition_info = nand_partitions, |
201 | #if defined(CONFIG_MTD_NAND_ATMEL_BUSWIDTH_16) | ||
202 | .bus_width_16 = 1, | ||
203 | #else | ||
204 | .bus_width_16 = 0, | ||
205 | #endif | ||
206 | }; | 202 | }; |
207 | 203 | ||
208 | static struct sam9_smc_config __initdata ek_nand_smc_config = { | 204 | static struct sam9_smc_config __initdata ek_nand_smc_config = { |
@@ -225,6 +221,7 @@ static struct sam9_smc_config __initdata ek_nand_smc_config = { | |||
225 | 221 | ||
226 | static void __init ek_add_device_nand(void) | 222 | static void __init ek_add_device_nand(void) |
227 | { | 223 | { |
224 | ek_nand_data.bus_width_16 = !board_have_nand_8bit(); | ||
228 | /* setup bus-width (8 or 16) */ | 225 | /* setup bus-width (8 or 16) */ |
229 | if (ek_nand_data.bus_width_16) | 226 | if (ek_nand_data.bus_width_16) |
230 | 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 ca8198b3c168..d13acd5c92f2 100644 --- a/arch/arm/mach-at91/board-sam9g20ek.c +++ b/arch/arm/mach-at91/board-sam9g20ek.c | |||
@@ -43,6 +43,7 @@ | |||
43 | #include <mach/board.h> | 43 | #include <mach/board.h> |
44 | #include <mach/gpio.h> | 44 | #include <mach/gpio.h> |
45 | #include <mach/at91sam9_smc.h> | 45 | #include <mach/at91sam9_smc.h> |
46 | #include <mach/system_rev.h> | ||
46 | 47 | ||
47 | #include "sam9_smc.h" | 48 | #include "sam9_smc.h" |
48 | #include "generic.h" | 49 | #include "generic.h" |
@@ -175,11 +176,6 @@ static struct atmel_nand_data __initdata ek_nand_data = { | |||
175 | .rdy_pin = AT91_PIN_PC13, | 176 | .rdy_pin = AT91_PIN_PC13, |
176 | .enable_pin = AT91_PIN_PC14, | 177 | .enable_pin = AT91_PIN_PC14, |
177 | .partition_info = nand_partitions, | 178 | .partition_info = nand_partitions, |
178 | #if defined(CONFIG_MTD_NAND_ATMEL_BUSWIDTH_16) | ||
179 | .bus_width_16 = 1, | ||
180 | #else | ||
181 | .bus_width_16 = 0, | ||
182 | #endif | ||
183 | }; | 179 | }; |
184 | 180 | ||
185 | static struct sam9_smc_config __initdata ek_nand_smc_config = { | 181 | static struct sam9_smc_config __initdata ek_nand_smc_config = { |
@@ -202,6 +198,7 @@ static struct sam9_smc_config __initdata ek_nand_smc_config = { | |||
202 | 198 | ||
203 | static void __init ek_add_device_nand(void) | 199 | static void __init ek_add_device_nand(void) |
204 | { | 200 | { |
201 | ek_nand_data.bus_width_16 = !board_have_nand_8bit(); | ||
205 | /* setup bus-width (8 or 16) */ | 202 | /* setup bus-width (8 or 16) */ |
206 | if (ek_nand_data.bus_width_16) | 203 | if (ek_nand_data.bus_width_16) |
207 | 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 6c999dbd2bcf..49d6849f0ccb 100644 --- a/arch/arm/mach-at91/board-sam9m10g45ek.c +++ b/arch/arm/mach-at91/board-sam9m10g45ek.c | |||
@@ -41,6 +41,7 @@ | |||
41 | #include <mach/gpio.h> | 41 | #include <mach/gpio.h> |
42 | #include <mach/at91sam9_smc.h> | 42 | #include <mach/at91sam9_smc.h> |
43 | #include <mach/at91_shdwc.h> | 43 | #include <mach/at91_shdwc.h> |
44 | #include <mach/system_rev.h> | ||
44 | 45 | ||
45 | #include "sam9_smc.h" | 46 | #include "sam9_smc.h" |
46 | #include "generic.h" | 47 | #include "generic.h" |
@@ -155,11 +156,6 @@ static struct atmel_nand_data __initdata ek_nand_data = { | |||
155 | .rdy_pin = AT91_PIN_PC8, | 156 | .rdy_pin = AT91_PIN_PC8, |
156 | .enable_pin = AT91_PIN_PC14, | 157 | .enable_pin = AT91_PIN_PC14, |
157 | .partition_info = nand_partitions, | 158 | .partition_info = nand_partitions, |
158 | #if defined(CONFIG_MTD_NAND_ATMEL_BUSWIDTH_16) | ||
159 | .bus_width_16 = 1, | ||
160 | #else | ||
161 | .bus_width_16 = 0, | ||
162 | #endif | ||
163 | }; | 159 | }; |
164 | 160 | ||
165 | static struct sam9_smc_config __initdata ek_nand_smc_config = { | 161 | static struct sam9_smc_config __initdata ek_nand_smc_config = { |
@@ -182,6 +178,7 @@ static struct sam9_smc_config __initdata ek_nand_smc_config = { | |||
182 | 178 | ||
183 | static void __init ek_add_device_nand(void) | 179 | static void __init ek_add_device_nand(void) |
184 | { | 180 | { |
181 | ek_nand_data.bus_width_16 = !board_have_nand_8bit(); | ||
185 | /* setup bus-width (8 or 16) */ | 182 | /* setup bus-width (8 or 16) */ |
186 | if (ek_nand_data.bus_width_16) | 183 | if (ek_nand_data.bus_width_16) |
187 | 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 new file mode 100644 index 000000000000..b855ee75f72c --- /dev/null +++ b/arch/arm/mach-at91/include/mach/system_rev.h | |||
@@ -0,0 +1,25 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2011 Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> | ||
3 | * | ||
4 | * Under GPLv2 only | ||
5 | */ | ||
6 | |||
7 | #ifndef __ARCH_SYSTEM_REV_H__ | ||
8 | #define __ARCH_SYSTEM_REV_H__ | ||
9 | |||
10 | /* | ||
11 | * board revision encoding | ||
12 | * mach specific | ||
13 | * the 16-31 bit are reserved for at91 generic information | ||
14 | * | ||
15 | * bit 31: | ||
16 | * 0 => nand 16 bit | ||
17 | * 1 => nand 8 bit | ||
18 | */ | ||
19 | #define BOARD_HAVE_NAND_8BIT (1 << 31) | ||
20 | static int inline board_have_nand_8bit(void) | ||
21 | { | ||
22 | return system_rev & BOARD_HAVE_NAND_8BIT; | ||
23 | } | ||
24 | |||
25 | #endif /* __ARCH_SYSTEM_REV_H__ */ | ||