static void imx21_gpio_unmask_irq(unsigned int irq) { DEBUG_IRQ("%s: irq %d\n", __FUNCTION__, irq); IMR(IRQ_TO_REG(irq)) |= 1 << ((irq - IRQ_GPIOA(0)) % 32); PMASK = PMASK | (1 << IRQ_TO_REG(irq)); }
static void imx21_gpio_ack_irq(unsigned int irq) { DEBUG_IRQ("%s: irq %d isr %d\n", __FUNCTION__, irq, IRQ_TO_REG(irq)); ISR(IRQ_TO_REG(irq)) |= 1 << ((irq - IRQ_GPIOA(0)) % 32); }
static void imx_fpga_ack_irq(unsigned int irq) { int shadow; shadow = 1 << ((irq - IRQ_FPGA_START) % NB_IT); pr_debug("%s: irq %d ack:0x%x\n", __FUNCTION__, irq, shadow); writew(shadow, FPGA_ISR); /* if last IT, ack GPIO global IRQ */ if (readw(FPGA_ISR) == 0) { __raw_writel(1 << (ARMADEUS_FPGA_IRQ & 0x1f), VA_GPIO_BASE + MXC_ISR(IRQ_TO_REG(ARMADEUS_FPGA_IRQ))); } }
static void imx21_gpio_mask_irq(unsigned int irq) { DEBUG_IRQ("%s: irq %d\n", __FUNCTION__, irq); IMR(IRQ_TO_REG(irq)) &= ~( 1 << ((irq - IRQ_GPIOA(0)) % 32)); }
static void imx_gpio_unmask_irq(unsigned int irq) { DEBUG_IRQ("%s: irq %d\n", __func__, irq); IMR(IRQ_TO_REG(irq)) |= 1 << ((irq - IRQ_GPIOA(0)) % 32); }