Lines Matching refs:ifc_nand_ctrl
69 static struct fsl_ifc_nand_ctrl *ifc_nand_ctrl; variable
239 ifc_nand_ctrl->page = page_addr; in set_addr()
246 ifc_nand_ctrl->addr = priv->vbase + buf_num * (mtd->writesize * 2); in set_addr()
247 ifc_nand_ctrl->index = column; in set_addr()
251 ifc_nand_ctrl->index += mtd->writesize; in set_addr()
298 struct fsl_ifc_nand_ctrl *nctrl = ifc_nand_ctrl; in fsl_ifc_run_command()
418 ifc_nand_ctrl->read_bytes = 0; in fsl_ifc_cmdfunc()
420 ifc_nand_ctrl->index = 0; in fsl_ifc_cmdfunc()
428 ifc_nand_ctrl->read_bytes = mtd->writesize + mtd->oobsize; in fsl_ifc_cmdfunc()
429 ifc_nand_ctrl->index += column; in fsl_ifc_cmdfunc()
432 ifc_nand_ctrl->eccread = 1; in fsl_ifc_cmdfunc()
443 ifc_nand_ctrl->read_bytes = mtd->writesize + mtd->oobsize; in fsl_ifc_cmdfunc()
469 ifc_nand_ctrl->read_bytes = 256; in fsl_ifc_cmdfunc()
493 ifc_nand_ctrl->read_bytes = 0; in fsl_ifc_cmdfunc()
500 ifc_nand_ctrl->column = column; in fsl_ifc_cmdfunc()
501 ifc_nand_ctrl->oob = 0; in fsl_ifc_cmdfunc()
554 ifc_nand_ctrl->oob = 1; in fsl_ifc_cmdfunc()
557 set_addr(mtd, column, page_addr, ifc_nand_ctrl->oob); in fsl_ifc_cmdfunc()
563 if (ifc_nand_ctrl->oob) { in fsl_ifc_cmdfunc()
564 ifc_out32(ifc_nand_ctrl->index - in fsl_ifc_cmdfunc()
565 ifc_nand_ctrl->column, in fsl_ifc_cmdfunc()
585 ifc_nand_ctrl->read_bytes = 1; in fsl_ifc_cmdfunc()
593 addr = ifc_nand_ctrl->addr; in fsl_ifc_cmdfunc()
636 if ((unsigned int)len > bufsize - ifc_nand_ctrl->index) { in fsl_ifc_write_buf()
639 __func__, len, bufsize - ifc_nand_ctrl->index); in fsl_ifc_write_buf()
640 len = bufsize - ifc_nand_ctrl->index; in fsl_ifc_write_buf()
643 memcpy_toio(ifc_nand_ctrl->addr + ifc_nand_ctrl->index, buf, len); in fsl_ifc_write_buf()
644 ifc_nand_ctrl->index += len; in fsl_ifc_write_buf()
661 if (ifc_nand_ctrl->index < ifc_nand_ctrl->read_bytes) { in fsl_ifc_read_byte()
662 offset = ifc_nand_ctrl->index++; in fsl_ifc_read_byte()
663 return ifc_in8(ifc_nand_ctrl->addr + offset); in fsl_ifc_read_byte()
684 if (ifc_nand_ctrl->index < ifc_nand_ctrl->read_bytes) { in fsl_ifc_read_byte16()
685 data = ifc_in16(ifc_nand_ctrl->addr + ifc_nand_ctrl->index); in fsl_ifc_read_byte16()
686 ifc_nand_ctrl->index += 2; in fsl_ifc_read_byte16()
709 ifc_nand_ctrl->read_bytes - ifc_nand_ctrl->index); in fsl_ifc_read_buf()
710 memcpy_fromio(buf, ifc_nand_ctrl->addr + ifc_nand_ctrl->index, avail); in fsl_ifc_read_buf()
711 ifc_nand_ctrl->index += avail; in fsl_ifc_read_buf()
738 ifc_nand_ctrl->read_bytes = 1; in fsl_ifc_wait()
756 struct fsl_ifc_nand_ctrl *nctrl = ifc_nand_ctrl; in fsl_ifc_read_page()
916 chip->controller = &ifc_nand_ctrl->controller; in fsl_ifc_chip_init()
1003 ifc_nand_ctrl->chips[priv->bank] = NULL; in fsl_ifc_chip_remove()
1065 ifc_nand_ctrl = kzalloc(sizeof(*ifc_nand_ctrl), GFP_KERNEL); in fsl_ifc_nand_probe()
1066 if (!ifc_nand_ctrl) { in fsl_ifc_nand_probe()
1071 ifc_nand_ctrl->read_bytes = 0; in fsl_ifc_nand_probe()
1072 ifc_nand_ctrl->index = 0; in fsl_ifc_nand_probe()
1073 ifc_nand_ctrl->addr = NULL; in fsl_ifc_nand_probe()
1074 fsl_ifc_ctrl_dev->nand = ifc_nand_ctrl; in fsl_ifc_nand_probe()
1076 spin_lock_init(&ifc_nand_ctrl->controller.lock); in fsl_ifc_nand_probe()
1077 init_waitqueue_head(&ifc_nand_ctrl->controller.wq); in fsl_ifc_nand_probe()
1079 ifc_nand_ctrl = fsl_ifc_ctrl_dev->nand; in fsl_ifc_nand_probe()
1083 ifc_nand_ctrl->chips[bank] = priv; in fsl_ifc_nand_probe()
1150 ifc_nand_ctrl->counter--; in fsl_ifc_nand_remove()
1151 if (!ifc_nand_ctrl->counter) { in fsl_ifc_nand_remove()
1153 kfree(ifc_nand_ctrl); in fsl_ifc_nand_remove()