Lines Matching refs:eic
55 struct eic { struct
61 static struct eic *nmi_eic; argument
66 struct eic *eic = irq_data_get_irq_chip_data(d); in eic_ack_irq() local
67 eic_writel(eic, ICR, 1 << (d->irq - eic->first_irq)); in eic_ack_irq()
72 struct eic *eic = irq_data_get_irq_chip_data(d); in eic_mask_irq() local
73 eic_writel(eic, IDR, 1 << (d->irq - eic->first_irq)); in eic_mask_irq()
78 struct eic *eic = irq_data_get_irq_chip_data(d); in eic_mask_ack_irq() local
79 eic_writel(eic, ICR, 1 << (d->irq - eic->first_irq)); in eic_mask_ack_irq()
80 eic_writel(eic, IDR, 1 << (d->irq - eic->first_irq)); in eic_mask_ack_irq()
85 struct eic *eic = irq_data_get_irq_chip_data(d); in eic_unmask_irq() local
86 eic_writel(eic, IER, 1 << (d->irq - eic->first_irq)); in eic_unmask_irq()
91 struct eic *eic = irq_data_get_irq_chip_data(d); in eic_set_irq_type() local
93 unsigned int i = irq - eic->first_irq; in eic_set_irq_type()
100 mode = eic_readl(eic, MODE); in eic_set_irq_type()
101 edge = eic_readl(eic, EDGE); in eic_set_irq_type()
102 level = eic_readl(eic, LEVEL); in eic_set_irq_type()
125 eic_writel(eic, MODE, mode); in eic_set_irq_type()
126 eic_writel(eic, EDGE, edge); in eic_set_irq_type()
127 eic_writel(eic, LEVEL, level); in eic_set_irq_type()
149 struct eic *eic = irq_desc_get_handler_data(desc); in demux_eic_irq() local
153 status = eic_readl(eic, ISR); in demux_eic_irq()
154 pending = status & eic_readl(eic, IMR); in demux_eic_irq()
160 generic_handle_irq(i + eic->first_irq); in demux_eic_irq()
184 struct eic *eic; in eic_probe() local
200 eic = kzalloc(sizeof(struct eic), GFP_KERNEL); in eic_probe()
201 if (!eic) { in eic_probe()
206 eic->first_irq = EIM_IRQ_BASE + 32 * pdev->id; in eic_probe()
207 eic->regs = ioremap(regs->start, resource_size(regs)); in eic_probe()
208 if (!eic->regs) { in eic_probe()
217 eic_writel(eic, IDR, ~0UL); in eic_probe()
218 eic_writel(eic, MODE, ~0UL); in eic_probe()
219 pattern = eic_readl(eic, MODE); in eic_probe()
223 eic_writel(eic, EDGE, 0UL); in eic_probe()
224 eic_writel(eic, LEVEL, 0UL); in eic_probe()
226 eic->chip = &eic_chip; in eic_probe()
229 irq_set_chip_and_handler(eic->first_irq + i, &eic_chip, in eic_probe()
231 irq_set_chip_data(eic->first_irq + i, eic); in eic_probe()
234 irq_set_chained_handler_and_data(int_irq, demux_eic_irq, eic); in eic_probe()
237 nmi_eic = eic; in eic_probe()
248 eic->regs, int_irq); in eic_probe()
251 nr_of_irqs, eic->first_irq); in eic_probe()
256 kfree(eic); in eic_probe()