static __init void
pxa_init_irq_common(struct device_node *node, int irq_nr, int (*fn)(struct irq_data *, unsignedint))
{ int n;
pxa_internal_irq_nr = irq_nr;
pxa_irq_domain = irq_domain_create_legacy(of_fwnode_handle(node), irq_nr, PXA_IRQ(0), 0,
&pxa_irq_ops, NULL); if (!pxa_irq_domain)
panic("Unable to add PXA IRQ domain\n");
irq_set_default_domain(pxa_irq_domain);
for (n = 0; n < irq_nr; n += 32) { void __iomem *base = irq_base(n >> 5);
__raw_writel(0, base + ICMR); /* disable all IRQs */
__raw_writel(0, base + ICLR); /* all IRQs are IRQ, not FIQ */
} /* only unmasked interrupts kick us out of idle */
__raw_writel(1, irq_base(0) + ICCR);
node = of_find_matching_node(NULL, intc_ids); if (!node) {
pr_err("Failed to find interrupt controller in arch-pxa\n"); return;
}
ret = of_property_read_u32(node, "marvell,intc-nr-irqs",
&pxa_internal_irq_nr); if (ret) {
pr_err("Not found marvell,intc-nr-irqs property\n"); return;
}
ret = of_address_to_resource(node, 0, &res); if (ret < 0) {
pr_err("No registers defined for node\n"); return;
}
pxa_irq_base = io_p2v(res.start);
¤ Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.0.16Bemerkung:
(vorverarbeitet)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.