@ -1137,24 +1137,6 @@ void mxc_nand_command(struct mtd_info *mtd, unsigned command,
}
}
# ifdef MXC_NFC_V1_1
static void mxc_setup_config1 ( void )
{
uint16_t tmp ;
tmp = readw ( & host - > regs - > config1 ) ;
tmp | = NFC_ONE_CYCLE ;
tmp | = NFC_4_8N_ECC ;
writew ( tmp , & host - > regs - > config1 ) ;
if ( host - > pagesize_2k )
writew ( 64 / 2 , & host - > regs - > spare_area_size ) ;
else
writew ( 16 / 2 , & host - > regs - > spare_area_size ) ;
}
# else
# define mxc_setup_config1()
# endif
# ifdef CONFIG_SYS_NAND_USE_FLASH_BBT
static u8 bbt_pattern [ ] = { ' B ' , ' b ' , ' t ' , ' 0 ' } ;
@ -1244,6 +1226,29 @@ int board_nand_init(struct nand_chip *this)
/* Reset NAND */
this - > cmdfunc ( mtd , NAND_CMD_RESET , - 1 , - 1 ) ;
/* NAND bus width determines access functions used by upper layer */
if ( is_16bit_nand ( ) )
this - > options | = NAND_BUSWIDTH_16 ;
# ifdef CONFIG_SYS_NAND_LARGEPAGE
host - > pagesize_2k = 1 ;
this - > ecc . layout = & nand_hw_eccoob2k ;
# else
host - > pagesize_2k = 0 ;
this - > ecc . layout = & nand_hw_eccoob ;
# endif
# ifdef MXC_NFC_V1_1
tmp = readw ( & host - > regs - > config1 ) ;
tmp | = NFC_ONE_CYCLE ;
tmp | = NFC_4_8N_ECC ;
writew ( tmp , & host - > regs - > config1 ) ;
if ( host - > pagesize_2k )
writew ( 64 / 2 , & host - > regs - > spare_area_size ) ;
else
writew ( 16 / 2 , & host - > regs - > spare_area_size ) ;
# endif
/*
* preset operation
* Unlock the internal RAM Buffer
@ -1268,17 +1273,5 @@ int board_nand_init(struct nand_chip *this)
/* Unlock Block Command for given address range */
writew ( 0x4 , & host - > regs - > wrprot ) ;
/* NAND bus width determines access functions used by upper layer */
if ( is_16bit_nand ( ) )
this - > options | = NAND_BUSWIDTH_16 ;
# ifdef CONFIG_SYS_NAND_LARGEPAGE
host - > pagesize_2k = 1 ;
this - > ecc . layout = & nand_hw_eccoob2k ;
# else
host - > pagesize_2k = 0 ;
this - > ecc . layout = & nand_hw_eccoob ;
# endif
mxc_setup_config1 ( ) ;
return 0 ;
}