Exemple #1
0
void __init versatile_init_irq(void)
{
	vic_init(VA_VIC_BASE, IRQ_VIC_START, ~0, 0);
	irq_domain_generate_simple(vic_of_match, VERSATILE_VIC_BASE, IRQ_VIC_START);

	writel(~0, VA_SIC_BASE + SIC_IRQ_ENABLE_CLEAR);

	fpga_irq_init(IRQ_VICSOURCE31, ~PIC_MASK, &sic_irq);
	irq_domain_generate_simple(sic_of_match, VERSATILE_SIC_BASE, IRQ_SIC_START);

	/*
	 * Interrupts on secondary controller from 0 to 8 are routed to
	 * source 31 on PIC.
	 * Interrupts from 21 to 31 are routed directly to the VIC on
	 * the corresponding number on primary controller. This is controlled
	 * by setting PIC_ENABLEx.
	 */
	writel(PIC_MASK, VA_SIC_BASE + SIC_INT_PIC_ENABLE);
}
void __init msm_copper_init_irq(void)
{
	gic_init(0, GIC_PPI_START, MSM_QGIC_DIST_BASE,
			(void *)MSM_QGIC_CPU_BASE);

	/* Edge trigger PPIs except AVS_SVICINT and AVS_SVICINTSWDONE */
	writel_relaxed(0xFFFFD7FF, MSM_QGIC_DIST_BASE + GIC_DIST_CONFIG + 4);

	writel_relaxed(0x0000FFFF, MSM_QGIC_DIST_BASE + GIC_DIST_ENABLE_SET);
	mb();

	irq_domain_generate_simple(msm_copper_gic_match,
		COPPER_QGIC_DIST_PHYS, GIC_SPI_START);
}
Exemple #3
0
static void __init at91_dt_init_irq(void)
{
	irq_domain_generate_simple(aic_of_match, 0xfffff000, 0);
	at91_init_irq_default();
}