Lines Matching full:ifc

39  * fsl_ifc_find - find IFC bank
42 * This function walks IFC banks comparing "Base address" field of the CSPR
68 struct fsl_ifc_global __iomem *ifc = ctrl->gregs; in fsl_ifc_ctrl_init() local
73 if (ifc_in32(&ifc->cm_evter_stat) & IFC_CM_EVTER_STAT_CSER) in fsl_ifc_ctrl_init()
74 ifc_out32(IFC_CM_EVTER_STAT_CSER, &ifc->cm_evter_stat); in fsl_ifc_ctrl_init()
77 ifc_out32(IFC_CM_EVTER_EN_CSEREN, &ifc->cm_evter_en); in fsl_ifc_ctrl_init()
80 ifc_out32(IFC_CM_EVTER_INTR_EN_CSERIREN, &ifc->cm_evter_intr_en); in fsl_ifc_ctrl_init()
81 ifc_out32(0x0, &ifc->cm_erattr0); in fsl_ifc_ctrl_init()
82 ifc_out32(0x0, &ifc->cm_erattr1); in fsl_ifc_ctrl_init()
113 struct fsl_ifc_runtime __iomem *ifc = ctrl->rregs; in check_nand_stat() local
119 stat = ifc_in32(&ifc->ifc_nand.nand_evter_stat); in check_nand_stat()
121 ifc_out32(stat, &ifc->ifc_nand.nand_evter_stat); in check_nand_stat()
142 * NOTE: This interrupt is used to report ifc events of various kinds,
148 struct fsl_ifc_global __iomem *ifc = ctrl->gregs; in fsl_ifc_ctrl_irq() local
153 cs_err = ifc_in32(&ifc->cm_evter_stat); in fsl_ifc_ctrl_irq()
155 dev_err(ctrl->dev, "transaction sent to IFC is not mapped to any memory bank 0x%08X\n", in fsl_ifc_ctrl_irq()
158 ifc_out32(IFC_CM_EVTER_STAT_CSER, &ifc->cm_evter_stat); in fsl_ifc_ctrl_irq()
161 status = ifc_in32(&ifc->cm_erattr0); in fsl_ifc_ctrl_irq()
162 err_addr = ifc_in32(&ifc->cm_erattr1); in fsl_ifc_ctrl_irq()
217 /* IOMAP the entire IFC region */ in fsl_ifc_ctrl_probe()
226 dev_dbg(&dev->dev, "IFC REGISTERS are LITTLE endian\n"); in fsl_ifc_ctrl_probe()
229 dev_dbg(&dev->dev, "IFC REGISTERS are BIG endian\n"); in fsl_ifc_ctrl_probe()
236 dev_info(&dev->dev, "IFC version %d.%d, %d banks\n", in fsl_ifc_ctrl_probe()
252 dev_err(&dev->dev, "failed to get irq resource for IFC\n"); in fsl_ifc_ctrl_probe()
270 "fsl-ifc", fsl_ifc_ctrl_dev); in fsl_ifc_ctrl_probe()
279 0, "fsl-ifc-nand", fsl_ifc_ctrl_dev); in fsl_ifc_ctrl_probe()
308 .compatible = "fsl,ifc",
315 .name = "fsl-ifc",