58
58
case IRQ_TYPE_EDGE_RISING:
59
59
__raw_writel(__raw_readl(INTC_ATR(d->irq)) | INTC_BIT(d->irq), INTC_ATR(d->irq)); /*edge sensitive */
60
60
__raw_writel(__raw_readl(INTC_APR(d->irq)) | INTC_BIT(d->irq), INTC_APR(d->irq)); /*rising edge */
61
set_irq_handler(d->irq, handle_edge_irq);
61
irq_set_handler(d->irq, handle_edge_irq);
63
63
case IRQ_TYPE_EDGE_FALLING:
64
64
__raw_writel(__raw_readl(INTC_ATR(d->irq)) | INTC_BIT(d->irq), INTC_ATR(d->irq)); /*edge sensitive */
65
65
__raw_writel(__raw_readl(INTC_APR(d->irq)) & ~INTC_BIT(d->irq), INTC_APR(d->irq)); /*falling edge */
66
set_irq_handler(d->irq, handle_edge_irq);
66
irq_set_handler(d->irq, handle_edge_irq);
68
68
case IRQ_TYPE_LEVEL_LOW:
69
69
__raw_writel(__raw_readl(INTC_ATR(d->irq)) & ~INTC_BIT(d->irq), INTC_ATR(d->irq)); /*level sensitive */
70
70
__raw_writel(__raw_readl(INTC_APR(d->irq)) & ~INTC_BIT(d->irq), INTC_APR(d->irq)); /*low level */
71
set_irq_handler(d->irq, handle_level_irq);
71
irq_set_handler(d->irq, handle_level_irq);
73
73
case IRQ_TYPE_LEVEL_HIGH:
74
74
__raw_writel(__raw_readl(INTC_ATR(d->irq)) & ~INTC_BIT(d->irq), INTC_ATR(d->irq)); /*level sensitive */
75
75
__raw_writel(__raw_readl(INTC_APR(d->irq)) | INTC_BIT(d->irq), INTC_APR(d->irq)); /* high level */
76
set_irq_handler(d->irq, handle_level_irq);
76
irq_set_handler(d->irq, handle_level_irq);
79
79
/* IRQ_TYPE_EDGE_BOTH is not supported */
98
98
/* configure IRQ's */
99
99
for (i = 0; i < NR_IRQS; i++) {
100
100
set_irq_flags(i, IRQF_VALID);
101
set_irq_chip(i, &pnx4008_irq_chip);
101
irq_set_chip(i, &pnx4008_irq_chip);
102
102
pnx4008_set_irq_type(irq_get_irq_data(i), pnx4008_irq_type[i]);