Fix NAND FLASH timings for at91sam9x evaluation kits.
PATCH 1/1 Fix NAND FLASH timings for at91sam9x evaluation kits.
Fix NAND FLASH timings for at91sam9x evaluation kits.
New timings are based on application note
"NAND Flash Support on AT91SAM9 Microcontrollers" available at
http://atmel.com/dyn/resources/prod_documents/doc6255.pdf).
---
This timings are mandatory for newer kernel revision. Please, could you consider them before 2.6.26 final release.
arch/arm/mach-at91/at91sam9260_devices.c | 4 ++-- arch/arm/mach-at91/at91sam9261_devices.c | 12 ++++++------ arch/arm/mach-at91/at91sam9263_devices.c | 4 ++-- arch/arm/mach-at91/at91sam9rl_devices.c | 12 ++++++------ 4 files changed, 16 insertions(+), 16 deletions(-)
arch/arm/mach-at91/at91sam9260_devices.c +2 -2
@@ -321,8 +321,8 @@ void __init at91_add_device_nand(struct at91_nand_data *data)at91_sys_write (AT91_MATRIX_EBICSA , csa |AT91_MATRIX_CS3A_SMC_SMARTMEDIA );/* set the bus interface characteristics */ -at91_sys_write (AT91_SMC_SETUP (3 ),AT91_SMC_NWESETUP_ (0 ) |AT91_SMC_NCS_WRSETUP_ (0 ) - |AT91_SMC_NRDSETUP_ (0 ) |AT91_SMC_NCS_RDSETUP_ (0 )); +at91_sys_write (AT91_SMC_SETUP (3 ),AT91_SMC_NWESETUP_ (1 ) |AT91_SMC_NCS_WRSETUP_ (0 ) + |AT91_SMC_NRDSETUP_ (1 ) |AT91_SMC_NCS_RDSETUP_ (0 ));at91_sys_write (AT91_SMC_PULSE (3 ),AT91_SMC_NWEPULSE_ (3 ) |AT91_SMC_NCS_WRPULSE_ (3 ) |AT91_SMC_NRDPULSE_ (3 ) |AT91_SMC_NCS_RDPULSE_ (3 ));
arch/arm/mach-at91/at91sam9261_devices.c +6 -6
@@ -232,19 +232,19 @@ void __init at91_add_device_nand(struct at91_nand_data *data)at91_sys_write (AT91_MATRIX_EBICSA , csa |AT91_MATRIX_CS3A_SMC_SMARTMEDIA );/* set the bus interface characteristics */ -at91_sys_write (AT91_SMC_SETUP (3 ),AT91_SMC_NWESETUP_ (0 ) |AT91_SMC_NCS_WRSETUP_ (0 ) - |AT91_SMC_NRDSETUP_ (0 ) |AT91_SMC_NCS_RDSETUP_ (0 )); +at91_sys_write (AT91_SMC_SETUP (3 ),AT91_SMC_NWESETUP_ (1 ) |AT91_SMC_NCS_WRSETUP_ (0 ) + |AT91_SMC_NRDSETUP_ (1 ) |AT91_SMC_NCS_RDSETUP_ (0 )); -at91_sys_write (AT91_SMC_PULSE (3 ),AT91_SMC_NWEPULSE_ (2 ) |AT91_SMC_NCS_WRPULSE_ (5 ) - |AT91_SMC_NRDPULSE_ (2 ) |AT91_SMC_NCS_RDPULSE_ (5 )); +at91_sys_write (AT91_SMC_PULSE (3 ),AT91_SMC_NWEPULSE_ (3 ) |AT91_SMC_NCS_WRPULSE_ (3 ) + |AT91_SMC_NRDPULSE_ (3 ) |AT91_SMC_NCS_RDPULSE_ (3 )); -at91_sys_write (AT91_SMC_CYCLE (3 ),AT91_SMC_NWECYCLE_ (7 ) |AT91_SMC_NRDCYCLE_ (7 )); +at91_sys_write (AT91_SMC_CYCLE (3 ),AT91_SMC_NWECYCLE_ (5 ) |AT91_SMC_NRDCYCLE_ (5 ));if (data->bus_width_16) mode =AT91_SMC_DBW_16 ;else mode =AT91_SMC_DBW_8 ; -at91_sys_write (AT91_SMC_MODE (3 ), mode |AT91_SMC_READMODE |AT91_SMC_WRITEMODE |AT91_SMC_EXNWMODE_DISABLE |AT91_SMC_TDF_ (1 )); +at91_sys_write (AT91_SMC_MODE (3 ), mode |AT91_SMC_READMODE |AT91_SMC_WRITEMODE |AT91_SMC_EXNWMODE_DISABLE |AT91_SMC_TDF_ (2 ));/* enable pin */ if (data->enable_pin)
arch/arm/mach-at91/at91sam9263_devices.c +2 -2
@@ -391,8 +391,8 @@ void __init at91_add_device_nand(struct at91_nand_data *data)at91_sys_write (AT91_MATRIX_EBI0CSA , csa |AT91_MATRIX_EBI0_CS3A_SMC_SMARTMEDIA );/* set the bus interface characteristics */ -at91_sys_write (AT91_SMC_SETUP (3 ),AT91_SMC_NWESETUP_ (0 ) |AT91_SMC_NCS_WRSETUP_ (0 ) - |AT91_SMC_NRDSETUP_ (0 ) |AT91_SMC_NCS_RDSETUP_ (0 )); +at91_sys_write (AT91_SMC_SETUP (3 ),AT91_SMC_NWESETUP_ (1 ) |AT91_SMC_NCS_WRSETUP_ (0 ) + |AT91_SMC_NRDSETUP_ (1 ) |AT91_SMC_NCS_RDSETUP_ (0 ));at91_sys_write (AT91_SMC_PULSE (3 ),AT91_SMC_NWEPULSE_ (3 ) |AT91_SMC_NCS_WRPULSE_ (3 ) |AT91_SMC_NRDPULSE_ (3 ) |AT91_SMC_NCS_RDPULSE_ (3 ));
arch/arm/mach-at91/at91sam9rl_devices.c +6 -6
@@ -138,15 +138,15 @@ void __init at91_add_device_nand(struct at91_nand_data *data)at91_sys_write (AT91_MATRIX_EBICSA , csa |AT91_MATRIX_CS3A_SMC_SMARTMEDIA );/* set the bus interface characteristics */ -at91_sys_write (AT91_SMC_SETUP (3 ),AT91_SMC_NWESETUP_ (0 ) |AT91_SMC_NCS_WRSETUP_ (0 ) - |AT91_SMC_NRDSETUP_ (0 ) |AT91_SMC_NCS_RDSETUP_ (0 )); +at91_sys_write (AT91_SMC_SETUP (3 ),AT91_SMC_NWESETUP_ (1 ) |AT91_SMC_NCS_WRSETUP_ (0 ) + |AT91_SMC_NRDSETUP_ (1 ) |AT91_SMC_NCS_RDSETUP_ (0 )); -at91_sys_write (AT91_SMC_PULSE (3 ),AT91_SMC_NWEPULSE_ (2 ) |AT91_SMC_NCS_WRPULSE_ (5 ) - |AT91_SMC_NRDPULSE_ (2 ) |AT91_SMC_NCS_RDPULSE_ (5 )); +at91_sys_write (AT91_SMC_PULSE (3 ),AT91_SMC_NWEPULSE_ (3 ) |AT91_SMC_NCS_WRPULSE_ (3 ) + |AT91_SMC_NRDPULSE_ (3 ) |AT91_SMC_NCS_RDPULSE_ (3 )); -at91_sys_write (AT91_SMC_CYCLE (3 ),AT91_SMC_NWECYCLE_ (7 ) |AT91_SMC_NRDCYCLE_ (7 )); +at91_sys_write (AT91_SMC_CYCLE (3 ),AT91_SMC_NWECYCLE_ (5 ) |AT91_SMC_NRDCYCLE_ (5 )); -at91_sys_write (AT91_SMC_MODE (3 ),AT91_SMC_DBW_8 |AT91_SMC_READMODE |AT91_SMC_WRITEMODE |AT91_SMC_EXNWMODE_DISABLE |AT91_SMC_TDF_ (1 )); +at91_sys_write (AT91_SMC_MODE (3 ),AT91_SMC_DBW_8 |AT91_SMC_READMODE |AT91_SMC_WRITEMODE |AT91_SMC_EXNWMODE_DISABLE |AT91_SMC_TDF_ (2 ));/* enable pin */ if (data->enable_pin)
Signature · 1 line
1.5.3.7
hi Patrice,
Quoted 7 lines
Fix NAND FLASH timings for at91sam9x evaluation kits.
New timings are based on application note
"NAND Flash Support on AT91SAM9 Microcontrollers" available at
http://atmel.com/dyn/resources/prod_documents/doc6255.pdf).Signed-off-by Patrice Vilchez <[email protected]>
Quoted 2 lines
This timings are mandatory for newer kernel revision. Please, could you consider them before 2.6.26 final release.
Please submit to RMK's patch system.
Regards,
Andrew Victor