Пример #1
0
static void __INIT__ at91_aic_init(void)
{
	int irq;

	for(irq = 0; irq < 32; irq++) {
		at91_aic_writel(AIC_SVR(irq), irq);
		at91_aic_writel(AIC_SMR(irq), (0 << 5) | 0);

		irq_assoc_intctl(irq, &at91sam926x_aic_intctrl);
		irq_set_handler(irq, irq_handle_level, 0);
	}

	//	at91_aic_writel(AIC_SPU, MAX_IRQ_NUM);
	//	at91_aic_writel(AIC_DCR, 0);

	//	at91_aic_writel(AIC_IDCR, ~0UL);
	//	at91_aic_writel(AIC_ICCR, ~0UL);
}
Пример #2
0
void irq_handle(__u32 irq)
{
	struct int_pin *pin;

	assert(irq < MAX_IRQ_NUM);

	// printf("%s(): irq = %d\n", __func__, irq);

	pin = irq_pin_set + irq;

	pin->irq_handle(pin, irq);

#if defined(CONFIG_AT91SAM9261) || defined(CONFIG_AT91SAM9263)
	at91_aic_writel(AIC_EOICR, 1);
#endif
}
Пример #3
0
static void at91sam926x_aic_ack(__u32 irq)
{
	at91_aic_writel(AIC_ICCR, 1 << irq);
}
Пример #4
0
static void at91sam926x_aic_umask(__u32 irq)
{
	at91_aic_writel(AIC_IECR, 1 << irq);
}