Lines Matching refs:fsl_ifc_ctrl_dev
25 struct fsl_ifc_ctrl *fsl_ifc_ctrl_dev; variable
26 EXPORT_SYMBOL(fsl_ifc_ctrl_dev);
51 if (!fsl_ifc_ctrl_dev || !fsl_ifc_ctrl_dev->gregs) in fsl_ifc_find()
54 for (i = 0; i < fsl_ifc_ctrl_dev->banks; i++) { in fsl_ifc_find()
55 u32 cspr = ifc_in32(&fsl_ifc_ctrl_dev->gregs->cspr_cs[i].cspr); in fsl_ifc_find()
210 fsl_ifc_ctrl_dev = devm_kzalloc(&dev->dev, sizeof(*fsl_ifc_ctrl_dev), in fsl_ifc_ctrl_probe()
212 if (!fsl_ifc_ctrl_dev) in fsl_ifc_ctrl_probe()
215 dev_set_drvdata(&dev->dev, fsl_ifc_ctrl_dev); in fsl_ifc_ctrl_probe()
218 fsl_ifc_ctrl_dev->gregs = of_iomap(dev->dev.of_node, 0); in fsl_ifc_ctrl_probe()
219 if (!fsl_ifc_ctrl_dev->gregs) { in fsl_ifc_ctrl_probe()
225 fsl_ifc_ctrl_dev->little_endian = true; in fsl_ifc_ctrl_probe()
228 fsl_ifc_ctrl_dev->little_endian = false; in fsl_ifc_ctrl_probe()
232 version = ifc_in32(&fsl_ifc_ctrl_dev->gregs->ifc_rev) & in fsl_ifc_ctrl_probe()
239 fsl_ifc_ctrl_dev->version = version; in fsl_ifc_ctrl_probe()
240 fsl_ifc_ctrl_dev->banks = banks; in fsl_ifc_ctrl_probe()
242 addr = fsl_ifc_ctrl_dev->gregs; in fsl_ifc_ctrl_probe()
247 fsl_ifc_ctrl_dev->rregs = addr; in fsl_ifc_ctrl_probe()
250 fsl_ifc_ctrl_dev->irq = irq_of_parse_and_map(dev->dev.of_node, 0); in fsl_ifc_ctrl_probe()
251 if (fsl_ifc_ctrl_dev->irq == 0) { in fsl_ifc_ctrl_probe()
258 fsl_ifc_ctrl_dev->nand_irq = in fsl_ifc_ctrl_probe()
261 fsl_ifc_ctrl_dev->dev = &dev->dev; in fsl_ifc_ctrl_probe()
263 ret = fsl_ifc_ctrl_init(fsl_ifc_ctrl_dev); in fsl_ifc_ctrl_probe()
267 init_waitqueue_head(&fsl_ifc_ctrl_dev->nand_wait); in fsl_ifc_ctrl_probe()
269 ret = request_irq(fsl_ifc_ctrl_dev->irq, fsl_ifc_ctrl_irq, IRQF_SHARED, in fsl_ifc_ctrl_probe()
270 "fsl-ifc", fsl_ifc_ctrl_dev); in fsl_ifc_ctrl_probe()
273 fsl_ifc_ctrl_dev->irq); in fsl_ifc_ctrl_probe()
277 if (fsl_ifc_ctrl_dev->nand_irq) { in fsl_ifc_ctrl_probe()
278 ret = request_irq(fsl_ifc_ctrl_dev->nand_irq, fsl_ifc_nand_irq, in fsl_ifc_ctrl_probe()
279 0, "fsl-ifc-nand", fsl_ifc_ctrl_dev); in fsl_ifc_ctrl_probe()
282 fsl_ifc_ctrl_dev->nand_irq); in fsl_ifc_ctrl_probe()
295 free_irq(fsl_ifc_ctrl_dev->nand_irq, fsl_ifc_ctrl_dev); in fsl_ifc_ctrl_probe()
297 free_irq(fsl_ifc_ctrl_dev->irq, fsl_ifc_ctrl_dev); in fsl_ifc_ctrl_probe()
299 irq_dispose_mapping(fsl_ifc_ctrl_dev->nand_irq); in fsl_ifc_ctrl_probe()
300 irq_dispose_mapping(fsl_ifc_ctrl_dev->irq); in fsl_ifc_ctrl_probe()
302 iounmap(fsl_ifc_ctrl_dev->gregs); in fsl_ifc_ctrl_probe()