Messages in this thread | | | Date | Mon, 04 Jul 2011 11:37:01 +0200 | From | Nicolas Ferre <> | Subject | Re: [PATCH for 3.0] AT91: Change nand buswidth logic to match hardware default configuration |
| |
Le 01/07/2011 12:25, Nicolas Ferre : > 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>
Arnd,
Can you please handle this parch for 3.0-final as a bug fix through the arm-soc.git tree?
You can queue it in addition of the pull request sent by Jean-Christophe: "AT91: Fix pull requset".
Thanks, best regards,
> --- > arch/arm/mach-at91/board-cap9adk.c | 2 +- > arch/arm/mach-at91/board-sam9260ek.c | 2 +- > arch/arm/mach-at91/board-sam9261ek.c | 2 +- > arch/arm/mach-at91/board-sam9263ek.c | 2 +- > arch/arm/mach-at91/board-sam9g20ek.c | 2 +- > arch/arm/mach-at91/board-sam9m10g45ek.c | 2 +- > 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 1904fdf..cdb65d4 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) > csa = at91_sys_read(AT91_MATRIX_EBICSA); > at91_sys_write(AT91_MATRIX_EBICSA, csa | AT91_MATRIX_EBI_VDDIOMSEL_3_3V); > > - cap9adk_nand_data.bus_width_16 = !board_have_nand_8bit(); > + cap9adk_nand_data.bus_width_16 = board_have_nand_16bit(); > /* setup bus-width (8 or 16) */ > if (cap9adk_nand_data.bus_width_16) > 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 d600dc1..5c24074 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 = { > > static void __init ek_add_device_nand(void) > { > - ek_nand_data.bus_width_16 = !board_have_nand_8bit(); > + ek_nand_data.bus_width_16 = board_have_nand_16bit(); > /* setup bus-width (8 or 16) */ > if (ek_nand_data.bus_width_16) > 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 f897f84..b60c22b 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 = { > > static void __init ek_add_device_nand(void) > { > - ek_nand_data.bus_width_16 = !board_have_nand_8bit(); > + ek_nand_data.bus_width_16 = board_have_nand_16bit(); > /* setup bus-width (8 or 16) */ > if (ek_nand_data.bus_width_16) > 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 605b26f..9bbdc92 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 = { > > static void __init ek_add_device_nand(void) > { > - ek_nand_data.bus_width_16 = !board_have_nand_8bit(); > + ek_nand_data.bus_width_16 = board_have_nand_16bit(); > /* setup bus-width (8 or 16) */ > if (ek_nand_data.bus_width_16) > 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 7624cf0..1325a50 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 = { > > static void __init ek_add_device_nand(void) > { > - ek_nand_data.bus_width_16 = !board_have_nand_8bit(); > + ek_nand_data.bus_width_16 = board_have_nand_16bit(); > /* setup bus-width (8 or 16) */ > if (ek_nand_data.bus_width_16) > 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 063c95d..33eaa13 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 = { > > static void __init ek_add_device_nand(void) > { > - ek_nand_data.bus_width_16 = !board_have_nand_8bit(); > + ek_nand_data.bus_width_16 = board_have_nand_16bit(); > /* setup bus-width (8 or 16) */ > if (ek_nand_data.bus_width_16) > 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 b855ee7..8f48660 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 @@ > * the 16-31 bit are reserved for at91 generic information > * > * bit 31: > - * 0 => nand 16 bit > - * 1 => nand 8 bit > + * 0 => nand 8 bit > + * 1 => nand 16 bit > */ > -#define BOARD_HAVE_NAND_8BIT (1 << 31) > -static int inline board_have_nand_8bit(void) > +#define BOARD_HAVE_NAND_16BIT (1 << 31) > +static inline int board_have_nand_16bit(void) > { > - return system_rev & BOARD_HAVE_NAND_8BIT; > + return system_rev & BOARD_HAVE_NAND_16BIT; > } > > #endif /* __ARCH_SYSTEM_REV_H__ */
-- Nicolas Ferre
| |