Lines Matching refs:ctrl

49 	struct fsl_elbc_ctrl *ctrl;  member
159 struct fsl_elbc_ctrl *ctrl = priv->ctrl; in set_addr() local
160 fsl_lbc_t *lbc = ctrl->regs; in set_addr()
163 ctrl->page = page_addr; in set_addr()
179 ctrl->addr = priv->vbase + buf_num * 1024; in set_addr()
180 ctrl->index = column; in set_addr()
184 ctrl->index += priv->page_size ? 2048 : 512; in set_addr()
188 buf_num, ctrl->addr, priv->vbase, ctrl->index, in set_addr()
199 struct fsl_elbc_ctrl *ctrl = priv->ctrl; in fsl_elbc_run_command() local
200 fsl_lbc_t *lbc = ctrl->regs; in fsl_elbc_run_command()
207 if (ctrl->use_mdr) in fsl_elbc_run_command()
208 out_be32(&lbc->mdr, ctrl->mdr); in fsl_elbc_run_command()
230 ctrl->status = ltesr & LTESR_NAND_MASK; in fsl_elbc_run_command()
231 out_be32(&lbc->ltesr, ctrl->status); in fsl_elbc_run_command()
235 if (ctrl->use_mdr) in fsl_elbc_run_command()
236 ctrl->mdr = in_be32(&lbc->mdr); in fsl_elbc_run_command()
238 ctrl->use_mdr = 0; in fsl_elbc_run_command()
241 ctrl->status, ctrl->mdr, in_be32(&lbc->fmr)); in fsl_elbc_run_command()
244 return ctrl->status == LTESR_CC ? 0 : -EIO; in fsl_elbc_run_command()
250 struct fsl_elbc_ctrl *ctrl = priv->ctrl; in fsl_elbc_do_read() local
251 fsl_lbc_t *lbc = ctrl->regs; in fsl_elbc_do_read()
284 struct fsl_elbc_ctrl *ctrl = priv->ctrl; in fsl_elbc_cmdfunc() local
285 fsl_lbc_t *lbc = ctrl->regs; in fsl_elbc_cmdfunc()
287 ctrl->use_mdr = 0; in fsl_elbc_cmdfunc()
290 ctrl->read_bytes = 0; in fsl_elbc_cmdfunc()
292 ctrl->index = 0; in fsl_elbc_cmdfunc()
307 ctrl->read_bytes = mtd->writesize + mtd->oobsize; in fsl_elbc_cmdfunc()
308 ctrl->index += column; in fsl_elbc_cmdfunc()
322 ctrl->read_bytes = mtd->writesize + mtd->oobsize; in fsl_elbc_cmdfunc()
343 ctrl->read_bytes = 256; in fsl_elbc_cmdfunc()
344 ctrl->use_mdr = 1; in fsl_elbc_cmdfunc()
345 ctrl->mdr = column; in fsl_elbc_cmdfunc()
371 ctrl->read_bytes = 0; in fsl_elbc_cmdfunc()
383 ctrl->column = column; in fsl_elbc_cmdfunc()
384 ctrl->oob = 0; in fsl_elbc_cmdfunc()
412 ctrl->oob = 1; in fsl_elbc_cmdfunc()
423 set_addr(mtd, column, page_addr, ctrl->oob); in fsl_elbc_cmdfunc()
430 "writing %d bytes.\n", ctrl->index); in fsl_elbc_cmdfunc()
436 if (ctrl->oob || ctrl->column != 0 || in fsl_elbc_cmdfunc()
437 ctrl->index != mtd->writesize + mtd->oobsize) in fsl_elbc_cmdfunc()
438 out_be32(&lbc->fbcr, ctrl->index); in fsl_elbc_cmdfunc()
456 ctrl->read_bytes = 1; in fsl_elbc_cmdfunc()
463 out_8(ctrl->addr, in_8(ctrl->addr) | NAND_STATUS_WP); in fsl_elbc_cmdfunc()
494 struct fsl_elbc_ctrl *ctrl = priv->ctrl; in fsl_elbc_write_buf() local
499 ctrl->status = 0; in fsl_elbc_write_buf()
503 if ((unsigned int)len > bufsize - ctrl->index) { in fsl_elbc_write_buf()
506 len, bufsize - ctrl->index); in fsl_elbc_write_buf()
507 len = bufsize - ctrl->index; in fsl_elbc_write_buf()
510 memcpy_toio(&ctrl->addr[ctrl->index], buf, len); in fsl_elbc_write_buf()
518 in_8(&ctrl->addr[ctrl->index] + len - 1); in fsl_elbc_write_buf()
520 ctrl->index += len; in fsl_elbc_write_buf()
531 struct fsl_elbc_ctrl *ctrl = priv->ctrl; in fsl_elbc_read_byte() local
534 if (ctrl->index < ctrl->read_bytes) in fsl_elbc_read_byte()
535 return in_8(&ctrl->addr[ctrl->index++]); in fsl_elbc_read_byte()
548 struct fsl_elbc_ctrl *ctrl = priv->ctrl; in fsl_elbc_read_buf() local
554 avail = min((unsigned int)len, ctrl->read_bytes - ctrl->index); in fsl_elbc_read_buf()
555 memcpy_fromio(buf, &ctrl->addr[ctrl->index], avail); in fsl_elbc_read_buf()
556 ctrl->index += avail; in fsl_elbc_read_buf()
570 struct fsl_elbc_ctrl *ctrl = priv->ctrl; in fsl_elbc_wait() local
571 fsl_lbc_t *lbc = ctrl->regs; in fsl_elbc_wait()
573 if (ctrl->status != LTESR_CC) in fsl_elbc_wait()
577 ctrl->use_mdr = 0; in fsl_elbc_wait()
584 ctrl->read_bytes = 1; in fsl_elbc_wait()
588 if (ctrl->status != LTESR_CC) in fsl_elbc_wait()
594 out_8(ctrl->addr, in_8(ctrl->addr) | NAND_STATUS_WP); in fsl_elbc_wait()
676 priv->ctrl = elbc_ctrl; in fsl_elbc_chip_init()