Lines Matching refs:fsl_ifc_ctrl_dev
36 struct fsl_ifc_ctrl *fsl_ifc_ctrl_dev; variable
37 EXPORT_SYMBOL(fsl_ifc_ctrl_dev);
62 if (!fsl_ifc_ctrl_dev || !fsl_ifc_ctrl_dev->regs) in fsl_ifc_find()
65 for (i = 0; i < fsl_ifc_ctrl_dev->banks; i++) { in fsl_ifc_find()
66 u32 cspr = ifc_in32(&fsl_ifc_ctrl_dev->regs->cspr_cs[i].cspr); in fsl_ifc_find()
221 fsl_ifc_ctrl_dev = kzalloc(sizeof(*fsl_ifc_ctrl_dev), GFP_KERNEL); in fsl_ifc_ctrl_probe()
222 if (!fsl_ifc_ctrl_dev) in fsl_ifc_ctrl_probe()
225 dev_set_drvdata(&dev->dev, fsl_ifc_ctrl_dev); in fsl_ifc_ctrl_probe()
228 fsl_ifc_ctrl_dev->regs = of_iomap(dev->dev.of_node, 0); in fsl_ifc_ctrl_probe()
229 if (!fsl_ifc_ctrl_dev->regs) { in fsl_ifc_ctrl_probe()
235 version = ifc_in32(&fsl_ifc_ctrl_dev->regs->ifc_rev) & in fsl_ifc_ctrl_probe()
241 fsl_ifc_ctrl_dev->version = version; in fsl_ifc_ctrl_probe()
242 fsl_ifc_ctrl_dev->banks = banks; in fsl_ifc_ctrl_probe()
245 fsl_ifc_ctrl_dev->little_endian = true; in fsl_ifc_ctrl_probe()
248 fsl_ifc_ctrl_dev->little_endian = false; in fsl_ifc_ctrl_probe()
252 version = ioread32be(&fsl_ifc_ctrl_dev->regs->ifc_rev) & in fsl_ifc_ctrl_probe()
258 fsl_ifc_ctrl_dev->version = version; in fsl_ifc_ctrl_probe()
259 fsl_ifc_ctrl_dev->banks = banks; in fsl_ifc_ctrl_probe()
262 fsl_ifc_ctrl_dev->irq = irq_of_parse_and_map(dev->dev.of_node, 0); in fsl_ifc_ctrl_probe()
263 if (fsl_ifc_ctrl_dev->irq == NO_IRQ) { in fsl_ifc_ctrl_probe()
271 fsl_ifc_ctrl_dev->nand_irq = in fsl_ifc_ctrl_probe()
274 fsl_ifc_ctrl_dev->dev = &dev->dev; in fsl_ifc_ctrl_probe()
276 ret = fsl_ifc_ctrl_init(fsl_ifc_ctrl_dev); in fsl_ifc_ctrl_probe()
280 init_waitqueue_head(&fsl_ifc_ctrl_dev->nand_wait); in fsl_ifc_ctrl_probe()
282 ret = request_irq(fsl_ifc_ctrl_dev->irq, fsl_ifc_ctrl_irq, IRQF_SHARED, in fsl_ifc_ctrl_probe()
283 "fsl-ifc", fsl_ifc_ctrl_dev); in fsl_ifc_ctrl_probe()
286 fsl_ifc_ctrl_dev->irq); in fsl_ifc_ctrl_probe()
290 if (fsl_ifc_ctrl_dev->nand_irq) { in fsl_ifc_ctrl_probe()
291 ret = request_irq(fsl_ifc_ctrl_dev->nand_irq, fsl_ifc_nand_irq, in fsl_ifc_ctrl_probe()
292 0, "fsl-ifc-nand", fsl_ifc_ctrl_dev); in fsl_ifc_ctrl_probe()
295 fsl_ifc_ctrl_dev->nand_irq); in fsl_ifc_ctrl_probe()
303 free_irq(fsl_ifc_ctrl_dev->nand_irq, fsl_ifc_ctrl_dev); in fsl_ifc_ctrl_probe()
304 irq_dispose_mapping(fsl_ifc_ctrl_dev->nand_irq); in fsl_ifc_ctrl_probe()
306 free_irq(fsl_ifc_ctrl_dev->irq, fsl_ifc_ctrl_dev); in fsl_ifc_ctrl_probe()
307 irq_dispose_mapping(fsl_ifc_ctrl_dev->irq); in fsl_ifc_ctrl_probe()