Lines Matching full:ifc

25 					for IFC NAND Machine	*/
40 /* overview of the fsl ifc controller */
45 void __iomem *addr; /* Address of assigned IFC buffer */
136 * Set up the IFC hardware block and page address fields, and the ifc nand
137 * structure addr field to point to the correct IFC buffer in memory
144 struct fsl_ifc_runtime __iomem *ifc = ctrl->rregs; in set_addr() local
149 ifc_out32(page_addr, &ifc->ifc_nand.row0); in set_addr()
150 ifc_out32((oob ? IFC_NAND_COL_MS : 0) | column, &ifc->ifc_nand.col0); in set_addr()
170 * execute IFC NAND command and wait for it to complete
178 struct fsl_ifc_runtime __iomem *ifc = ctrl->rregs; in fsl_ifc_run_command() local
184 &ifc->ifc_nand.nand_csel); in fsl_ifc_run_command()
189 ifc_in32(&ifc->ifc_nand.nand_fir0), in fsl_ifc_run_command()
190 ifc_in32(&ifc->ifc_nand.nand_fcr0)); in fsl_ifc_run_command()
195 ifc_out32(IFC_NAND_SEQ_STRT_FIR_STRT, &ifc->ifc_nand.nandseq_strt); in fsl_ifc_run_command()
218 eccstat_regs = ifc->ifc_nand.nand_eccstat; in fsl_ifc_run_command()
233 * erratum IFC-A002770 -- so report it now if we in fsl_ifc_run_command()
256 struct fsl_ifc_runtime __iomem *ifc = ctrl->rregs; in fsl_ifc_do_read() local
265 &ifc->ifc_nand.nand_fir0); in fsl_ifc_do_read()
266 ifc_out32(0x0, &ifc->ifc_nand.nand_fir1); in fsl_ifc_do_read()
270 &ifc->ifc_nand.nand_fcr0); in fsl_ifc_do_read()
276 &ifc->ifc_nand.nand_fir0); in fsl_ifc_do_read()
277 ifc_out32(0x0, &ifc->ifc_nand.nand_fir1); in fsl_ifc_do_read()
282 &ifc->ifc_nand.nand_fcr0); in fsl_ifc_do_read()
286 &ifc->ifc_nand.nand_fcr0); in fsl_ifc_do_read()
290 /* cmdfunc send commands to the IFC NAND Machine */
296 struct fsl_ifc_runtime __iomem *ifc = ctrl->rregs; in fsl_ifc_cmdfunc() local
306 ifc_out32(0, &ifc->ifc_nand.nand_fbcr); in fsl_ifc_cmdfunc()
321 ifc_out32(mtd->oobsize - column, &ifc->ifc_nand.nand_fbcr); in fsl_ifc_cmdfunc()
347 &ifc->ifc_nand.nand_fir0); in fsl_ifc_cmdfunc()
349 &ifc->ifc_nand.nand_fcr0); in fsl_ifc_cmdfunc()
350 ifc_out32(column, &ifc->ifc_nand.row3); in fsl_ifc_cmdfunc()
352 ifc_out32(len, &ifc->ifc_nand.nand_fbcr); in fsl_ifc_cmdfunc()
370 &ifc->ifc_nand.nand_fir0); in fsl_ifc_cmdfunc()
374 &ifc->ifc_nand.nand_fcr0); in fsl_ifc_cmdfunc()
376 ifc_out32(0, &ifc->ifc_nand.nand_fbcr); in fsl_ifc_cmdfunc()
399 &ifc->ifc_nand.nand_fir0); in fsl_ifc_cmdfunc()
404 &ifc->ifc_nand.nand_fir1); in fsl_ifc_cmdfunc()
419 &ifc->ifc_nand.nand_fir0); in fsl_ifc_cmdfunc()
425 &ifc->ifc_nand.nand_fir1); in fsl_ifc_cmdfunc()
440 ifc_out32(nand_fcr0, &ifc->ifc_nand.nand_fcr0); in fsl_ifc_cmdfunc()
450 &ifc->ifc_nand.nand_fbcr); in fsl_ifc_cmdfunc()
452 ifc_out32(0, &ifc->ifc_nand.nand_fbcr); in fsl_ifc_cmdfunc()
464 &ifc->ifc_nand.nand_fir0); in fsl_ifc_cmdfunc()
466 &ifc->ifc_nand.nand_fcr0); in fsl_ifc_cmdfunc()
467 ifc_out32(1, &ifc->ifc_nand.nand_fbcr); in fsl_ifc_cmdfunc()
487 &ifc->ifc_nand.nand_fir0); in fsl_ifc_cmdfunc()
489 &ifc->ifc_nand.nand_fcr0); in fsl_ifc_cmdfunc()
507 * Write buf to the IFC NAND Controller Data Buffer
532 * Read a byte from either the IFC hardware buffer
541 * If there are still bytes in the IFC buffer, then use the in fsl_ifc_read_byte()
554 * Read two bytes from the IFC hardware buffer
563 * If there are still bytes in the IFC buffer, then use the in fsl_ifc_read_byte16()
577 * Read from the IFC Controller Data Buffer
609 struct fsl_ifc_runtime __iomem *ifc = ctrl->rregs; in fsl_ifc_wait() local
616 &ifc->ifc_nand.nand_fir0); in fsl_ifc_wait()
618 &ifc->ifc_nand.nand_fcr0); in fsl_ifc_wait()
619 ifc_out32(1, &ifc->ifc_nand.nand_fbcr); in fsl_ifc_wait()
625 nand_fsr = ifc_in32(&ifc->ifc_nand.nand_fsr); in fsl_ifc_wait()
843 pr_err("fsl-ifc: Failed to Initialise SRAM\n"); in fsl_ifc_sram_init()
942 * As IFC version 2.0.0 has 16KB of internal SRAM as compared to older in fsl_ifc_chip_init()
982 struct fsl_ifc_runtime __iomem *ifc; in fsl_ifc_nand_probe() local
994 ifc = fsl_ifc_ctrl_dev->rregs; in fsl_ifc_nand_probe()
1055 &ifc->ifc_nand.nand_evter_en); in fsl_ifc_nand_probe()
1061 &ifc->ifc_nand.nand_evter_intr_en); in fsl_ifc_nand_probe()
1085 dev_info(priv->dev, "IFC NAND device at 0x%llx, bank %d\n", in fsl_ifc_nand_probe()
1121 .compatible = "fsl,ifc-nand",
1129 .name = "fsl,ifc-nand",