提交 0eee20fc 编写于 作者: B Benoît Thébaudeau 提交者: Scott Wood

spl mxc nand: Remove duplicated code

The ECC_EN and INT_MSK bits of CONFIG1 are not volatile, so it is sufficient to
set them once in nfc_nand_init().
Signed-off-by: NBenoît Thébaudeau <benoit.thebaudeau@advansee.com>
Cc: Scott Wood <scottwood@freescale.com>
Cc: Stefano Babic <sbabic@denx.de>
Signed-off-by: NScott Wood <scottwood@freescale.com>
上级 5d818a28
...@@ -57,7 +57,7 @@ static void nfc_nand_init(void) ...@@ -57,7 +57,7 @@ static void nfc_nand_init(void)
writew(0x2, &nfc->config); writew(0x2, &nfc->config);
/* hardware ECC checking and correct */ /* hardware ECC checking and correct */
config1 = readw(&nfc->config1) | NFC_ECC_EN | NFC_FP_INT; config1 = readw(&nfc->config1) | NFC_ECC_EN | NFC_INT_MSK | NFC_FP_INT;
/* /*
* if spare size is larger that 16 bytes per 512 byte hunk * if spare size is larger that 16 bytes per 512 byte hunk
* then use 8 symbol correction instead of 4 * then use 8 symbol correction instead of 4
...@@ -72,7 +72,7 @@ static void nfc_nand_init(void) ...@@ -72,7 +72,7 @@ static void nfc_nand_init(void)
writew(0x2, &nfc->config); writew(0x2, &nfc->config);
/* hardware ECC checking and correct */ /* hardware ECC checking and correct */
writew(NFC_ECC_EN, &nfc->config1); writew(NFC_ECC_EN | NFC_INT_MSK, &nfc->config1);
#endif #endif
} }
...@@ -116,13 +116,10 @@ static void nfc_nand_page_address(unsigned int page_address) ...@@ -116,13 +116,10 @@ static void nfc_nand_page_address(unsigned int page_address)
static void nfc_nand_data_output(void) static void nfc_nand_data_output(void)
{ {
int config1 = readw(&nfc->config1);
#ifdef NAND_MXC_2K_MULTI_CYCLE #ifdef NAND_MXC_2K_MULTI_CYCLE
int i; int i;
#endif #endif
config1 |= NFC_ECC_EN | NFC_INT_MSK;
writew(config1, &nfc->config1);
writew(0, &nfc->buf_addr); writew(0, &nfc->buf_addr);
writew(NFC_OUTPUT, &nfc->config2); writew(NFC_OUTPUT, &nfc->config2);
nfc_wait_ready(); nfc_wait_ready();
...@@ -132,9 +129,6 @@ static void nfc_nand_data_output(void) ...@@ -132,9 +129,6 @@ static void nfc_nand_data_output(void)
* for pages larger than 512 bytes. * for pages larger than 512 bytes.
*/ */
for (i = 1; i < CONFIG_SYS_NAND_PAGE_SIZE / 512; i++) { for (i = 1; i < CONFIG_SYS_NAND_PAGE_SIZE / 512; i++) {
config1 = readw(&nfc->config1);
config1 |= NFC_ECC_EN | NFC_INT_MSK;
writew(config1, &nfc->config1);
writew(i, &nfc->buf_addr); writew(i, &nfc->buf_addr);
writew(NFC_OUTPUT, &nfc->config2); writew(NFC_OUTPUT, &nfc->config2);
nfc_wait_ready(); nfc_wait_ready();
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册