mtd: denali: Remove unuseful code in get_xx_nand_para functions
Signed-off-by: Chuanxiao Dong <chuanxiao.dong@intel.com> Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
This commit is contained in:
Родитель
66406524e5
Коммит
4c03bbdfed
|
@ -370,63 +370,9 @@ static void set_ecc_config(struct denali_nand_info *denali)
|
||||||
static uint16_t get_onfi_nand_para(struct denali_nand_info *denali)
|
static uint16_t get_onfi_nand_para(struct denali_nand_info *denali)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
/* we needn't to do a reset here because driver has already
|
||||||
denali_write32(DEVICE_RESET__BANK0, denali->flash_reg + DEVICE_RESET);
|
* reset all the banks before
|
||||||
|
* */
|
||||||
while (!((ioread32(denali->flash_reg + INTR_STATUS0) &
|
|
||||||
INTR_STATUS0__RST_COMP) |
|
|
||||||
(ioread32(denali->flash_reg + INTR_STATUS0) &
|
|
||||||
INTR_STATUS0__TIME_OUT)))
|
|
||||||
;
|
|
||||||
|
|
||||||
if (ioread32(denali->flash_reg + INTR_STATUS0) &
|
|
||||||
INTR_STATUS0__RST_COMP) {
|
|
||||||
denali_write32(DEVICE_RESET__BANK1,
|
|
||||||
denali->flash_reg + DEVICE_RESET);
|
|
||||||
while (!((ioread32(denali->flash_reg + INTR_STATUS1) &
|
|
||||||
INTR_STATUS1__RST_COMP) |
|
|
||||||
(ioread32(denali->flash_reg + INTR_STATUS1) &
|
|
||||||
INTR_STATUS1__TIME_OUT)))
|
|
||||||
;
|
|
||||||
|
|
||||||
if (ioread32(denali->flash_reg + INTR_STATUS1) &
|
|
||||||
INTR_STATUS1__RST_COMP) {
|
|
||||||
denali_write32(DEVICE_RESET__BANK2,
|
|
||||||
denali->flash_reg + DEVICE_RESET);
|
|
||||||
while (!((ioread32(denali->flash_reg + INTR_STATUS2) &
|
|
||||||
INTR_STATUS2__RST_COMP) |
|
|
||||||
(ioread32(denali->flash_reg + INTR_STATUS2) &
|
|
||||||
INTR_STATUS2__TIME_OUT)))
|
|
||||||
;
|
|
||||||
|
|
||||||
if (ioread32(denali->flash_reg + INTR_STATUS2) &
|
|
||||||
INTR_STATUS2__RST_COMP) {
|
|
||||||
denali_write32(DEVICE_RESET__BANK3,
|
|
||||||
denali->flash_reg + DEVICE_RESET);
|
|
||||||
while (!((ioread32(denali->flash_reg +
|
|
||||||
INTR_STATUS3) &
|
|
||||||
INTR_STATUS3__RST_COMP) |
|
|
||||||
(ioread32(denali->flash_reg +
|
|
||||||
INTR_STATUS3) &
|
|
||||||
INTR_STATUS3__TIME_OUT)))
|
|
||||||
;
|
|
||||||
} else {
|
|
||||||
printk(KERN_ERR "Getting a time out for bank 2!\n");
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
printk(KERN_ERR "Getting a time out for bank 1!\n");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
denali_write32(INTR_STATUS0__TIME_OUT,
|
|
||||||
denali->flash_reg + INTR_STATUS0);
|
|
||||||
denali_write32(INTR_STATUS1__TIME_OUT,
|
|
||||||
denali->flash_reg + INTR_STATUS1);
|
|
||||||
denali_write32(INTR_STATUS2__TIME_OUT,
|
|
||||||
denali->flash_reg + INTR_STATUS2);
|
|
||||||
denali_write32(INTR_STATUS3__TIME_OUT,
|
|
||||||
denali->flash_reg + INTR_STATUS3);
|
|
||||||
|
|
||||||
if (!(ioread32(denali->flash_reg + ONFI_TIMING_MODE) &
|
if (!(ioread32(denali->flash_reg + ONFI_TIMING_MODE) &
|
||||||
ONFI_TIMING_MODE__VALUE))
|
ONFI_TIMING_MODE__VALUE))
|
||||||
return FAIL;
|
return FAIL;
|
||||||
|
@ -447,23 +393,10 @@ static uint16_t get_onfi_nand_para(struct denali_nand_info *denali)
|
||||||
return PASS;
|
return PASS;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void get_samsung_nand_para(struct denali_nand_info *denali)
|
static void get_samsung_nand_para(struct denali_nand_info *denali,
|
||||||
|
uint8_t device_id)
|
||||||
{
|
{
|
||||||
uint32_t id_bytes[5];
|
if (device_id == 0xd3) { /* Samsung K9WAG08U1A */
|
||||||
int i;
|
|
||||||
|
|
||||||
index_addr(denali, (uint32_t)(MODE_11 | 0), 0x90);
|
|
||||||
index_addr(denali, (uint32_t)(MODE_11 | 1), 0);
|
|
||||||
for (i = 0; i < 5; i++)
|
|
||||||
index_addr_read_data(denali, (uint32_t)(MODE_11 | 2),
|
|
||||||
&id_bytes[i]);
|
|
||||||
|
|
||||||
nand_dbg_print(NAND_DBG_DEBUG,
|
|
||||||
"ID bytes: 0x%x, 0x%x, 0x%x, 0x%x, 0x%x\n",
|
|
||||||
id_bytes[0], id_bytes[1], id_bytes[2],
|
|
||||||
id_bytes[3], id_bytes[4]);
|
|
||||||
|
|
||||||
if ((id_bytes[1] & 0xff) == 0xd3) { /* Samsung K9WAG08U1A */
|
|
||||||
/* Set timing register values according to datasheet */
|
/* Set timing register values according to datasheet */
|
||||||
denali_write32(5, denali->flash_reg + ACC_CLKS);
|
denali_write32(5, denali->flash_reg + ACC_CLKS);
|
||||||
denali_write32(20, denali->flash_reg + RE_2_WE);
|
denali_write32(20, denali->flash_reg + RE_2_WE);
|
||||||
|
@ -625,7 +558,7 @@ static uint16_t denali_nand_timing_set(struct denali_nand_info *denali)
|
||||||
if (FAIL == get_onfi_nand_para(denali))
|
if (FAIL == get_onfi_nand_para(denali))
|
||||||
return FAIL;
|
return FAIL;
|
||||||
} else if (maf_id == 0xEC) { /* Samsung NAND */
|
} else if (maf_id == 0xEC) { /* Samsung NAND */
|
||||||
get_samsung_nand_para(denali);
|
get_samsung_nand_para(denali, device_id);
|
||||||
} else if (maf_id == 0x98) { /* Toshiba NAND */
|
} else if (maf_id == 0x98) { /* Toshiba NAND */
|
||||||
get_toshiba_nand_para(denali);
|
get_toshiba_nand_para(denali);
|
||||||
} else if (maf_id == 0xAD) { /* Hynix NAND */
|
} else if (maf_id == 0xAD) { /* Hynix NAND */
|
||||||
|
|
Загрузка…
Ссылка в новой задаче