Lines Matching refs:pic
63 static void __iomem *spider_get_irq_config(struct spider_pic *pic,
66 return pic->regs + TIR_CFGA + 8 * src;
71 struct spider_pic *pic = spider_irq_data_to_pic(d);
72 void __iomem *cfg = spider_get_irq_config(pic, irqd_to_hwirq(d));
79 struct spider_pic *pic = spider_irq_data_to_pic(d);
80 void __iomem *cfg = spider_get_irq_config(pic, irqd_to_hwirq(d));
87 struct spider_pic *pic = spider_irq_data_to_pic(d);
100 out_be32(pic->regs + TIR_EDC, 0x100 | (src & 0xf));
106 struct spider_pic *pic = spider_irq_data_to_pic(d);
108 void __iomem *cfg = spider_get_irq_config(pic, hw);
144 (pic->node_id << 4) | 0xe);
192 struct spider_pic *pic = irq_desc_get_handler_data(desc);
195 cs = in_be32(pic->regs + TIR_CS) >> 24;
199 virq = irq_linear_revmap(pic->host, cs);
215 static unsigned int __init spider_find_cascade_and_node(struct spider_pic *pic)
223 of_node = irq_domain_get_of_node(pic->host);
259 pic->node_id = (*tmp) >> 1;
268 (pic->node_id << IIC_IRQ_NODE_SHIFT) |
280 struct spider_pic *pic = &spider_pics[chip];
284 pic->regs = ioremap(addr, 0x1000);
285 if (pic->regs == NULL)
289 pic->host = irq_domain_add_linear(of_node, SPIDER_SRC_COUNT,
290 &spider_host_ops, pic);
291 if (pic->host == NULL)
296 void __iomem *cfg = pic->regs + TIR_CFGA + 8 * i;
301 out_be32(pic->regs + TIR_MSK, 0x0);
304 out_be32(pic->regs + TIR_PIEN, in_be32(pic->regs + TIR_PIEN) | 0x1);
307 virq = spider_find_cascade_and_node(pic);
310 irq_set_handler_data(virq, pic);
314 pic->node_id, addr, of_node);
317 out_be32(pic->regs + TIR_DEN, in_be32(pic->regs + TIR_DEN) | 0x1);
334 if (of_device_is_compatible(dn, "CBEA,platform-spider-pic")) {
336 printk(KERN_WARNING "spider-pic: Failed\n");
339 } else if (of_device_is_compatible(dn, "sti,platform-spider-pic")